MCP API quickstart
Connect any MCP client to Kindo and access permitted tools from connected integrations and first-party Platform tools through one URL with one API key. Tools are available only when your organization’s approval setting is Run automatically. An organization setting of Ask before running or Block hides tools and prevents external MCP execution. Personal tool approval settings apply to Kindo chats and agents; configure your tool preferences in your external client. For tools requiring approval, use Kindo chat if manual approvals are enabled for your organization, or contact your administrator.
POST https://api.kindo.ai/v1/mcp is a remote Model Context
Protocol server. Point a spec-conformant MCP client at it and you
get a tool catalog filtered by your account’s access and organization approval settings.
A typical tools/list will return entries like:
linear_create_issuegithub_search_repositoriesslack_post_messagejira_get_ticketnotion_search_pages
Integration tools are prefixed with their integration ID. First-party Platform
tools use the platform_ prefix and appear only when the feature is configured
and your account is allowed to use them.
Prerequisites
Section titled “Prerequisites”- A Kindo API key (see Authentication).
- An MCP-capable client. Anything that speaks the MCP spec works — Claude Code, OpenClaw, Codex CLI, Claude Desktop, Hermes, Cursor, VS Code, or your own code using the official SDK. See Client setup for copy-paste recipes.
First call
Section titled “First call”The smallest possible end-to-end example is a raw tools/list
with curl:
curl -X POST https://api.kindo.ai/v1/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -H "Authorization: Bearer $KINDO_API_KEY" \ -d '{ "jsonrpc": "2.0", "method": "tools/list", "id": 1 }'The Accept: application/json, text/event-stream header is
required by the MCP Streamable HTTP transport. MCP SDKs and the
mcp-remote bridge set it for you; raw curl callers must
include it.
You’ll get back the tools your account can access that are permitted to run automatically, across connected integrations and first-party Platform tools.
{ "jsonrpc": "2.0", "id": 1, "result": { "tools": [ { "name": "linear_list_issues", "description": "List issues in a Linear team", "inputSchema": { "type": "object", "properties": { "teamId": { "type": "string" } }, "required": ["teamId"] } } ] }}That’s the full handshake. From here pick a method:
Next steps
Section titled “Next steps”- Client setup — copy-paste recipes for Claude Code, OpenClaw, Codex CLI, Claude Desktop, Hermes, Cursor, VS Code, and the JS/TS SDK.
- Request shape — required headers, supported JSON-RPC methods, and the tool naming convention.
- Scoping — which tools you see in
tools/list, why the list is what it is, and how to narrow it.
