# Tools reference

> The six tools — inputs, what each returns, and what each costs.

Source: https://docs.buildonto.dev/mcp/tools
Section: MCP server

---

Tools reference\[01\]

## Tools reference

Six tools, each a thin wrapper over its `/v1` endpoint — same engine, same cache, same credits. Tools answer in text for the model to read, not JSON.

Input

urlstringreq

A public http(s) URL.

freshboolean

Skip the one-hour cache and fetch again. Default false.

Returns

Two text blocks: the Markdown, then the source's metadata — title, sizes, reduction, time taken, and whether it came from the cache.

A call


```
{
  "name": "read_url",
  "arguments": {
    "url": "https://stripe.com/pricing"
  }
}
```

Input

urlstringreq

A public http(s) URL.

freshboolean

Skip the one-hour cache and fetch again. Default false.

Returns

The Markdown, then a quality block: score and grade, hallucination risk, reduction and cache state.

PDFs and plain text come back unscored.

A call


```
{
  "name": "read_and_score",
  "arguments": {
    "url": "https://stripe.com/pricing"
  }
}
```

Input

urlstringreq

A public http(s) URL.

Returns

One text block: score and grade, hallucination risk, what the page does well, its penalties, and recommendations.

Never cached — every call scores the page as it is now.

A call


```
{
  "name": "score_url",
  "arguments": {
    "url": "https://stripe.com/pricing"
  }
}
```

Input

urlstringreq

A public http(s) URL.

freshboolean

Skip the one-hour cache and fetch again. Default false.

Returns

The page's JSON-LD, OpenGraph and meta tags, with counts of each.

A call


```
{
  "name": "extract_data",
  "arguments": {
    "url": "https://stripe.com/pricing"
  }
}
```

Input

urlstringreq

A public http(s) URL.

limitinteger

How many URLs, 1–1,000. Default 100.

Returns

The URLs, and where they came from: the sitemap, or the links on the start page. Same host only.

A call


```
{
  "name": "map_site",
  "arguments": {
    "url": "https://docs.stripe.com",
    "limit": 200
  }
}
```

Input

urlsstring\[\]

1–50 URLs. Wins if \`site\` is also given.

sitestring

A site to discover and read instead of a list.

modestring

read, read-and-score or extract. Default read-and-score.

limitinteger

With \`site\`: how many pages, 1–50. Default 25.

Returns

One text list with a section per URL. Each page's Markdown is cut at 12,000 characters.

A credit per URL; URLs that fail are refunded.

A call


```
{
  "name": "batch",
  "arguments": {
    "urls": [
      "https://stripe.com/pricing",
      "https://stripe.com/about"
    ],
    "mode": "read"
  }
}
```

### Backed by the Read API

\[02\]

Each tool calls the endpoint on its card, so the [Read API reference](/api/read) has the full response each one is built from, and [Error codes](/api/errors) covers what can go wrong.

**Cheapest first.** `score_url` is free and `map_site` costs one credit however many URLs it finds — use them to decide what's worth a read.

Copy as Markdown[](/mcp/tools.md "Open the raw Markdown")

---
## Structured Data (JSON-LD)
```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Onto Docs",
  "url": "https://docs.buildonto.dev",
  "description": "How to use Onto: serve AI agents Markdown from your Next.js site, call the Read API, connect over MCP, and read the AIO score.",
  "inLanguage": "en",
  "publisher": {
    "@type": "Organization",
    "name": "Onto",
    "url": "https://buildonto.dev"
  }
}
```