Skip to content
MCP Server

Setup

The Kirimdev MCP server is a standard remote MCP server at https://api.kirimdev.com/mcp, speaking the Streamable HTTP transport defined by the MCP spec. That means any MCP-compatible client can connect to it — Claude, OpenCode, Cursor, VSCode, Cline, Zed, Continue, MCP Inspector, etc. — using the same Bearer API key you already use for the REST API.

This page covers the three clients we test against. The pattern is the same everywhere: point your client at the URL, send the API key in an Authorization header, restart, and start prompting.

  • A Kirimdev API key (kdv_live_...). Generate one from the dashboard under Settings → API Keys.
  • At least one connected WhatsApp Business number.
  • The client of your choice installed (links in each tab below).
  1. Open the Claude Desktop config file.

    Terminal window
    open ~/Library/Application\ Support/Claude/claude_desktop_config.json

    If the file doesn’t exist, create it with {} as its content.

  2. Add the Kirimdev MCP server entry.

    Paste the following into the JSON (merge with any existing mcpServers block):

    claude_desktop_config.json
    {
    "mcpServers": {
    "kirimdev": {
    "command": "npx",
    "args": [
    "-y",
    "mcp-remote",
    "https://api.kirimdev.com/mcp",
    "--header",
    "Authorization:Bearer ${KIRIM_API_KEY}"
    ],
    "env": {
    "KIRIM_API_KEY": "kdv_live_REPLACE_ME"
    }
    }
    }
    }

    Replace kdv_live_REPLACE_ME with your actual API key.

  3. Restart Claude Desktop.

    Fully quit Claude (not just close the window) and reopen it. The config is read only at startup.

  4. Verify the connection.

    In the Claude chat input, look for the 🔌 MCP icon at the bottom-left. Click it — you should see kirimdev listed with 11 tools available.

In any of the clients above, send a chat message like:

“List the WhatsApp phone numbers connected to my Kirimdev account.”

The model will call list_phone_numbers and read back the numbers and their phone_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.

The client doesn’t show the kirimdev server

Section titled “The client doesn’t show the kirimdev server”
  • Confirm the JSON file parses — paste it into jsonlint.com. A misplaced comma silently disables every server.
  • For Claude Desktop: check npx is on PATH (npx -y mcp-remote --help). Install Node.js from nodejs.org if missing.
  • For OpenCode / Cursor: confirm KIRIM_API_KEY is actually set in the shell that launched the client — echo $KIRIM_API_KEY (or $env:KIRIM_API_KEY on PowerShell) should print the key.
  • Fully quit the client (not just close the window) before reopening — menu-bar / tray processes hold the old config.
  • Verify the key in the dashboard is Active (not revoked or expired).
  • Check there are no quotes or whitespace inside kdv_live_.... The format is Bearer kdv_live_<26-base32-chars>.
  • For Claude Desktop: the --header value must be exactly Authorization:Bearer ${KIRIM_API_KEY} with no space after Authorization:. mcp-remote parses on the first colon.
  • For OpenCode: make sure "oauth": false is set. Without it, OpenCode sees the 401 and tries to start an OAuth flow instead of trusting your bearer header.

The MCP tool error response carries the same code / message / request_id envelope as the REST API. Common ones:

  • whatsapp_number_not_verified — the phone_number_id you passed exists but isn’t connected. Reconnect from the dashboard.
  • resource_not_found — wrong phone_number_id, or the conversation_id / contact_id belongs to a different organization.
  • rate_limit_exceeded — you’re past the per-minute budget. The response includes a Retry-After-equivalent timestamp.

The Custom connector dialog in Claude.ai web only accepts OAuth credentials. Kirimdev’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.

The Kirimdev MCP endpoint is a standard Streamable HTTP server — any client that speaks the spec works. Quick pointers for clients we haven’t tested end-to-end but that follow the same pattern:

  • VSCode (with the GitHub Copilot MCP extension) — workspace .vscode/mcp.json, same mcpServers shape as Cursor, but the url field is "http" typed; consult the official VSCode MCP docs.
  • Cline / Continue / Zed — each ships its own settings file with a mcpServers (or equivalent) object accepting url + headers.
  • MCP Inspector (for debugging) — run npx @modelcontextprotocol/inspector and configure a custom server pointing at https://api.kirimdev.com/mcp with the bearer header. This is the fastest way to confirm the server is healthy if a client misbehaves.

For ChatGPT, the “Custom GPT” Actions feature consumes our OpenAPI spec directly — MCP isn’t required for that flow.

  • Prompting the AI — what to actually say to the assistant 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.