MCP Server

The official Onto Model Context Protocol server. Plug clean URL reading and AIO scoring into Claude Code, Claude Desktop, Cursor, Cline, Zed, Continue, Windsurf, opencode — any MCP-compatible client.

Published as @ontosdk/mcp. Runs locally over stdio via npx -y @ontosdk/mcp — no daemon, no port, no install step. Listed in the public MCP registry as io.github.ravixalgorithm/onto.

What is the Onto MCP server?

The @ontosdk/mcp package is a thin MCP wrapper around the Onto Read API. It exposes three tools — read_url, score_url, and read_and_score — so any agent that speaks MCP can read websites cleanly instead of parsing hundreds of KB of React noise to find a few KB of actual content.

The server runs on the same hosted backend (api.buildonto.dev), uses the same per-user API key, and counts against the same monthly quota as direct Read API calls.

When to use it

Use the MCP server when…Use the Read API directly when…
You're using an MCP-compatible client (Claude Code, Claude Desktop, Cursor, Cline, Zed, Continue, Windsurf) and want the agent to fetch URLs itself.You're building a backend, batch job, or your own agent — anywhere you control the HTTP layer.
You want zero application code — just edit a JSON config file.You want fine-grained control over caching, retries, streaming, or response format.
Users of your IDE / chat should be able to say "read this URL" and have it work.You need higher throughput than a single MCP stdio process can drive.

Install in your client

Pick your client. Each guide is one config block plus a restart.

Tools exposed

ToolWhat it returnsTypical use
read_urlClean Markdown + extraction stats (size, reduction %, cache state).Agent needs the content of a URL and nothing else.
score_urlAIO score (0–100), letter grade, hallucination risk, penalties, benefits, recs.Agent is deciding whether to trust a source before quoting it.
read_and_scoreBoth of the above in a single call.Default for agentic workflows — let the model decide based on score and content.

Full input schemas and example responses on the Tools reference page.

MCP vs Read API directly

The MCP server is a transport. Under the hood every tool call hits the same POST /v1/read, POST /v1/score, or POST /v1/read-and-score endpoint documented in the Read API reference. Pricing, quotas, error codes, and the AIO scoring model are identical.

bash
# These two are equivalent in everything but transport:

# 1. Via MCP (agent calls the tool):
#    read_url({ url: 'https://stripe.com/pricing' })

# 2. Via HTTP (you call the API):
curl -X POST https://api.buildonto.dev/v1/read \
  -H 'Authorization: Bearer $ONTO_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://stripe.com/pricing"}'
Same key, same quota. Use the API key from app.buildonto.dev/read/keys. MCP calls count against the same monthly request budget as direct API calls — no separate billing.