Skip to main content

MCP server for Screaming Frog SEO Spider — crawl sites, export data, and manage crawl storage via AI assistants

Project description

Screaming Frog SEO Spider MCP Server

An MCP (Model Context Protocol) server that gives Claude (or any MCP-compatible client) programmatic access to Screaming Frog SEO Spider — crawl websites, export crawl data, and manage your crawl storage, all from your AI assistant.

Prerequisites

  1. Screaming Frog SEO Spider installed on your machine (tested with v23.x, should work with v16+). Download from: https://www.screamingfrog.co.uk/seo-spider/

  2. A valid Screaming Frog license. The free version has a 500-URL crawl limit. Most MCP features (headless CLI, saving/loading crawls, exports) require a paid license.

  3. Python 3.10+

Important: How the Workflow Works

Screaming Frog uses an internal database that can only be accessed by one process at a time. This means:

You must close the Screaming Frog GUI before the MCP server can access crawl data.

The typical workflow is:

  1. Run your crawl — either through the SF GUI (with all your custom settings, filters, etc.) or via the MCP crawl_site tool.
  2. Close the Screaming Frog GUI — the GUI locks the crawl database. The MCP server's headless CLI cannot read or export data while the GUI is running.
  3. Use the MCP tools — once the GUI is closed, you can list crawls, export data, read CSVs, and more through your AI assistant.

If you forget to close the GUI, the server will detect it and show a clear error message telling you to quit SF first.

Setup

Option A: Install from PyPI (recommended)

pip install screaming-frog-mcp

Or run directly with uvx (no install needed):

uvx screaming-frog-mcp

Option B: Clone and install from source

git clone https://github.com/bzsasson/screaming-frog-mcp.git
cd screaming-frog-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Configure the CLI path

The default Screaming Frog CLI path works for macOS. If you're on Linux or Windows, set the SF_CLI_PATH environment variable:

OS Default Path
macOS /Applications/Screaming Frog SEO Spider.app/Contents/MacOS/ScreamingFrogSEOSpiderLauncher
Linux /usr/bin/screamingfrogseospider
Windows C:\Program Files (x86)\Screaming Frog SEO Spider\ScreamingFrogSEOSpiderCli.exe

If you cloned the repo, copy .env.example to .env and edit it.

Add to Claude Code

If installed via pip/uvx:

{
  "mcpServers": {
    "screaming-frog": {
      "command": "uvx",
      "args": ["screaming-frog-mcp"],
      "env": {
        "SF_CLI_PATH": "/path/to/ScreamingFrogSEOSpiderLauncher"
      }
    }
  }
}

If cloned from source:

{
  "mcpServers": {
    "screaming-frog": {
      "command": "/path/to/screaming-frog-mcp/.venv/bin/python",
      "args": ["/path/to/screaming-frog-mcp/sf_mcp.py"]
    }
  }
}

Add to Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "screaming-frog": {
      "command": "uvx",
      "args": ["screaming-frog-mcp"],
      "env": {
        "SF_CLI_PATH": "/path/to/ScreamingFrogSEOSpiderLauncher"
      }
    }
  }
}

Available Tools

Tool Description
sf_check Verify Screaming Frog is installed, check version and license status
crawl_site Start a headless background crawl (see note below)
crawl_status Check progress of a running crawl
list_crawls List all saved crawls with their Database IDs
export_crawl Export crawl data as CSV files (many export options available)
read_crawl_data Read exported CSV data with pagination and filtering
delete_crawl Permanently delete a crawl from the database
storage_summary Show disk usage of SF's crawl storage

Usage Examples

Check installation

"Is Screaming Frog installed and licensed?"

The assistant will call sf_check and report version/license info.

Work with existing crawls (recommended flow)

For most use cases, crawl in the Screaming Frog GUI where you have full control over configuration, JavaScript rendering, crawl scope, custom extraction, etc. Then close the GUI and use the MCP to analyze the results:

After you've crawled a site in the Screaming Frog GUI and closed it:

"List my saved crawls" "Export the crawl for example.com" "Show me all pages with missing meta descriptions" "What are the 404 pages?"

Crawl a site via MCP (optional)

"Crawl https://example.com with a max of 100 URLs"

The crawl_site tool can kick off headless crawls via CLI. This is useful for quick re-crawls or automated workflows, but note the limitations compared to the GUI:

  • Uses default crawl settings (no custom extraction, JavaScript rendering config, etc.)
  • You can pass a .seospiderconfig file to customize settings, but the GUI is easier for complex setups
  • The crawl must finish and save before you can export data

Export options

The server supports all of Screaming Frog's export tabs, bulk exports, and reports. Ask the assistant to read the screaming-frog://export-reference resource for the full list, or specify them directly:

export_tabs: "Internal:All,Response Codes:All,Page Titles:All"
bulk_export: "All Inlinks,All Outlinks"
save_report: "Crawl Overview"

Configuration

Environment variables

Variable Description Default
SF_CLI_PATH Path to the Screaming Frog CLI executable macOS default path
SF_ALLOWED_DOMAINS Comma-separated list of allowed crawl target domains. When set, crawl_site only accepts URLs matching these domains. Empty (all domains allowed)
SF_CONFIG_DIR Directory containing .seospiderconfig files that crawl_site can load. ~/.config/sf-mcp/configs/

Filtering modes

read_crawl_data supports three filter modes via the filter_mode parameter:

Mode Behavior Example
contains (default) Case-insensitive substring match filter_value="4" matches 400, 204, 1450
exact Case-insensitive exact match filter_value="404" matches only 404
regex Python regex (case-insensitive) filter_value="^[45]" matches 4xx and 5xx

Temp file cleanup

Exported CSVs are stored in ~/.cache/sf-mcp/exports/ and are automatically cleaned up after 1 hour.

Troubleshooting

Problem Solution
"GUI is already running" error Quit the Screaming Frog application, then retry
Empty CSV exports (headers only, 0 data rows) The GUI likely has the database locked — close it and re-export
CLI not found Check that SF_CLI_PATH in .env points to the correct executable
Crawl not appearing in list_crawls Make sure you saved the crawl in the GUI (File > Save) before closing
Export times out Large crawls may need more time — try exporting fewer tabs

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

screaming_frog_mcp-0.2.2.tar.gz (74.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

screaming_frog_mcp-0.2.2-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file screaming_frog_mcp-0.2.2.tar.gz.

File metadata

  • Download URL: screaming_frog_mcp-0.2.2.tar.gz
  • Upload date:
  • Size: 74.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for screaming_frog_mcp-0.2.2.tar.gz
Algorithm Hash digest
SHA256 7713cf36453c8f067250986b3f95787ba5d6b7da399ca2044dd4ef051bcb9118
MD5 f53cba5d5d7d8672031de80f79887e64
BLAKE2b-256 aaf28d158defbdea38cec128df4b9e7ee7e0ceb270d701556751a0a6c583e82b

See more details on using hashes here.

Provenance

The following attestation bundles were made for screaming_frog_mcp-0.2.2.tar.gz:

Publisher: publish.yml on bzsasson/screaming-frog-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file screaming_frog_mcp-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for screaming_frog_mcp-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f45e95d2e7d0f332d179caafba04a985b3e22732e2eb92e34085247a69094489
MD5 e54c6fb021486bc59acae9f8c1c839a3
BLAKE2b-256 bac7e0119bcce0730df9f8bc36235e8a548cb29a3f625e834803c843f41dfebc

See more details on using hashes here.

Provenance

The following attestation bundles were made for screaming_frog_mcp-0.2.2-py3-none-any.whl:

Publisher: publish.yml on bzsasson/screaming-frog-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page