Skip to content

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_issue
  • github_search_repositories
  • slack_post_message
  • jira_get_ticket
  • notion_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.

  • 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.

The smallest possible end-to-end example is a raw tools/list with curl:

Terminal window
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:

  • 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.