Install the skill
The fastest way in is to let your coding agent do the wiring. Install the Coworkkit skill and your agent detects your stack, installs the SDK, wires the token route and the Provider, declares a first surface and action, then verifies a live mint before you ever start a session — and leaves the load-bearing rules in your repo for every later change.
Any agent — Claude Code, Cursor, Codex, Copilot, Gemini CLI, and 70+ others:
npx skills add coworkkit-ai/skillsTwo skills install together: coworkkit-setup (install → verify → first magic) and coworkkit-declare (the procedure for every later change). In Claude Code you can install it as a plugin instead, which also connects the MCP server below with no manual step:
/plugin marketplace add coworkkit-ai/skills
/plugin install coworkkit@coworkkitPrefer to add it yourself, or using another MCP client? Coworkkit runs an MCP server your coding agent can connect to — Claude Code, Cursor, VS Code, Codex, Gemini CLI, Windsurf, Claude Desktop, and any other MCP-capable client. It gives your agent three things, in order of how much trust each needs: live docs with no account at all, then session diagnostics and small config changes for your own workspace after a one-time browser sign-in.
1 · Add the server
The Coworkkit MCP server is remote: a hosted HTTPS endpoint at https://app.coworkkit.ai/api/mcp. Nothing to install — every client just points at that URL (it’s a modern Streamable HTTP server, not the legacy SSE transport). Pick your client below; most add it in one command or one click, the rest take a small config block. Don’t see yours? The generic block under the picker works in any MCP client. Add it, then restart your agent — the first time it uses a workspace tool, your client opens the browser sign-in itself (step 3). There’s no token to paste into any config file.
One command. The --transport http flag is required: without it the CLI reads the URL as a local program to launch, and the server fails to start.
claude mcp add --transport http coworkkit https://app.coworkkit.ai/api/mcpOne click — this opens Cursor and pre-fills the server:
Or by hand — a remote server is a bare url under mcpServers, global in ~/.cursor/mcp.json or per-project in .cursor/mcp.json:
{
"mcpServers": {
"coworkkit": {
"url": "https://app.coworkkit.ai/api/mcp"
}
}
}One command:
code --add-mcp '{"name":"coworkkit","type":"http","url":"https://app.coworkkit.ai/api/mcp"}'Or one click:
Or by hand in .vscode/mcp.json for this workspace, or your user mcp.json. Two things differ from most clients: the top-level key is servers (not mcpServers), and an HTTP server needs type: http:
{
"servers": {
"coworkkit": {
"type": "http",
"url": "https://app.coworkkit.ai/api/mcp"
}
}
}One command (remote MCP servers are supported on current Codex builds):
codex mcp add coworkkit --url https://app.coworkkit.ai/api/mcpOr add a server table to ~/.codex/config.toml by hand. A url key (in place of command) makes Codex use HTTP:
[mcp_servers.coworkkit]
url = "https://app.coworkkit.ai/api/mcp"One command:
gemini mcp add --transport http coworkkit https://app.coworkkit.ai/api/mcpEditing ~/.gemini/settings.json by hand? Use the httpUrl key — a plain url is read as the legacy SSE transport:
{
"mcpServers": {
"coworkkit": {
"httpUrl": "https://app.coworkkit.ai/api/mcp"
}
}
}In ~/.codeium/windsurf/mcp_config.json. Windsurf marks a remote server with a serverUrl key:
{
"mcpServers": {
"coworkkit": {
"serverUrl": "https://app.coworkkit.ai/api/mcp"
}
}
}Easiest from Cline’s panel (MCP Servers → Remote → Streamable HTTP), or edit cline_mcp_settings.json by hand. The transport value is streamableHttp (camelCase; the hyphenated spelling silently falls back to SSE):
{
"mcpServers": {
"coworkkit": {
"type": "streamableHttp",
"url": "https://app.coworkkit.ai/api/mcp"
}
}
}In Zed’s settings.json (zed: open settings file from the command palette), under context_servers:
{
"context_servers": {
"coworkkit": {
"url": "https://app.coworkkit.ai/api/mcp"
}
}
}Claude Desktop adds a remote server from its interface — its config file is for local (stdio) servers only. Open Settings → Connectors → Add custom connector, name it coworkkit, and paste the URL:
https://app.coworkkit.ai/api/mcpFrom Settings → AI → MCP servers → Add, or edit ~/.warp/.mcp.json by hand — a bare url under mcpServers:
{
"mcpServers": {
"coworkkit": {
"url": "https://app.coworkkit.ai/api/mcp"
}
}
}One command. The OAuth flag walks the browser sign-in when the agent needs your workspace:
amp mcp remote add coworkkit https://app.coworkkit.ai/api/mcp --auth oauth --personalAny other MCP client — the generic way
Most clients take the same shape: an mcpServers object with a url. Paste this into your client’s MCP config and restart:
{
"mcpServers": {
"coworkkit": {
"url": "https://app.coworkkit.ai/api/mcp"
}
}
}That block works as-is in Cursor, Windsurf, Warp and others, and the url drops straight into any “add a remote server / custom connector” field (Claude Desktop, JetBrains AI Assistant). A few clients want one small change:
- Claude Code and VS Code — add
type: http(in VS Code the top-level key isservers, notmcpServers). - Cline — add
type: streamableHttp(camelCase; the hyphenated spelling silently falls back to SSE). - Gemini CLI — rename
urltohttpUrl(a plainurlis read as the legacy SSE transport). - Zed — the top-level key is
context_servers. - Codex — it’s TOML, not JSON:
[mcp_servers.coworkkit]with aurl.
Still stuck, or your client only speaks the local (stdio) protocol? Bridge it with mcp-remote — this also handles the browser sign-in for clients that don’t support MCP authentication natively:
npx -y mcp-remote https://app.coworkkit.ai/api/mcp2 · Ask for docs, no account needed
Straight away, with no sign-in, your agent can read the live documentation and the integration recipe. Ask it something like “using the Coworkkit MCP, add voice to this app” and it pulls the current getting-started guide (the same one you’re reading) through the get_docs and get_started tools. These stay in sync with the shipped docs automatically. Once voice works, have it read the patterns topic before it wires an action; that page is written for exactly this reader (Patterns & best practices).
3 · Sign in once for your own workspace
The moment you ask your agent to do something workspace-specific, “why was my last session silent?” or “switch to the calmer voice”, it needs to act as you. Your client opens a browser to the Coworkkit portal, you sign in with your normal account, and you approve the connection on a consent screen. That’s the whole setup: there is no API key to paste anywhere. Your agent receives a short-lived, auto-rotating token; your secret key stays only in your backend, where it mints sessions.
After that one approval, your agent can:
- Diagnose sessions:
check_setup,list_sessions,get_session, anddiagnose_sessionread your session health (why a call was rejected, whether a mic ever published, connect rates). - Adjust configuration:
list_voicesandupdate_configchange the allowed settings (voice, language, greeting/persona text, timeouts). Config changes are marked high-impact, so your agent confirms with you before making one. - Pick the coworker: if your account owns several coworkers, every tool takes an optional
coworkerargument (the coworker’s id, shown on its card). Without it the agent acts on your account’s first coworker. It can only ever name a coworker of your own account.
Everything is scoped to your own workspace and your own permissions. The agent can never reach another account’s data, delete your workspace, touch API keys, or spend credits.
4 · Revoke any time
Each connected agent is listed under Settings → Connected agents, with the date you approved it and when it was last used. Revoke one there and its access stops on the next call. To reconnect, your agent walks the browser sign-in again.