Sitemoth

Run desktop SEO crawls and query the results from Claude or any MCP client: issues, URLs per issue, inlinks and outlinks, page HTML, crawl compare and sitemap generation. Local, no API key, free.

Documentation

Sitemoth MCP server

Sitemoth ships a Model Context Protocol server. An AI agent connected to it works with the same checks and limits as the app. The agent can do six jobs:

  • The agent starts and stops crawls.
  • The agent reads the issues overview with fixes.
  • The agent queries any tab and filter.
  • The agent inspects a URL with its inlinks and outlinks.
  • The agent compares two crawl files.
  • The agent exports CSV, Excel and XML sitemaps.

Before you start

Sitemoth's MCP server runs through Node.js, which most AI coding tools already use. It needs Node 22.13 or newer. Check your version with node -v in a terminal, and install the current LTS from nodejs.org if it is older. You do not need to install Sitemoth's npm package first, because npx fetches it on first use.

Claude Code

Claude Code adds Sitemoth with one command in a terminal:

claude mcp add --scope user sitemoth -- npx -y sitemoth mcp

The --scope user option makes Sitemoth available in every project. Start a new Claude Code session and run /mcp to see Sitemoth listed as connected.

Claude Desktop

Claude Desktop reads its MCP servers from a settings file. Open Claude Desktop, go to Settings, Developer, Edit Config, and add Sitemoth inside mcpServers:

{
  "mcpServers": {
    "sitemoth": { "command": "npx", "args": ["-y", "sitemoth", "mcp"] }
  }
}

The file lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and at %APPDATA%Claudeclaude_desktop_config.json on Windows. Quit and reopen Claude Desktop after saving. Sitemoth then appears under the tools icon in the chat box.

Cursor

Cursor reads MCP servers from ~/.cursor/mcp.json for all projects, or from .cursor/mcp.json inside one project. Add the same block:

{
  "mcpServers": {
    "sitemoth": { "command": "npx", "args": ["-y", "sitemoth", "mcp"] }
  }
}

Cursor shows Sitemoth under Settings, MCP, with a green dot once it is running.

VS Code with GitHub Copilot

VS Code reads MCP servers from .vscode/mcp.json in a project. Its format uses servers instead of mcpServers:

{
  "servers": {
    "sitemoth": { "type": "stdio", "command": "npx", "args": ["-y", "sitemoth", "mcp"] }
  }
}

Copilot Chat lists Sitemoth's tools in agent mode after you start the server from the file.

Windsurf

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Add the mcpServers block shown for Claude Desktop and refresh the server list in Cascade.

Check that it works

Ask the agent: "Use Sitemoth to crawl example.com with 50 URLs and list the issues." The agent calls start_crawl, then crawl_status, then issues. The crawl file lands in Documents/Sitemoth, so it also opens in the desktop app.

When the server does not start

  • An "npx not found" error means the app cannot see Node. Replace npx with its full path, which which npx prints on macOS and Linux and where npx prints on Windows.
  • A Node version error means Node is older than 22.13. Install the current LTS and restart the app.
  • A first start that takes a minute is normal, because npx downloads the package once.

The desktop app and the MCP server read and write the same.sitemoth files. A crawl started by an agent opens in the app, and the other way round. In the app, Help, Connect AI agents shows these setups with copy buttons.

Sitemoth MCP tools

ToolWhat it does
start_crawlSitemoth crawls a URL in the background with limits, a speed preset, rendering, include and exclude rules and content rules. It returns a crawl id.
crawl_status, stop_crawlSitemoth reports progress, throttling and the final summary. It can stop and analyze, or abort.
list_crawls, open_crawlSitemoth lists and summarizes saved crawl files.
issues, urls_with_issueSitemoth returns the issues overview with fixes, and the URLs for one check.
query_tabSitemoth returns any tab and filter with search, sorting, paging and chosen columns.
url_detail, page_htmlSitemoth returns everything about one URL, and its stored raw or rendered HTML.
compare_crawlsSitemoth compares two crawl files.
export, generate_sitemapSitemoth writes CSV or Excel files and an XML sitemap.
run_integrationSitemoth runs PageSpeed, spelling, Search Console or GA4 on an open crawl.
list_checks, list_tabs, list_bulk_exportsSitemoth lists the ids the other tools accept.

Sitemoth MCP guardrails

Sitemoth's MCP crawls default to 2,000 URLs, the Normal speed preset and no resource fetching. An agent cannot overload a server by accident. SITEMOTH_BLOCKED_HOSTS lists hosts the server refuses, and SITEMOTH_CRAWLS_DIR changes where files go. Sitemoth pages its results, so no tool dumps a whole crawl into the conversation.

Example prompts

  • Crawl example.com with 500 URLs, then list the errors and say which three to fix first.
  • Compare last month's crawl file with this one and summarize what changed.
  • Find every page that links to /old-pricing/ and list the anchor texts.
  • Run spelling on the 20 most-linked pages and list the misspellings with suggestions.