Connect via OAuth
If your client handles auth through OAuth rather than a manual API key (Claude on the web, desktop, or mobile; ChatGPT custom connectors; or any other OAuth-compatible MCP client), you don’t need an API key — the client drives the auth flow through SenderKit’s OAuth 2.1 authorization server.Find the custom connector / MCP section in your client
In Claude, this is typically Customise → Add custom connector. Other
clients have similar settings screens.
Add `https://mcp.senderkit.com` as the server URL
The client will discover SenderKit’s OAuth endpoints automatically.
The workspace and mode you choose at consent time are fixed for that
connection. To switch, revoke and reconnect. Call
senderkit_context from within a session to
confirm which workspace and mode are active.Prerequisites (API-key connection)
- A SenderKit API key. Create one in the
dashboard; see Authentication.
The same key prefix (
sk_live_/sk_test_) controls live vs test mode. - For local stdio mode:
@senderkit/cliinstalled and on yourPATH.
Hosted or local?
| Hosted | Local stdio | |
|---|---|---|
| Endpoint | https://mcp.senderkit.com | senderkit mcp subprocess |
| Auth | Authorization: Bearer <key> header | SENDERKIT_API_KEY env var |
| Network hop | yes | none |
| Requires Node.js | no | yes (via the CLI) |
Auto-install with the CLI
If you have the CLI installed,senderkit mcp install writes the config for
you. By default it configures the hosted endpoint with OAuth — no API key
is stored; your client handles sign-in. Pass --client <name> to target a
single client instead of every detected one.
--client values: claude-code, claude-desktop, cursor,
windsurf, vscode, zed, codex, opencode, or all (the default).
Manual configuration
If you’d rather edit configuration files by hand, the tabs below show the exact block per client.- Claude Code
- Claude Desktop
- Cursor
- Windsurf
- VS Code
- Zed
- Codex
- opencode
Use Verify with
claude mcp add — it writes to ~/.claude.json under
projects.<cwd>.mcpServers.senderkit (local scope) or the top-level
mcpServers.senderkit (user scope).claude mcp list, or /mcp from inside a Claude Code session.Self-hosting the HTTP server
If you’d rather not rely on the hosted endpoint, the CLI exposes the same server over Streamable HTTP. Point your client at it the same way you’d point at the hosted URL.Authorization: Bearer <key>. The server is
stateless: every request authenticates independently, so a single process can
serve multiple users or workspaces.
Troubleshooting
The server doesn't appear in my client.
The server doesn't appear in my client.
Most clients only load MCP servers at startup. Fully quit and restart the
client after editing config. For Claude Code, run
/mcp to see the live
list; for Claude Desktop, restart from the menu rather than just closing
the window.The client reports an authentication failure.
The client reports an authentication failure.
For OAuth clients (Claude web/desktop/mobile, etc.): the connection may
have been revoked. Go to Dashboard → Settings → Connected Apps, revoke
the entry for your client, and reconnect.For hosted (API key), check that the
Authorization header value is
exactly Bearer sk_live_… or Bearer sk_test_… — no extra whitespace, no
missing Bearer prefix. The server returns 401 for any missing or
unrecognized key. Revoked keys also return 401; create a new key in the
dashboard.For local stdio, the server reads SENDERKIT_API_KEY from the
environment passed to the subprocess (the env block in your client
config, or your shell if you launch the client from a terminal). If the
key isn’t set, senderkit mcp exits at startup with
No SenderKit API key found.`senderkit: command not found` or `spawn senderkit ENOENT`.
`senderkit: command not found` or `spawn senderkit ENOENT`.
The local stdio config calls the
senderkit binary directly. Install the
CLI globally (npm install -g @senderkit/cli) and confirm it’s on your
PATH with which senderkit. If your client launches outside your
shell’s PATH (Claude Desktop on macOS often does), use the absolute path
in the command field — e.g. /usr/local/bin/senderkit — or switch to
the hosted variant.Hosted setup fails through `mcp-remote`.
Hosted setup fails through `mcp-remote`.
mcp-remote requires Node.js 18+. Confirm with node --version. If npx
is missing entirely, install Node from
nodejs.org, or switch to a client with native
remote MCP support (Claude Code, Cursor, VS Code, Zed, Codex, opencode).The agent can see tools but every call returns an error.
The agent can see tools but every call returns an error.
Look at the tool’s error text — the server returns structured messages for
invalid input (
invalid_request: …), missing templates
(template_not_found: …), rate limits (rate_limited: …), and 401s. The
shape matches the REST API, so anything in
the API troubleshooting guide applies.Quickstart
The fastest path: Claude Code, hosted, in five minutes.
Tools
The full surface, parameter by parameter.