Setup with Claude
There are two ways to connect Claude to the Kirim MCP server, depending on which Claude product you use:
- Claude Desktop — local config file + the
mcp-remotebridge. Works with the Bearer API key Kirim already issues. Recommended. - Claude.ai (web) — the “Custom Connector” UI. Requires OAuth, which Kirim’s MCP does not implement yet.
This guide covers Claude Desktop end-to-end. ChatGPT, Cursor, and
VSCode follow the same mcp-remote pattern with slightly different
config locations — see Other clients at the bottom.
Prerequisites
Section titled “Prerequisites”- Claude Desktop app (latest version) — download here.
- Node.js installed (for
npx), or Bun. - A Kirim API key (
kdv_live_...). Generate one from the dashboard under Settings → API Keys. - At least one connected WhatsApp Business number.
Connect Claude Desktop
Section titled “Connect Claude Desktop”-
Open the Claude Desktop config file.
Terminal window open ~/Library/Application\ Support/Claude/claude_desktop_config.jsonIf the file doesn’t exist, create it with
{}as its content.Terminal window notepad $env:APPDATA\Claude\claude_desktop_config.jsonIf the file doesn’t exist, create it with
{}as its content.Terminal window ${EDITOR:-nano} ~/.config/Claude/claude_desktop_config.json -
Add the Kirim MCP server entry.
Paste the following into the JSON (merge with any existing
mcpServersyou already have):claude_desktop_config.json {"mcpServers": {"kirim": {"command": "npx","args": ["-y","mcp-remote","https://api.kirim.chat/mcp","--header","Authorization:Bearer ${KIRIM_API_KEY}"],"env": {"KIRIM_API_KEY": "kdv_live_REPLACE_ME"}}}}Replace
kdv_live_REPLACE_MEwith your actual API key. -
Restart Claude Desktop.
Fully quit Claude (not just close the window) and reopen it. The config is read only at startup.
-
Verify the connection.
In the Claude chat input, look for the 🔌 MCP icon at the bottom-left. Click it — you should see kirim listed with 6 tools available. If the entry shows an error, jump to Troubleshooting below.
-
Try it.
Send Claude a message:
“List the WhatsApp phone numbers connected to my Kirim account.”
Claude will call
list_phone_numbersand read back the numbers and theirphone_number_ids. From there you can ask it to send messages, browse conversations, look up contacts, and so on — all in natural language.Head over to Prompting the AI for a cookbook of phrases that work well (in Indonesian and English) for each kind of task.
Security tips
Section titled “Security tips”Troubleshooting
Section titled “Troubleshooting”Claude doesn’t show the kirim server
Section titled “Claude doesn’t show the kirim server”- Confirm the JSON file parses — paste it into jsonlint.com. A misplaced comma silently disables every server.
- Check
npxis on PATH: in a terminal, runnpx -y mcp-remote --help. Ifnpxisn’t found, install Node.js from nodejs.org. - Fully quit Claude (Cmd+Q on macOS, right-click tray icon → Quit on Windows) before reopening — the menu-bar process holds the old config.
”Invalid API key” or 401 errors
Section titled “”Invalid API key” or 401 errors”- Verify the key in the dashboard is
Active(not revoked or expired). - Check there are no quotes or whitespace inside
kdv_live_.... The format isBearer kdv_live_<26-base32-chars>. - Make sure the
--headervalue is exactlyAuthorization:Bearer ${KIRIM_API_KEY}with no space afterAuthorization:.mcp-remoteparses on the first colon.
Tools call but every one returns an error
Section titled “Tools call but every one returns an error”Open the tool’s error response in Claude — it carries the same
code / message / request_id envelope as the REST API.
Common ones:
whatsapp_number_not_verified— thephone_number_idyou passed exists but isn’tconnected. Reconnect from the dashboard.resource_not_found— wrongphone_number_id, or theconversation_id/contact_idbelongs to a different organization.rate_limit_exceeded— you’re past the per-minute budget. The response includes aRetry-After-equivalent timestamp.
Claude.ai (web) — not supported yet
Section titled “Claude.ai (web) — not supported yet”The Custom connector dialog in Claude.ai web only accepts OAuth credentials. Kirim’s MCP currently authenticates via Bearer API keys only, so the web UI flow cannot complete. We’re tracking demand for adding OAuth 2.1 with Dynamic Client Registration (RFC 7591) — if you need this for your team, let us know.
In the meantime, use Claude Desktop for production assistant use cases. The two products share the same model and tool semantics; only the UI shell differs.
Other clients
Section titled “Other clients”The same mcp-remote pattern works for any client that speaks stdio
MCP. Pointers:
- Cursor —
~/.cursor/mcp.json(same JSON shape). - VSCode (with the MCP extension) — workspace
.vscode/mcp.json. - MCP Inspector (for debugging) — run
npx @modelcontextprotocol/inspectorand configure a custom server pointing athttps://api.kirim.chat/mcpwith the bearer header.
For ChatGPT, the “Custom GPT” Actions feature consumes our OpenAPI spec directly — MCP isn’t required for that flow.
Where to next
Section titled “Where to next”- Prompting the AI — what to actually say to Claude once it’s connected. Cookbook of phrases for sending, browsing, searching, and multi-step workflows.
- Available Tools — full schema for each of the 6 tools.
- MCP Overview — what the server does, what it doesn’t expose.
- Errors — error codes shared with the REST API.