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.
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:
{ "mcpServers": { "kindo": { "type": "http", "url": "https://api.kindo.ai/v1/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } }}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.
Register Kindo in OpenClaw’s MCP server registry:
openclaw mcp set kindo '{ "url": "https://api.kindo.ai/v1/mcp", "transport": "streamable-http", "headers": { "Authorization": "Bearer YOUR_API_KEY" }}'Runtimes launched from OpenClaw (embedded Pi, Claude Code adapter, Gemini, etc.) consume this shared registry automatically.
Add to ~/.codex/config.toml:
[mcp_servers.kindo]url = "https://api.kindo.ai/v1/mcp"bearer_token_env_var = "KINDO_API_KEY"Claude Desktop is stdio-only. Bridge through mcp-remote.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your platform:
{ "mcpServers": { "kindo": { "command": "npx", "args": [ "mcp-remote", "https://api.kindo.ai/v1/mcp", "--header", "Authorization: Bearer YOUR_API_KEY" ] } }}Restart Claude Desktop.
Use the Hermes CLI — it will prompt for your bearer token interactively and store it in the env file:
hermes mcp add kindo --url https://api.kindo.ai/v1/mcpOr edit ~/.hermes/config.yaml directly and add to mcp_servers:
mcp_servers: kindo: url: https://api.kindo.ai/v1/mcp headers: Authorization: "Bearer ${KINDO_API_KEY}"Hermes substitutes ${KINDO_API_KEY} from its env store; set it with hermes env set KINDO_API_KEY <your-key> or in the matching .env file.
Cursor Settings → MCP → Add new MCP server.
For native HTTP (recent Cursor builds), set type http, URL https://api.kindo.ai/v1/mcp, and header Authorization: Bearer $KINDO_API_KEY.
For older Cursor builds, use the stdio bridge — set type command with:
npx mcp-remote https://api.kindo.ai/v1/mcp --header "Authorization: Bearer $KINDO_API_KEY"Add to your workspace’s .vscode/mcp.json (create it if missing):
{ "servers": { "kindo": { "type": "http", "url": "https://api.kindo.ai/v1/mcp", "headers": { "Authorization": "Bearer ${env:KINDO_API_KEY}" } } }}Make KINDO_API_KEY available in VS Code’s launch environment and fully restart VS Code. Do not paste the key into the workspace file.
For programmatic clients, use @modelcontextprotocol/sdk:
import { Client } from '@modelcontextprotocol/sdk/client/index.js';import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const transport = new StreamableHTTPClientTransport( new URL('https://api.kindo.ai/v1/mcp'), { requestInit: { headers: { Authorization: `Bearer ${process.env.KINDO_API_KEY}` } } });
const client = new Client({ name: 'my-app', version: '1.0.0' });await client.connect(transport);
const { tools } = await client.listTools();console.log(tools.map((t) => t.name));Other clients
Section titled “Other clients”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.
Tool surface too large?
Section titled “Tool surface too large?”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,githubThe filter can only narrow what your account already admits — it never grants new access. See kindo-extensions for the header form.
Next steps
Section titled “Next steps”- Request shape — what to send, what comes back.
- Scoping — which tools appear and why.
- Errors — auth and protocol error envelopes.
