{
  "markdown": "# Onto MCP Server\n\nThe official Onto Model Context Protocol server. Add clean web content reading and AI-readability scoring to Claude Code, Cursor, Cline, Zed, or any MCP-compatible AI client.\n\n## What this does\n\nOnto's MCP server exposes these tools to any AI agent:\n\n- **`read_url`** — Read any URL and get back clean, agent-ready Markdown (typically 10× smaller than raw HTML)\n- **`score_url`** — Get the AIO (AI-readability) score for any URL with a breakdown of what helps and what hurts AI consumption\n- **`read_and_score`** — Both at once: clean content plus quality assessment so the agent knows how much to trust the source\n- **`batch`** — Read, score, or extract many URLs (an explicit list or a whole site) in one call\n- **`map_site`** — Discover a site's URLs via its sitemap, without reading them\n- **`extract_data`** — Return the structured data a page already declares (JSON-LD, OpenGraph, meta)\n\nEvery tool response ends with a one-line **⚡ Onto report** — reduction, tokens saved, and AIO score — so the value is visible on every call.\n\nThis is the official MCP wrapper for the [Onto Read API](https://api.buildonto.dev). It's a thin, deterministic layer: Onto cleans and scores with a rule-based engine (no LLM in the loop), so your agent's own model never has to parse raw HTML.\n\n## Why use this?\n\nWhen AI agents read websites today, they parse hundreds of KB of React noise to find a few KB of actual content. This burns tokens and causes hallucinations.\n\nOnto strips the noise server-side, returns the agent-ready format, and reports a confidence score for the source. One tool call, one accurate answer.\n\n## Quick start\n\n### 1. Get an Onto API key\n\nSign up at [app.buildonto.dev](https://app.buildonto.dev) and create an API key at **Read → Keys**.\n\nFree tier: 1,000 credits / month. No credit card.\n\n### 2. Install in Claude Code\n\nAdd to your Claude Code MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"onto\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ontosdk/mcp@latest\"],\n      \"env\": {\n        \"ONTO_API_KEY\": \"onto_sk_live_your_key_here\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Code. The Onto tools (`read_url`, `score_url`, `read_and_score`, `batch`, `map_site`, `extract_data`) will appear in the available tools list.\n\n### 3. Install in Cursor\n\nAdd the Onto server to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this repo). Or use the UI: **Customize** (sidebar) → **MCPs** → add a custom server, same JSON.\n\n```json\n{\n  \"mcpServers\": {\n    \"onto\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ontosdk/mcp@latest\"],\n      \"env\": {\n        \"ONTO_API_KEY\": \"onto_sk_live_your_key_here\"\n      }\n    }\n  }\n}\n```\n\nFully quit Cursor (Cmd+Q / Ctrl+Q) and reopen.\n\nSee [`examples/`](./examples/) for Cline, Zed, and Continue configs.\n\n### 4. Use it\n\nIn Claude Code or Cursor, try:\n\n> Read https://stripe.com/pricing using Onto and summarize the pricing tiers.\n\nThe agent calls `read_url`, gets clean Markdown, and returns an accurate summary without parsing hundreds of KB of layout HTML.\n\n## Tools\n\n### `read_url`\n\nReturns clean Markdown for a URL with metadata about the extraction (sizes, reduction %, cache state).\n\n**Input:**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `url` | string | yes | Publicly accessible HTTP(S) URL |\n| `fresh` | boolean | no | If true, bypass cache (default: false) |\n\n### `score_url`\n\nReturns the AIO (AI-readability) score for a URL — 0-100 with a letter grade, hallucination risk, and a structured list of penalties / benefits / recommendations.\n\n**Input:**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `url` | string | yes | URL to score |\n\n### `read_and_score`\n\nReturns clean Markdown plus the AIO score in one call. Recommended default for agentic workflows.\n\n**Input:** same as `read_url`.\n\n### `batch`\n\nProcess many URLs in **one call**. **N credits** — one per URL in the list after the list is known. Failed URLs (`ok: false`) are refunded. Default mode `read-and-score` is still N, not 2N. Give an explicit list or a base URL whose pages are auto-discovered.\n\n**Input:**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `urls` | string[] | one of | Explicit list of URLs (max 50). Use this **or** `site`. |\n| `site` | string | one of | Base URL whose pages are auto-discovered via sitemap. Use this **or** `urls`. |\n| `mode` | `\"read\"` \\| `\"read-and-score\"` \\| `\"extract\"` | no | What to do per URL (default `\"read-and-score\"`) |\n| `limit` | number | no | Site mode only: max pages to discover (default 25, max 50) |\n\n### `map_site`\n\nDiscover a site's URLs (sitemap → on-page links) without reading them. **1 credit per call** (not per discovered URL) — use it to plan which pages to read or batch next.\n\n**Input:**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `url` | string | yes | Base URL of the site to map |\n| `limit` | number | no | Max URLs to return (default 100, max 1000) |\n\n### `extract_data`\n\nReturn the structured data a page already declares — JSON-LD, OpenGraph, and meta tags — plus the AIO score. Deterministic; no fields are inferred by a model.\n\n**Input:**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `url` | string | yes | URL to extract structured data from |\n\n## Pricing\n\n| Tier | Monthly credits | Price |\n|---|---|---|\n| Free | 1,000 | $0 |\n| Starter | 10,000 | $9 |\n| Growth | 100,000 | $49 |\n| Scale | 500,000 | $250 |\n| Enterprise | Custom | Contact sales |\n\nMCP tool credits match the live API meter:\n\n| Tool | Credits |\n|---|---|\n| `read_url` | 1 |\n| `read_and_score` | 1 |\n| `score_url` | 0 (free) |\n| `extract_data` | 1 |\n| `map_site` | 1 per call (not per discovered URL) |\n| `batch` | N — one per URL in the list after the list is known; failed URLs (`ok: false`) are refunded. Default mode `read-and-score` is still N, not 2N |\n\nConnect / OAuth is not a debit.\n\nManage your subscription at [app.buildonto.dev/read/billing](https://app.buildonto.dev/read/billing). Credit packs ($5–$200) are available for overflow once you're on a paid tier.\n\n## Configuration\n\nEnvironment variables:\n\n- `ONTO_API_KEY` (required) — Your Onto API key from [app.buildonto.dev/read/keys](https://app.buildonto.dev/read/keys)\n- `ONTO_API_BASE` (optional) — Override the API base URL (default: `https://api.buildonto.dev`)\n\n## Troubleshooting\n\n### \"Invalid Onto API key\"\n\nVerify your key at [app.buildonto.dev/read/keys](https://app.buildonto.dev/read/keys). If you recently rotated keys, your MCP config may have a stale value.\n\n### \"Monthly quota exceeded\"\n\nYou've used your monthly allotment. Upgrade at [app.buildonto.dev/read/billing](https://app.buildonto.dev/read/billing) or wait for the monthly reset. Paid tiers can also top up with credit packs.\n\n### Tool doesn't appear in Claude Code / Cursor\n\n1. Verify the config file is valid JSON\n2. Restart the MCP host (Claude Code, Cursor, etc.)\n3. Check the host's MCP logs for connection errors\n4. Make sure `npx` is on your PATH\n\n### \"Request timed out\"\n\nThe target site may be slow or unreachable. Onto's request timeout is 15 seconds. Retry, or try a different URL.\n\n## Links\n\n- Onto homepage: [buildonto.dev](https://buildonto.dev)\n- API documentation: [docs.buildonto.dev](https://docs.buildonto.dev)\n- Dashboard: [app.buildonto.dev](https://app.buildonto.dev)\n- GitHub issues: [github.com/ravixalgorithm/onto-mcp/issues](https://github.com/ravixalgorithm/onto-mcp/issues)\n- Contact: [founder@buildonto.dev](mailto:founder@buildonto.dev)\n\n## About Onto\n\nOnto is the compatibility layer for the agent web. Three products on one engine:\n\n- **Read** (this MCP server + API) — AI developers read any URL cleanly\n- **Serve** ([Next.js SDK](https://www.npmjs.com/package/@ontosdk/next)) — Site owners serve clean Markdown to AI crawlers\n- **Act** (coming Q3 2026) — Agents act on websites through semantic intent\n\nBuilt for AI agents reading the web. Built so they read it correctly.\n\n## License\n\nMIT\n",
  "bytes": 7946,
  "sha": "9d32e75a92d4bc12664317e54a6ed3ed8de1186951022867f85bc7eba9de4ce2",
  "repo_slug": "ravixalgorithm/onto-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ravixalgorithm_onto_854248c8/readme"
}