Connect
One URL, your existing key
The endpoint is https://www.monocrawl.com/mcp (Streamable HTTP transport, stateless). Authenticate with the same x-api-key header as the REST API — or a Bearer token where your client only offers an Authorization field. There is nothing to install and no separate MCP credential.
claude mcp add --transport http monocrawl https://www.monocrawl.com/mcp \ --header "x-api-key: mn_your_key_here"
{
"mcpServers": {
"monocrawl": {
"url": "https://www.monocrawl.com/mcp",
"headers": { "x-api-key": "mn_your_key_here" }
}
}
}Other clients use different configuration formats. See the integration guide, including Codex’s TOML example.
Tools
A handful of tools, not four hundred
Agents work best discovering the catalogue at runtime instead of drowning in hundreds of tool schemas. Discovery is free, so a model can browse before it spends anything.
| Tool | Arguments | Does |
|---|---|---|
call_endpoint | platform, endpoint, params | Execute a /v1 operation. Billed on success; failures cost 0 and never return sandbox samples. |
list_endpoints | platform?, search? | The registered catalogue — ids, names, costs, parameters. Free. |
get_endpoint | id | One operation in full, with a ready-to-run example. Free. |
get_balance | — | credits_remaining and credits_lifetime. Free. |
list_monitors | status?, limit?, cursor? | A page of your monitors with status, schedule, last run and this month’s spend. Follow the cursor for more. Free. |
get_monitor | id | One monitor in full with recent runs and receipts. Free. |
create_monitor | query | url | platform+endpoint, …, confirm | Without confirm: the plan and estimate, nothing created. With confirm: true, creates it (1 credit). |
update_monitor | id, status?, name?, schedule_minutes?, … | Pause (status: paused), resume (active) or edit. Free. |
run_monitor | id, confirm | Without confirm: the monitor and its per-run estimate. With confirm: true, queues one check, charged up front at the estimate and settled against the completed check. |
monitor_findings | id, unseen?, limit?, cursor?, mark_seen? | Findings with evidence links and receipts. Free. |
delete_monitor | id, confirm | Without confirm: the monitor, untouched. With confirm: true, deletes it. Irreversible. |
Tool calls routed into the API carry the standard envelope as structured content — credits_used, credits_remaining and request_id (balance can be absent on errors). Tool-validation errors can contain only isError and text; protocol errors use JSON-RPC error, not the API envelope. MCP calls production /v1: the result is real upstream/cache data or a typed error, never a sample fallback.
Guarantees
No side door
Same auth
Keys are validated identically to /v1 — revocation and per-key credit limits apply immediately.
Same rate limits
MCP traffic shares the per-key bucket: 600 requests/minute, 25 concurrent. Protocol requests such as initialize, ping and tools/list count too; notifications are acknowledged separately.
Same metering
call_endpoint bills exactly what the REST call would. Free endpoints stay free; failures and samples cost 0.
Same logging
Calls entering the API pipeline write a usage event, visible in your console usage log with its request_id.
Monitor confirmation
create_monitor, run_monitor and delete_monitor do nothing without confirm: true (the boolean). Called without it they return the plan, or the monitor as it stands. Ordinary call_endpoint requests execute immediately and may spend credits; there is no general server-side confirmation step. Configure approval in your MCP client if you require it for each call.
Your monitors only
Every monitor tool is scoped to the key’s account. Another account’s monitor id is a not-found, never a hint.
Wire format
Plain JSON-RPC, if you want it raw
The server answers single JSON-RPC 2.0 messages with plain JSON responses — no SSE stream, no session ids, so it behaves under serverless scaling and does not require a persistent server-side session. An in-flight request can still fail during a redeploy. Useful to know when smoke-testing from the shell:
curl -X POST https://www.monocrawl.com/mcp \
-H "x-api-key: mn_your_key_here" \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"call_endpoint",
"arguments":{"platform":"github","endpoint":"profile","params":{"handle":"torvalds"}}
}}'JSON-RPC batch arrays are rejected (removed in MCP 2025-06-18), GET /mcp answers 405 because there is no server-push stream, and unknown methods return -32601. The server recognises protocol versions 2024-11-05, 2025-03-26 and 2025-06-18; an unrecognised version negotiates to its supported default.