RootFetch MCP Docs
Read-only tools over committed artifacts.
Endpoint: https://rootfetch.com/mcp. Public and rate-limited. Responses are artifact-backed only (no server-side recompute).
Agent quickstart: https://rootfetch.com/agents. First-call validator: https://rootfetch.com/api/mcp/first-call.
Live probe endpoint (initialize + tools/list + outcome tool call): https://rootfetch.com/api/mcp/probe.
Interactive MCP playground: https://rootfetch.com/agents/playground.
Task recipes page: https://rootfetch.com/agents/recipes. Machine-readable recipes: https://rootfetch.com/api/mcp/task-recipes.
Includes production workflows: regime-flip-bulletin-prep and monthly-brief-payload.
Browser-friendly MCP landing page: https://rootfetch.com/mcp. Raw metadata: https://rootfetch.com/mcp?format=json.
Hosting compatibility page: https://rootfetch.com/docs/hosting/mcp/. Glama connector: https://rootfetch.com/.well-known/glama.json.
Install Options
- Direct remote endpoint (recommended):
https://rootfetch.com/mcp - NPM stdio bridge:
npx -y @khalidsaidi/rootfetch-mcp@latest rootfetch-mcp - Package:
https://www.npmjs.com/package/@khalidsaidi/rootfetch-mcp
Tool Surface
rootfetch.outcome.current_state: strict state summary + mandatory evidence.rootfetch.outcome.run_delta(left_run_id?,right_run_id?): strict run deltas + disclosure.rootfetch.outcome.tld_spotlight(tld,run_id?): strict TLD outcome row + evidence.rootfetch.outcome.alert_candidates(run_id?,limit?): strict candidate rows + trigger context.rootfetch.latest: latest pointer + run-scoped artifact URLs.rootfetch.replay_index: immutable replay index.rootfetch.run_manifest(run_id?): manifest + hash/check counts.rootfetch.run_bundle(run_id?): model + coverage + signals for one run.rootfetch.compare_link(left,right): compare URL only.
Machine-readable outcome contracts: /api/mcp/outcome-schemas.
Task-oriented tool recipes: /api/mcp/task-recipes.
Calling Pattern
MCP uses JSON-RPC 2.0. initialize returns JSON. tools/list and tools/call may return stream frames; set Accept: application/json, text/event-stream.
Initialize
curl -sS https://rootfetch.com/mcp \
-X POST \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"example","version":"1.0.0"}}}'List tools
curl -sS https://rootfetch.com/mcp \
-X POST \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
--data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'Call tool
curl -sS https://rootfetch.com/mcp \
-X POST \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
--data '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"rootfetch.latest","arguments":{}}}'Stream frame example
event: message
data: {"jsonrpc":"2.0","id":3,"result":{"content":[{"type":"text","text":"{...json...}"}]}}Operations
Default policy: 60 requests/minute per IP with burst capacity of 20. Exceeded requests return 429 withRetry-After. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, andX-RateLimit-Mode. No key is required.
- Health:
GET https://rootfetch.com/mcp/health - Healthz:
GET https://rootfetch.com/mcp/healthz - Readiness:
GET https://rootfetch.com/mcp/readyz
- MCP is read-only and artifact-backed.
- MCP does not compute new signals.
- Tool responses are size-bounded.
Usage Events
RootFetch now exposes MCP usage visibility endpoints for operational monitoring: /api/mcp/stats and /api/mcp/events. These telemetry endpoints and the usage dashboard are admin-protected via HTTP Basic Auth.
Public anonymized visibility is available at /mcp/live, backed by /api/mcp/public-stats and /api/mcp/public-events.
Stats now include adoption KPIs (unique_clients, repeat_clients, andtool_call_success_rate_pct) for weekly integration tracking.
Usage telemetry is persisted through a dedicated backend service (Cloud Run + Firestore), so stats/events remain durable across instances and deploys.
MCP remains read-only over immutable artifacts. Page-level analytics events (for example rf_mcp_doc_open and rf_copy_mcp_snippet) are still tracked separately.
Client Snippet
{
"mcpServers": {
"rootfetch": { "url": "https://rootfetch.com/mcp" }
}
}