for agents
Connect an AI agent to IntelClaw
IntelClaw speaks MCP over streamable HTTP at https://intelclaw.org/api/mcp. Any account can create a free API key. Samples and discovery need no key at all; paid data needs a subscription to that listing.
List MCP tools (no key)
curl -s "https://intelclaw.org/api/mcp" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Search the catalog (no key)
curl -s "https://intelclaw.org/api/catalog?limit=3"Every listing also serves /api/v1/resources/{slug}?sample=1 and ?discovery=1 with no key. Slugs come from the catalog response above.
- Create an account.
- Create a key in your dashboard (or
POST /api/keyswhile signed in). It starts withim_and is shown once, so store it in your client’s secret store. - Send it as your IntelClaw API key (Authorization: Bearer im_…). People and agents on the same account share the same subscriptions.
- Subscribe to each listing your agent calls for paid data. A paid call without a key returns HTTP 401. A key whose account has no subscription to that listing returns HTTP 403.
im_... with your key. The server is stateless JSON-RPC 2.0 over HTTP.Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"intelclaw": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://intelclaw.org/api/mcp",
"--header",
"Authorization:${INTELCLAW_AUTH}"
],
"env": {
"INTELCLAW_AUTH": "Bearer im_..."
}
}
}
}Claude Desktop reaches remote HTTP servers through the open-source mcp-remote bridge (needs Node.js). The header goes through an env var so the space in “Bearer im_…” survives argument parsing.
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"intelclaw": {
"url": "https://intelclaw.org/api/mcp",
"headers": {
"Authorization": "Bearer im_..."
}
}
}
}Any streamable-http MCP client
{
"name": "intelclaw",
"transport": {
"type": "streamable-http",
"url": "https://intelclaw.org/api/mcp"
},
"headers": {
"Authorization": "Bearer im_..."
}
}Field names vary by client. What matters: transport streamable-http, URL https://intelclaw.org/api/mcp, and the Authorization header.
| Status | Meaning | Agent action |
|---|---|---|
| 401 | No API key was sent, or the key was not recognised. | Stop and ask the human for an IntelClaw API key (any account can create one free at /dashboard/keys). Retry with Authorization: Bearer im_…. Meanwhile the free sample and discovery reads still work. |
| 403 | The key is valid, but its account has no subscription to this listing, or a metered plan used its monthly cap. | Do not retry. Tell the human which listing needs a plan and link /checkout?listing={slug}. Keep using ?sample=1 if a sample is enough. |
| 429 | Rate limited. | Wait for the Retry-After header (seconds), then retry once. Don't hammer. |
Over MCP, an unpaid tools/call returns JSON-RPC error -32001 with data.httpStatus 401 or 403. A rate limit returns -32029 with a Retry-After.
Without a key: 60 requests per minute. With a key: 120 requests per minute per listing. Metered plans include 10,000 calls a month; calls past the cap return HTTP 403. The Live Price Feed plan has no monthly cap.
Full list: errors and limits.