Skip to content

MCP API — client setup

Every recipe below points an MCP client at https://api.kindo.ai/v1/mcp and authenticates with your Kindo API key in the Authorization header. Set KINDO_API_KEY in your shell, or substitute the literal value.

Terminal window
claude mcp add \
--header "Authorization: Bearer ${KINDO_API_KEY:?Set KINDO_API_KEY first}" \
--transport http --scope user kindo "https://api.kindo.ai/v1/mcp"

Set KINDO_API_KEY in the current shell before running this command. User scope makes the server available across directories. The shell expands the key when you add the server, and Claude Code stores it in ~/.claude.json. After rotating the key, remove the entry with claude mcp remove --scope user kindo and add it again with the updated key.

For one-off agents, evaluations, or scripts, isolate from your global MCP config with a one-off file:

kindo-mcp.json
{
"mcpServers": {
"kindo": {
"type": "http",
"url": "https://api.kindo.ai/v1/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Terminal window
claude --strict-mcp-config --mcp-config ./kindo-mcp.json \
-p "List my open Linear tickets."

--strict-mcp-config ignores user/project MCP configuration and uses only the file you pass.

Any spec-conformant MCP client that supports Streamable HTTP will work. Point it at https://api.kindo.ai/v1/mcp and send Authorization: Bearer YOUR_API_KEY. If your client speaks only stdio, wrap the URL with mcp-remote using the same pattern shown for Claude Desktop.

The bare endpoint shows eligible tools across the integrations your account can reach (see Scoping). For broad-access accounts the catalog can exceed a model’s context window. Narrow it with a query filter:

https://api.kindo.ai/v1/mcp?integrations=linear,github

The filter can only narrow what your account already admits — it never grants new access. See kindo-extensions for the header form.

  • Request shape — what to send, what comes back.
  • Scoping — which tools appear and why.
  • Errors — auth and protocol error envelopes.