Skip to content

Set up an MCP client for Spun ​

Spun hosts the MCP server, so there is nothing to install or run. Every client connects to the same address:

text
https://api.spun.com/api/mcp

On claude.ai, ChatGPT and Gemini: paste the URL and sign in with Spun - no key needed. Other clients: create a key (walkthrough) and use the snippet.

Step-by-step guides with screenshots: Connect ChatGPT to WhatsApp and Connect Claude to WhatsApp.

Setup per client ​

claude.ai (web / mobile / Desktop) - custom connector ​

No API key needed: in claude.ai, Customize → Connectors → Add → Add custom connector → name it Spun, paste the URL → Continue → Add (Claude detects the sign-in) → Connect → sign in with your Spun account. You pick the organization and access level on the consent screen (org managers only). The consent screen itself never grants autonomous sending - if your org wants that, an org manager enables it for the connected app afterwards under Connected AI apps in Spun settings, and re-consenting resets it.

text
https://api.spun.com/api/mcp

ChatGPT (web / Desktop) - connector ​

No API key needed: Plugins → Add → Add custom MCP server → Name Spun, paste the URL, keep OAuth → tick I understand and want to continue → Create as a plugin → Connect Spun → sign in with your Spun account in the same tab. No Developer mode needed (tested 2026-11-08, ChatGPT Plus on the web). Same Spun consent screen and org-manager rule as claude.ai, and AI sends wait in the same approval queue in your Spun inbox.

text
https://api.spun.com/api/mcp

Gemini app (Spark) - custom app ​

No API key needed: on gemini.google.com, Settings & help → Connected Apps → Add a custom app → paste the URL → sign in with your Spun account. Once connected in the web app it works in Spark on web and mobile too. Same Spun consent screen and org-manager rule as claude.ai and ChatGPT, and AI sends wait in the same approval queue.

text
https://api.spun.com/api/mcp

Claude Code ​

One command, then run /mcp, choose spun and Authenticate to sign in with your Spun account in the browser. No API key needed. For headless setups, add --header "Authorization: Bearer wap_YOUR_KEY" instead.

bash
claude mcp add --transport http spun https://api.spun.com/api/mcp

Claude Desktop ​

Prefer the custom connector above (add it once in claude.ai under Customize → Connectors, sign in with Spun). The mcp-remote bridge in claude_desktop_config.json is the API-key alternative.

json
{
  "mcpServers": {
    "spun": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://api.spun.com/api/mcp",
        "--header", "Authorization: Bearer wap_YOUR_KEY"
      ]
    }
  }
}

Anthropic API (MCP connector) ​

Server-side agents: pass the server in the Messages API request (beta header mcp-client-2025-11-20; your code obtains the token, the API only forwards it).

json
{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    { "role": "user", "content": "What needs my attention on WhatsApp today?" }
  ],
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://api.spun.com/api/mcp",
      "name": "spun",
      "authorization_token": "wap_YOUR_KEY"
    }
  ]
}

Cursor ​

In ~/.cursor/mcp.json (or per-project .cursor/mcp.json).

json
{
  "mcpServers": {
    "spun": {
      "url": "https://api.spun.com/api/mcp",
      "headers": { "Authorization": "Bearer wap_YOUR_KEY" }
    }
  }
}

Goose ​

In ~/.config/goose/config.yaml.

yaml
extensions:
  spun:
    enabled: true
    type: streamable_http
    uri: https://api.spun.com/api/mcp
    headers:
      Authorization: "Bearer wap_YOUR_KEY"

Gemini CLI ​

In ~/.gemini/settings.json.

json
{
  "mcpServers": {
    "spun": {
      "httpUrl": "https://api.spun.com/api/mcp",
      "headers": { "Authorization": "Bearer wap_YOUR_KEY" }
    }
  }
}

OpenClaw ​

One command; set the transport explicitly (a URL-only entry defaults to SSE) and keep the key in an environment variable as OpenClaw recommends. Check with openclaw mcp doctor spun --probe.

bash
openclaw mcp add spun --url https://api.spun.com/api/mcp \
  --transport streamable-http \
  --header 'Authorization=Bearer ${SPUN_MCP_KEY}'

n8n (MCP Client node) ​

Point the MCP Client tool node of an AI Agent workflow at the endpoint - works on n8n cloud and self-hosted. For plain automation steps (send a message when a form is filled), the Spun REST API is the simpler fit.

text
Endpoint URL:     https://api.spun.com/api/mcp
Server Transport: HTTP Streamable
Authentication:   Bearer  ->  wap_YOUR_KEY

Any stdio-only client (mcp-remote) ​

The generic bridge for clients that only speak stdio.

bash
npx -y mcp-remote https://api.spun.com/api/mcp \
  --header "Authorization: Bearer wap_YOUR_KEY"

