
Screaming Frog SEO Spider MCP Server (headless)
io.github.bzsasson由 GitHub 帳號 bzsasson 發布v0.4.3更新於 Oct 24, 2026
Headless Screaming Frog SEO Spider via its CLI: run crawls, export and filter data, no GUI needed.
發布方自己的服務:Spider Cloud
概覽
無介面的 MCP 伺服器,透過 Screaming Frog SEO Spider 命令列讓助理執行爬取、匯出爬取資料並分析已儲存的爬取。
- 可以做什麼
- 檢查 Screaming Frog 是否已安裝、版本與授權狀態,查看爬取資料在磁碟上的用量,並可從資料庫永久刪除已儲存的爬取。啟動網站無介面爬取並查看進度。列出已儲存的爬取及其資料庫 ID。依匯出標籤、批次匯出與報表將爬取資料匯出為 CSV。讀取匯出的 CSV 資料,支援分頁、欄位選擇以及包含、精確或正規表示式篩選,並可在不把資料列載入上下文的情況下統計數量與分組分布。
- 適用情境
- 適合無人值守或定時的技术 SEO 稽核、CI 檢查,以及查詢 Screaming Frog 中已儲存爬取的助理;特別適合希望只提供少量讀取與匯出工具、而不提供指令碼執行器的情境。建議先在圖形介面中互動式爬取,關閉後再讓助理分析結果。
- 執行需求
- 同一台機器上安裝並授權 Screaming Frog SEO Spider(免費版爬取上限為 500 個 URL),需要 Python 3.10+ 以及以 pip 或 uv 安裝的套件。環境變數 SF_CLI_PATH 指向命令列執行檔,預設使用 macOS 路徑。Screaming Frog 須使用資料庫儲存模式,且圖形介面必須關閉,因為資料庫同一時間只允許一個程序存取。選用變數:SF_ALLOWED_DOMAINS、SF_CONFIG_DIR、SF_EXPORT_TTL_SECONDS、SF_EXPORT_TIMEOUT_SECONDS。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Screaming Frog SEO Spider MCP Server (headless),將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Screaming Frog SEO Spider MCP Server (headless)
A headless MCP (Model Context Protocol) server for Screaming Frog SEO Spider. It drives the SF command line and saved crawl database directly, so Claude (or any MCP-compatible client) can run crawls, export crawl data, and analyze the results with the Screaming Frog GUI closed: on your laptop, on a server, or inside scheduled audits and CI pipelines.
This is a community project, not affiliated with Screaming Frog. Since SEO Spider v24 there is also an official MCP built into the app. The two work differently and solve different problems.
How this differs from the official Screaming Frog MCP
Screaming Frog shipped an official MCP server in SEO Spider v24. It's substantial: around 29 tools covering crawl control (start, pause, resume, progress), reports and bulk exports with field selection, URL-level inspection, screenshots, embeddings exports, and optionally a Node.js script runner with npm and filesystem read/write tools. It runs in two modes, either a Streamable HTTP server inside the open app, or a STDIO mode where the MCP client launches the Spider itself, headless. Setup is documented for Claude Desktop and LM Studio.
If you want maximum capability in an interactive session (visualizations, crawl comparison, screenshots, scripted post-processing of exports), use the official MCP. It does far more, and it's maintained by the vendor.
This server makes a different trade: it's a small, deliberately limited wrapper around SF's CLI and the saved crawl database, built for runs where nobody is watching.
Locked-down by design. Nine read-and-export tools, nothing else. No script runner, no npm install, no filesystem write access. The official MCP offers all three, and its own docs note that enabling the Node runtime "allows the execution of arbitrary code on your system" and should only be granted to a fully trusted client. There's also an SF_ALLOWED_DOMAINS allowlist to restrict what an agent is able to crawl. When an agent runs unattended on a schedule, a tool surface this small is a feature.
Installs anywhere, plainly. A pip/uv-installable Python package with a one-line stdio config on any MCP client (Claude Code, Cursor, whatever) on macOS, Linux, or Windows. The official STDIO mode ships as a Claude Desktop extension (.mcpb); the HTTP mode means opening the app and starting the server from its settings.
Light process model. Screaming Frog only runs while a tool actually needs it. The official server is the Spider application running for the whole session, whichever mode you pick.
A few tools the official set doesn't have: aggregate_crawl_data for counts and distributions computed server-side (the official path to "how many 404s" is a full export, or a Node script), delete_crawl and storage_summary for cleaning up SF's crawl database (their sf_clear_crawl clears a paused crawl, it doesn't manage stored ones), regex filtering across any column of any export via read_crawl_data, and sf_check pre-flight diagnostics that catch license problems and GUI database locks before you waste a crawl.
What it feels like from chat. The official server is stateful: you ask it to load a crawl by ID, the Spider holds it in memory for the session, and follow-up questions answer in under a second. The cost is that the session owns SF's database the whole conversation, and exports come back as full inline dumps unless the model saves files and writes Node scripts to slice them (the approach their own docs recommend for staying inside the context window). This server is stateless: each export spawns the SF CLI fresh, so the first answer on a crawl takes longer, but you can just ask ("list my crawls, export the latest one") without managing IDs or sessions, reads return only the filtered rows you asked for, and the database is released between calls. For "show me the 404s on a 100k-URL crawl", the difference is the whole export in context versus a page of matching rows.
Typical split: crawl interactively in the GUI with your full config, close it, and let this server handle the unattended side. That covers scheduled audits, CI checks, and agents querying the saved data. Both need a licensed Screaming Frog install on the same machine; neither is a cloud crawler. Note that this server requires the GUI to be closed (SF's database allows one process at a time).
See it in action
The Pre-Launch Website Audit skill for Claude Code uses this MCP server for its technical SEO and on-page audits, site-wide crawl data, custom extractions, bulk analysis across all URLs. The skill runs 5 coordinated sub-audits and works without SF (bash fallbacks), but Screaming Frog is the biggest upgrade for crawl-dependent checks.
Prerequisites
-
Screaming Frog SEO Spider installed on your machine (tested with v23.x and v24.x, should work with v16+). Download from: https://www.screamingfrog.co.uk/seo-spider/
-
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.
-
Database storage mode in Screaming Frog ('File > Settings > Storage Mode'; the default on current installs).
list_crawls,export_crawl, and the other data tools read SF's internal crawl database. In memory storage mode,crawl_sitestill works but saves each crawl as a.seospiderfile (the status output tells you where), and the data tools cannot see it. -
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:
- Run your crawl — either through the SF GUI (with all your custom settings, filters, etc.) or via the MCP
crawl_sitetool. - 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.
- 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)
Install as a persistent uv tool so the server starts instantly:
This puts a screaming-frog-mcp executable on your PATH (typically ~/.local/bin/screaming-frog-mcp). Update later with uv tool upgrade screaming-frog-mcp.
Alternatively, install with pip:
Avoid
uvx screaming-frog-mcpin MCP client configs.uvxresolves and downloads the package environment at launch. On a cold cache this can exceed the client's 60-second initialize timeout, causing intermittent "Could not attach to MCP server" errors. A persistent install never touches the network at startup.
Option B: Clone and install from source
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:
If you cloned the repo, copy .env.example to .env and edit it.
Add to Claude Code
If installed via uv tool install or pip:
Find the executable path with which screaming-frog-mcp (e.g. ~/.local/bin/screaming-frog-mcp for uv tool installs). Use the full absolute path, since GUI apps don't inherit your shell's PATH.
If cloned from source:
Add to Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json), using the same absolute executable path:
Restart Claude Desktop after editing the config.
Available Tools
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"
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
.seospiderconfigfile to customize settings (including crawl URL limits), 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:
Configuration
Environment variables
Filtering modes
read_crawl_data supports three filter modes via the filter_mode parameter:
Temp file cleanup
Exported CSVs are stored in ~/.cache/sf-mcp/exports/ and are automatically cleaned up after 1 hour (configurable via SF_EXPORT_TTL_SECONDS).
Troubleshooting
Server won't connect at all? ("Could not attach to MCP server", "failed to connect") See TROUBLESHOOTING.md for a step-by-step diagnostic guide: testing the server manually, verifying the MCP handshake, and finding your client's logs.
License
MIT
來源:README.md,提交 e6bbd37
工具
0版本歷史
2- v0.4.3最新Oct 17, 2026
- v0.4.1Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分