# Site To Markdown — MCP tool `findutils:site_to_markdown`

Convert a full web page's HTML into clean Markdown, the way the Site to Markdown page does: navigation, footers, scripts, styles, iframes and SVG are removed, the content root is <main>, <article> or [role="main"] when present, and headings, lists, links, images, code blocks, blockquotes and tables become Markdown. Pass the page HTML (this tool does not fetch) and optionally the page URL so relative links and images resolve to absolute ones. Returns the markdown plus word, line, and character counts.

- Category: text
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, API key for tools/call, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/site-to-markdown/execute (API key, 60 req/min per IP)
- API key: Running a tool needs an API key. Keys are not for sale yet: ask for early access. Without a key, a tool call answers HTTP 402 Payment Required with the error code PAYMENT_REQUIRED. The catalog and the schemas stay open without a key. https://findutils.com/api/#api-keys
- Reference page: https://findutils.com/mcp/site-to-markdown/
- Same tool on the other surface: https://findutils.com/api/site-to-markdown/

## Connect

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/ --header "Authorization: Bearer YOUR_API_KEY"
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "site_to_markdown",
      "arguments": {
        "html": "<main><h1>Title</h1><p>Hello <a href=\"/x\">link</a></p></main>",
        "url": "https://example.com/"
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `html` | string | yes | The page HTML to convert. A full document or a fragment both work. |
| `url` | string | no | The page's URL, used only to resolve relative links and image sources. Nothing is fetched. |

Example arguments (verified):

```json
{
  "html": "<main><h1>Title</h1><p>Hello <a href=\"/x\">link</a></p></main>",
  "url": "https://example.com/"
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/site-to-markdown/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<main><h1>Title</h1><p>Hello <a href=\"/x\">link</a></p></main>",
    "url": "https://example.com/"
  }'

# Parameter schema (no key needed)
curl https://api.findutils.com/api/tools/site-to-markdown
```

Full REST reference: https://findutils.com/api/site-to-markdown/ · OpenAPI 3.1 spec: https://findutils.com/api/openapi.json

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