Client compatibility ​

ClientConnectionAuthenticationStatus
claude.ai (web / mobile)Custom connector (native remote)OAuth sign-in with your Spun accountVerified 2026-11-08 (web, Ultra) - Customize, Connectors, Add custom connector, Spun sign-in and consent, tool permissions; tool calls, send approvals and disconnect verified 2026-08-16
Claude CodeNative remote (Streamable HTTP)OAuth sign-in with your Spun account (browser, localhost callback), or API key via --headerVerified 2026-10-18 - sign-in and tool calls; API key path verified 2026-08-16 incl. queued sends
ChatGPT (web / Desktop)Custom MCP server under Plugins (native remote, no Developer mode)OAuth sign-in with your Spun account (no key option)Verified 2026-11-08 (web, Plus) - Plugins, Add custom MCP server, Spun sign-in and consent; tool calls and queued sends verified 2026-10-18. Workspace admin gating on Business and Enterprise is documented by OpenAI, not tested by Spun
Claude DesktopSame custom connector as claude.ai (added under Customize → Connectors)OAuth sign-in with your Spun accountDocumented by vendor - same connector as claude.ai, not separately walked through yet
Anthropic API (MCP connector)Native remote, server-side (beta header)authorization_token field (API key)Documented by vendor - not yet verified by Spun
OpenAI Responses API / Agents SDKHosted MCP tool (type: "mcp", server_url)authorization field (API key)Documented by vendor - not yet verified by Spun
OpenClawopenclaw mcp add --transport streamable-httpAPI key header (OAuth needs an https gateway origin)Transport checked 2026-08-23 (reaches Spun, current release); tool calls with a real key pending
Gemini app (Spark, web / mobile)Custom app (native remote)OAuth sign-in with your Spun accountDocumented by vendor - not yet verified by Spun
Gemini CLINative remote (httpUrl)headers block in settings.json (API key)Documented by vendor - not yet verified by Spun
CursorNative remote (Streamable HTTP)headers block in mcp.json (API key)Documented by vendor - not yet verified by Spun
VS Code (GitHub Copilot agent mode)Native remote (.vscode/mcp.json, type: "http")headers block with an input prompt (API key)Documented by vendor - not yet verified by Spun; org policy may need an admin
Windsurf (Devin Desktop)Native remote (serverUrl in mcp_config.json)headers block (API key)Documented by vendor - not yet verified by Spun; 100-tool ceiling shared across all servers
GooseNative remote (streamable_http)headers block in config.yaml (API key)Documented by vendor - not yet verified by Spun
LM StudioRemote server in mcp.jsonheaders block (API key)Documented by vendor - not yet verified by Spun
n8n (MCP Client Tool node)Native remote (HTTP Streamable)Bearer credential, or OAuth on n8n CloudDocumented by vendor - not yet verified by Spun
Make (MCP Client app)Native remote (Streamable HTTP)OAuth connection or access-token connectionVendor open beta - not yet verified by Spun
Zapier (MCP Client)Native remote (Streamable HTTP)Bearer token field, or OAuthVendor beta - not yet verified by Spun
Microsoft Copilot StudioMCP tool (Streamable HTTP only)OAuth "dynamic discovery", or API-key headerDocumented by vendor - not yet verified by Spun; Power Platform admin policies apply
LibreChat (self-hosted)librechat.yaml type: streamable-httpheaders block, or OAuth when served over httpsDocumented by vendor - not yet verified by Spun
Open WebUI (self-hosted)Admin → Integrations → MCP (Streamable HTTP), v0.6.31+Bearer, or OAuth 2.1 (admin adds the server)Documented by vendor - not yet verified by Spun
Any stdio-only clientmcp-remote bridgeBearer header via the bridge (API key)Generic bridge - not client-specific

"Verified" means Spun signed in, listed tools and ran real tool calls from that client on the stated date. "Documented by vendor" means the vendor's current first-party docs describe remote Streamable HTTP support but Spun has not run that client end to end yet - it should work, and we will stamp a date once it has. Clients that sign in through a localhost callback (Claude Code, Cursor desktop, Gemini CLI, Goose, OpenClaw) sign in with your Spun account in the browser, or use an API key instead. Setup is per user or workspace - Spun hosts the server and the guide, it cannot install itself into your ChatGPT, IDE or automation account.

Send approvals happen in the Spun team inbox, so the approval flow is identical in every client - nothing client-specific to configure. In-session approval prompts (MCP elicitation) are a planned server-side enhancement; when they ship, clients that support elicitation will surface them automatically.

More MCP reference ​

Was this page helpful?

Spun Docs - the documentation for Spun, the WhatsApp team inbox by Spun Life LLC.