Pick the AI tool you use below and follow the steps — usually a button or one line. Once connected, every tool reads the same current state and leaves a note when it's done, so the next one picks up where the last left off.
https://harkstudio.io/mcp
Sign in to Hark to connect a client. Personal tokens and per-account details live inside the app.
Use a personal access token as a Bearer header.
Use a personal access token (create one on the Connections page). Send it as a Bearer header — no browser sign-in needed.
curl -X POST https://harkstudio.io/mcp \
-H "Authorization: Bearer hark_pat_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(new URL("https://harkstudio.io/mcp"), {
requestInit: { headers: { Authorization: `Bearer ${process.env.HARK_PAT}` } },
});
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
console.log(await client.listTools());
console.log(await client.callTool({ name: "list_workspaces", arguments: {} }));import os, asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main():
headers = {"Authorization": f"Bearer {os.environ['HARK_PAT']}"}
async with streamablehttp_client("https://harkstudio.io/mcp", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
print(await session.list_tools())
print(await session.call_tool("list_workspaces", {}))
asyncio.run(main())n8n / Make / Zapier: use the MCP client node (or a plain HTTP request to https://harkstudio.io/mcp) with the token as a Bearer header.
Features: Personal access tokensEvery write is attributed in the activity log — token calls show up as the token's name.
Ask your client: "List my Hark workspaces." Expected: your workspace names.
Then: "Create a project called Connection test in <workspace>." Expected: a new V-### appears in the app and the activity log shows the source ("via Claude Code", "via Codex", etc.). Delete the test venture afterward.