Command Palette

Search for a command to run...

MCP server

Grade a website for AI agents from Claude Desktop, Claude Code, Codex CLI, Gemini CLI or Cursor with the scan_site tool in the toolz-mcp MCP server.

toolz-mcp is a Model Context Protocol server that gives AI assistants a scan_site tool. Ask Claude, Codex, Gemini CLI or Cursor to "scan example.com with toolz and fix what it finds in this repo", and the assistant calls the tool, gets the score, the grade and every failed check with its fix, and can start making the changes in your code straight away.

Not published yet. The toolz-mcp package, and the scan_site tool in it, are not on npm yet, so the commands on this page fail with a "not found" error until it is released. This page documents the interface it will ship with. Until then, use the command line, which is published, or the AI Site Scanner in the browser.

The same server also provides remove_background and format_json. The setup below is the same for all three; the background remover's MCP page covers remove_background.

Does scan_site run on my machine?

No. This is the one tool in toolz-mcp that is not local. Fetching another site and probing its robots.txt, llms.txt and well-known files is done by Toolz.dev, through the same HTTP endpoint the scanner page and the CLI use, so all three always give the same answer for a site. The server sends only the URL you ask it to grade.

By default every scan_site scan is stored as a public report, so the domain's newest scan from the tool is listed at /ai-scan/scans. The tool's own description tells the assistant this, and its annotations mark it as not read-only, since each call creates a report.

Set TOOLZ_API_KEY and the server presents it on every scan, which unlocks the paid modes for the account that issued it: mode: "site" to grade up to five pages from the sitemap, and visibility: "unlisted" to keep the report out of the public directory. Both are part of Toolz Pro; the key itself is issued from the dashboard on Advanced, the tier that carries API and MCP access. Without a key the tool still works, and grades one page publicly.

json
{
  "mcpServers": {
    "toolz": {
      "command": "npx",
      "args": ["-y", "toolz-mcp"],
      "env": { "TOOLZ_API_KEY": "tz_live_..." }
    }
  }
}

If a paid mode is asked for without a key, the tool returns the reason and names the variable rather than failing silently, so the assistant can fall back to a single public page on its own.

What do I need?

Node.js 20 or newer, with npx on your PATH, and an MCP client. The client starts the server itself with the command in its config below. To check the package runs, start it by hand:

npx -y toolz-mcp

It should sit silently waiting for a client; press Ctrl C to stop it.

How do I add it to Claude Desktop?

Open Settings → Developer → Edit Config, which opens claude_desktop_config.json (on macOS in ~/Library/Application Support/Claude/, on Windows in %APPDATA%\Claude\). Add a toolz entry under mcpServers:

claude_desktop_config.json
{
  "mcpServers": {
    "toolz": {
      "command": "npx",
      "args": ["-y", "toolz-mcp"]
    }
  }
}

Restart Claude Desktop. On Windows, if the server does not start, use "command": "cmd" with "args": ["/c", "npx", "-y", "toolz-mcp"].

How do I add it to Claude Code?

One command:

bash
claude mcp add toolz -- npx -y toolz-mcp

Add --scope user to make it available in every project. Run claude mcp list to check it is connected.

How do I add it to Codex CLI?

Add a server table to ~/.codex/config.toml:

~/.codex/config.toml
[mcp_servers.toolz]
command = "npx"
args = ["-y", "toolz-mcp"]
# The first call downloads the model. Give it more than the 60 second default.
tool_timeout_sec = 300

The timeout matters for the first remove_background call, which downloads a model. It does no harm for scan_site.

How do I add it to Gemini CLI?

Add it to mcpServers in ~/.gemini/settings.json, or in .gemini/settings.json inside a project:

~/.gemini/settings.json
{
  "mcpServers": {
    "toolz": {
      "command": "npx",
      "args": ["-y", "toolz-mcp"]
    }
  }
}

How do I add it to Cursor?

Create .cursor/mcp.json in your project, or ~/.cursor/mcp.json for every project:

.cursor/mcp.json
{
  "mcpServers": {
    "toolz": {
      "command": "npx",
      "args": ["-y", "toolz-mcp"]
    }
  }
}

Any other client works the same way: the command npx with the arguments -y toolz-mcp, over stdio.

What does the scan_site tool accept?

Argument Type Required Meaning
url string Yes The site or page to grade, for example example.com or https://example.com/pricing
mode "page" or "site" No page (the default) grades the URL given. site also reads the sitemap and grades up to 5 of its pages. See Page scan vs whole-site scan

There is no site-type or check filter; every call runs all 31 checks. Clients discover the tool and its schema through the standard MCP tools/list request, so you never have to describe it to the assistant.

What does it return?

Plain text the assistant can read and act on:

  1. A first line with the domain, score and grade, for example example.com: 64/100 (D) on the Toolz.dev AI Site Scanner.
  2. Either "Every check passed." or the number of failed checks, then each failed check numbered, with Found: (what the scanner saw) and Fix: (the fix prompt).
  3. On a whole-site scan, a "Pages graded:" list with each page's score, grade and URL.
  4. Full report: and the report link.

When the scan cannot run, the tool returns an error result with the reason: Toolz.dev could not be reached, the request was refused (the error text from the endpoint, such as the rate-limit message), or Could not load <url> with the reason the site did not load. Troubleshooting explains each message.

Things to ask once it is installed:

  • "Scan example.com with toolz and fix what it finds in this repo."
  • "Run a whole-site AI readiness scan of our docs site and list the pages that score worst."
  • "Check whether our robots.txt blocks GPTBot or ClaudeBot."

Can I point it at another server?

Yes, with the TOOLZ_AISCAN_URL environment variable (default https://toolz.dev), for example a local development copy of Toolz.dev. In Claude Desktop, Cursor and Gemini CLI it goes in an env object next to args:

json
"toolz": {
  "command": "npx",
  "args": ["-y", "toolz-mcp"],
  "env": { "TOOLZ_AISCAN_URL": "http://localhost:5173" }
}

In Claude Code: claude mcp add toolz -e TOOLZ_AISCAN_URL=http://localhost:5173 -- npx -y toolz-mcp.

Troubleshooting the MCP server

  • "not found" or 404 from npm. The package is not published yet; see the note at the top.
  • The client says the server failed to start. Run npx -y toolz-mcp in a terminal. It should wait silently; an error there is the real problem. Check that node --version is 20 or newer.
  • "Too many scans. Wait a minute and try again." The per-IP limit of 6 scans a minute applies to the MCP server too. An assistant scanning several sites in a row can hit it; ask it to pause between scans.
  • Logs. The server writes its logs to standard error, which most clients keep in their MCP log.