MCP Server

Dan Sharp

Posted 17 March, 2026 by in

MCP Server

You can run crawls, analyse, export and manipulate data using the SEO Spider and node.js inside Claude, LM Studio and other AI assistants using the Screaming Frog SEO Spider MCP.

This is a paid licence feature only. It will not work in the free version.

Quick Start

If you want to set up quickly and test, then read on.

  • Ensure you have the latest version of SEO Spider installed. The MCP integration requires it to be in database storage mode (‘File > Settings > Storage Mode’), which is the default.
  • The easiest way is to use Claude Desktop and follow the Claude Desktop Setup instructions below for STDIO mode using the MCP Extension to install it.
  • Connect, then try some examples prompts suggested below, such as starting a crawl or exporting data from an existing crawl.

Introduction

The SEO Spider can operate as an MCP Server, exposing a wide range of crawl data to large language models (LLMs). This includes reports, bulk exports, and other crawl-related datasets.

In addition to data access tools, the server provides two powerful groups of tools:

Node Tools


Name
Purpose

Node script runner tool
Allows the LLM to execute custom Node.js scripts

npm install tool
enables the LLM to install any required Node packages on demand

Note: the Node tools are disabled by default, you will need to enable it in the MCP Server config (‘File > Settings > MCP Server’).

Filesystem Access Tools


Name
Purpose

Read Text File
Read the complete contents of a file from the file system as text

Write Text File
Create a new file or completely overwrite an existing file with new content

List allowed directory
Returns the allowed base directory that this server can access for reading and writing files

List directories
Get a detailed listing of all files and directories in a specified relative path

Create directory
Create a new directory or ensure a directory exists

Because these tools are built in, there is no need to configure additional MCP servers for scripting or filesystem access. This makes the SEO Spider MCP server largely self-contained and easier to manage.

All scripts, tool outputs, and installed packages are stored in a configurable directory, which you can define under ‘Settings > MCP Server’.

The full list of tools available to the LLM is detailed in our MCP Tools list below.

Running the Server

There are a number of MCP Clients that exist that can use the SEO Spider as an MCP Server. We have setups for two of these:

Claude Desktop works well but can run out of tokens quickly unless you are on the paid plan. LM Studio combined with local models is a good free alternative. We have setup guides for both below.

Claude Desktop Setup

The SEO Spider MCP server can be run in two different modes.

1. STDIO Server

This is the only mode that Claude desktop supports natively. However, you can get it to accept Streamable HTTP Servers which is documented below.

In STDIO mode:

  • The client (i.e. Claude Desktop) launches the Spider in CLI mode. The UI will not be visible to the user, it will run headless.
  • Communication happens via standard input/output streams.
  • The user must explicitly prompt the client to load a crawl.
  • You can get the client to list the most recent crawls or reference an existing database crawl by using its crawl ID, which can be found by right-clicking the crawl in the ‘File > Crawls’ dialog.

2. Streamable HTTP Server

  • The SEO Spider is started in UI mode and all data is visible to the user. The MCP Server can be started and stopped via the MCP top level menu.
  • Actions such as opening a crawl via the MCP will be visible in the UI to the user.
  • The SEO Spider exposes the MCP Server URL.

You can select which method you wish to use based upon the pros and cons above.

If you like seeing the UI and reviewing the data being analysed at the same time as Claude, then Streamable is recommended.

Licencing & Privacy: By configuring an MCP server, you must ensure the software is not accessed or interacted with by anyone other than the licensed user. You are responsible for the privacy of all data sent to, or accessed via the MCP server.

How to Add the SEO Spider as an MCP Server to Claude Desktop

There are two ways to add the SEO Spider as an MCP Server to Claude desktop, depending on whether you wish to use STDIO, or Streamable mode.

STDIO Mode Setup

You need to enable node.js and install the MCP extension to use Claude desktop in STDIO mode.

1) Enable Node.js

Click ‘File > Settings > MCP Server’ in the SEO Spider and accept and enable the Node.js runtime environment to use the SEO Spider MCP.

The Node.js setting allows the LLM to install any required Node packages on demand and execute custom node.js scripts to manage and manipulate data. As they are built-in and self contained, additional servers are not required for scripting or file access.

MCP Server Accept Node.js

2) Install the MCP Extension

Download the STDIO MCP extension via the button below.

Download STDIO MCP Extension

When you have downloaded the MCP extension, open up Claude Desktop, navigate to ‘Settings > Extensions’ and click ‘Advanced Settings’.

MCP Extensions Advanced Settings

Then click on ‘Install Extension’, and select the downloaded ‘spider-mcp.mcpb’ file.

Install MCP Extension

When selected, click ‘Install’.

Accept MCP Extension Install

The SEO Spider MCP will then be installed.

Note: The spider-mcp.mcpb file assumes the SEO Spider is installed in the default location (C:\Program Files (x86)\ on Windows or /Applications/ on macOS). If you installed it elsewhere, you will need to edit this file to reflect your custom path.

After configuring, please close Claude. Ensure it’s closed either via the tray icon, or via Task Manager – or it will continue to run in the background.

Windows note: To terminate the Claude app on Windows, you need to close it from the system tray (bottom right corner of your screen) and not just by closing the application window. Simply closing the window will leave the app running in the background and also the Spider MCP server. To properly close it, right-click the Claude icon in the system tray and select “Quit”.

Now open Claude desktop. Under ‘Settings > Developer’, the extension should be visible with a message to show it is running.

SEO Spider MCP Extension Installed

You should be able to interact directly with the SEO Spider via the MCP.

Streamable HTTP Server Mode Setup

You need to enable node.js, start the MCP server and install the MCP extension to use Claude desktop in Streamable mode.

1) Start MCP Server & Enable Node.js

Click ‘File > Settings > MCP Server’. There are two settings that require configuration –

  • Start MCP Server – In this mode, you are required to activate the MCP Server in the SEO Spider by clicking ‘Start MCP Server’.
  • Accept Node.js RE – You will need to accept and enable the Node.js runtime environment to use the SEO Spider MCP. The node.js setting allows the LLM to install any required Node packages on demand and execute custom node.js scripts to manage and manipulate data. As they are built in and self contained, additional servers are not required for scripting or file access.

When ‘Start MCP Server’ has been activated, a ‘MCP Server Active’ message will appear in the bottom left hand corner of the UI.

Start MCP Server and node.js

2) Install Node.js

The Streamable MCP extension below works by running a Node.js shim, so this is a requirement to install the extension in the next step.

3) Install the MCP Extension

Download the Streamable MCP extension via the button below.

Download Streamable MCP Extension

When you have downloaded the MCP extension, open up Claude Desktop, navigate to ‘Settings > Extensions’ and click ‘Advanced Settings’.

MCP Extensions Advanced Settings

Then click on ‘Install Extension’, and select the downloaded ‘spider-mcp.mcpb’ file.

Install MCP Extension

When selected, click ‘Install’.

Accept MCP Extension Install

The SEO Spider MCP will then be installed.

Note: The spider-streamable-mcp.mcpb file assumes the SEO Spider is installed in the default location (C:\Program Files (x86)\ on Windows or /Applications/ on macOS). If you installed it elsewhere, you will need to edit this file to reflect your custom path.

After configuring, please close Claude. Ensure it’s closed either via the tray icon, or via Task Manager – or it will continue to run in the background.

Windows note: To terminate the Claude app on Windows, you need to close it from the system tray (bottom right corner of your screen) and not just by closing the application window. Simply closing the window will leave the app running in the background and also the Spider MCP server. To properly close it, right-click the Claude icon in the system tray and select “Quit”.

Now open Claude desktop. Under ‘Settings > Developer’, the extension should be visible with a message to show it is running.

SEO Spider MCP Extension Installed

You should be able to interact directly with the SEO Spider via the MCP.

LM Studio Setup

To add the SEO Spider as an MCP server to LM Studio do the following:

  • Select the ‘Developer’ icon in the left-hand side navigation.
  • Select the ‘Local Server’ tab.
  • Click the ‘mcp.json’ button in the top central section.

Add the “screaming-frog-mcp-server” section to the “mcpServers” and click ‘Save’:

{
  "mcpServers": {
    "screaming-frog-mcp-server": {
      "url": "http://localhost:11435/mcp"
    }
  }
}

Exit the dialog and toggle the ‘Status:Stopped’ button, so it says ‘Status: Running’.

Now restart the app, head to the chat and pick a model. Click the ‘Tool’ icon in the bottom right and toggle ‘mcp/screaming-frog-mcp-server’ to enabled.

You should be able to interact directly with the SEO Spider via the MCP.

Hardware Considerations For Local Models

Local model performance depends heavily on your hardware. For example:

  • A MacBook Pro with 64 GB unified memory can run models up to around 40GB.
  • Systems with smaller GPUs or less memory may require experimentation to find a suitable model.

In general:

  • Claude will perform better than a local model.
  • Larger local models perform better than smaller local models, especially for complex prompts.
  • Thinking/reasoning models tend to give higher-quality results.
  • Models must support tool calling to work with the MCP server.

Security Considerations

Allowing LLMs to run arbitrary scripts introduces inherent security risks but at the same time unlocks great power.

We have attempted to mitigate as many risks as we can, however, only grant permission if you fully trust the LLM.

Context Window and Data Volume

It is easy for an LLM to exceed its context window when generating large reports or working with extensive crawl data. This was a key reason for adding the ability of the LLM to:

  • Save reports directly to files.
  • Generate Node.js scripts to process data externally.

In general, it is best to start a new chat for every job you want to do to save accumulating redundant conversations in the context window.

Evolving Ecosystem and Feedback

The MCP ecosystem is evolving rapidly. The current set of tools represents an initial attempt to identify what might be useful, but real-world testing will show if there are limitations.

As more users begin integrating the SEO Spider MCP Server into agentic workflows, we expect that:

  • New requirements will emerge.
  • Existing tools will need refinement.
  • Additional capabilities will likely be requested.

We look forward to user suggestions and feedback as to how we can improve the SEO Spider MCP.

Example Prompts

At the outset, it is worth reiterating our stance on AI – We do not recommend using AI to replace an experienced SEO professional.

We recommend using AI to improve efficiency of tasks and workflows like any other tool.

An experienced SEO professional should always analyse, review and interpret crawl data into appropriate prioritised actions relevant to each unique business, website and objectives.

Here are some examples for prompts.


Prompt

Crawl www.example.com with Screaming Frog and summarise the top issues found in the crawl by priority.

Crawl www.example.com with Screaming Frog, analyse the top issues identified from the Issues Overview report, consider the priorities and those in line with current technical SEO standards and create a comprehensive report detailing all issues identified in HTML/Word using any relevant bulk exports.

Bulk Export the client error broken links, and combine this against the Internal tab export considering Google Analytics Sessions, Search Console Clicks and Unique Inlinks to prioritise fixes.

Enable JavaScript rendering and crawl www.example.com.

Add XPaths to custom extraction to scrape the author and date from the blog posts here www.example.com/blog/blog-name/ and crawl the site.

Suggest and set up logical segments for this crawl.

Create and add a custom JavaScript snippet to extract entities from a page.

Open up the last two crawls to www.example.com, compare the top issues, and summarise the most important items that have changed.

Export all images over 100kb and using this file generate an HTML page that shows all of these URLs in a grid view. Show the link to each image underneath the image, a title and a short paragraph describing to a user what the purpose of the page is. Open this HTML page in a browser.

Generate a 'Redirect Chains' report and help me visualise the redirect chains - highlighting any with a final destination URL as non-indexable.

Bulk Export all non-200 response codes with inlinks as a single CSV file.

Run an internal link equity flow analysis using my existing Screaming Frog crawl named 'example'. The crawl already has ahrefs metrics integrated as columns, including URL Rating, Backlinks and Referring Domains. Load the crawl, build the internal link graph, compute weighted internal PageRank, aggregate to sections, and create an interactive visual showing the flow between them.

Export the Internal SEO element 'HTML' filter to the file all_urls.json, only export the 'Address' and 'Unique Inlinks' fields. Process this file (creating a node script if needed) to extract the top 20 URLs with the most Inlinks and save this file as top_20_inlinks. Using this file generate a bar chart of the top 20 image URLs with the most inlinks. You can use a node script to generate an HTML page that can show the bar chart

Export to the file 'co2.csv' all of the HTML URLs from the Internal SEO element. Only show the Address and CO2 (mg) field for the export. Process this file using a script to extract the top X URLs with the highest CO2 (mg) values.

Export all of the URLs from the Internal SEO Element and store in internal.csv. Read this file and show me the first X URLs and associated data.

Export the HTML URLs from the Internal SEO element to the file: internal_all.json. Export only the Address and Status Code fields.

Show me the image SEO element URLs that are missing size attributes.

MCP Server Tools

This is how the LLM interacts with the SEO Spider. Some AI software, such as LM Studio, allows you to see the tool calls as they happen. Thinking models will show the thinking output allowing you to see the reasoning about which tool was called to achieve the prompt’s goal. Monitoring this is a good way to see if the Spider is supplying expected descriptions and error messages to the LLM.

sf_list_crawls

Retrieves a list of recent web crawl jobs, ordered chronologically with the most recent first. By default, it returns the 10 latest crawls, providing a snapshot of recent activity and status.


Param
Type
Req
Description

limit
integer
no
The number of recent crawls to return. Defaults to 10

sf_load_crawl

Loads a crawl into the SEO Spider application. The load runs in the background: this tool returns as soon as the load has started. Call sf_task_status to check its progress and to retrieve the result once it has completed, or sf_cancel_task to stop it before it finishes.


Param
Type
Req
Description

crawl_id
string
yes
The id of the crawl to act on

sf_export_crawl

Export the currently loaded crawl. Only the following modes are supported: [Spider, List, API]. The export is written in the background: this tool returns as soon as the write has started. Call sf_task_status to check its progress and to retrieve the result once it has completed, or sf_cancel_task to stop it before it finishes.


Param
Type
Req
Description

file_path
string
yes
File path (relative to the allowed base directory) to write the content.

sf_set_crawl_mode

Switches the crawl mode: SPIDER for sf_crawl, LIST for sf_crawl_from_list. Each crawl tool is refused in the other mode. A few settings are kept per mode (the reply lists them): switching saves their values for the mode being left and loads the new mode’s own, so set them after switching. Refused while a crawl is loaded: call sf_clear_crawl first.


Param
Type
Req
Description

mode
string
yes
Enums: SPIDER, LIST

sf_crawl

Starts a crawl with optional config. This tool returns as soon as the crawl has started, not when it has finished, so its result says nothing about what was found. Call sf_crawl_progress and wait for ‘crawlRunning’ to be false before reading any results, or they will be incomplete.


Param
Type
Req
Description

crawl_url
string
yes
Start URL to crawl from

config_path
string
no
Optional path to configuration file

auth_config_path
string
no
Optional path to an authentication config

project_name
string
no
Optional project name for the crawl

crawl_name
string
no
Optional crawl name for the crawl

sf_crawl_from_list

Starts a List mode crawl with URLs from a file or inline.


Param
Type
Req
Description

list_mode_file
string
no
Path to a file containing URLs (one per line)

list_mode_urls
string
no
Inline URLs to crawl (one per line)

config_path
string
no
Optional path to configuration file

auth_config_path
string
no
Optional path to an authentication config

project_name
string
no
Optional project name for the crawl

crawl_name
string
no
Optional crawl name for the crawl

sf_pause_crawl

Pauses a running crawl


Param
Type
Req
Description

sf_resume_crawl

Resumes a paused crawl


Param
Type
Req
Description

sf_clear_crawl

Clear a paused crawl


Param
Type
Req
Description

sf_crawl_progress

Get the progress of a running crawl. ‘crawlRunning’ is false once the crawl has stopped, whether it finished on its own, was paused or has not started yet – poll this to find out when a crawl launched by sf_crawl is over. If the crawl stopped with only the start URL completed, it most likely failed: call sf_check_faq_before_answering before telling the user why. ‘crawlProgress.percentComplete’ reaching 100 does not mean the crawl is over: it is the share of queued URLs already done, and more can still be queued. Post-crawl work continues after that, so wait for ‘postCrawlAnalysisProgress.percentComplete’ to reach 100 as well before reading results that crawl analysis populates. While ‘crawlRunning’ is true the tools that export or report, read a crawled URL, change the configuration, load a crawl or start one are refused as busy, so wait for it to be false before calling them – crawl analysis and a crawl being saved count as running too. ‘crawlId’ identifies the crawl the SEO Spider has open.


Param
Type
Req
Description

sf_generate_report

Generates a report for the requested category and writes it to the file path you supply. Returns export metadata not the report contents. Use the sf_list_reports tool to get a list of all available reports. The export is written in the background: this tool returns as soon as the write has started. Call sf_task_status to check its progress and to retrieve the result once it has completed, or sf_cancel_task to stop it before it finishes.


Param
Type
Req
Description

category
string
yes
Colon delimited report category. Use 'Category:Subcategory' format for nested reports

file_path
string
yes
File path (relative to the allowed base directory) to write the content.

data_fields
array
no
The data fields to export. If empty all available data fields will be exported

export_type
string
no
Format of export. The default is NDJSON
Enums: CSV, NDJSON

sf_task_status

Reports the status of the background task that is running (in progress, succeeded or failed) and returns the task result details once it has completed.


Param
Type
Req
Description

sf_cancel_task

Cancels the background task currently running, freeing the SEO Spider to serve other tools. Use this when a task is taking too long or was started by mistake. Any partly completed work is discarded.


Param
Type
Req
Description

sf_generate_bulk_export

Generates a bulk export for the requested category and writes it to the output path you supply. Returns export metadata, not the exported data. Use the sf_list_bulk_exports tool to get a list of all available bulk exports. The export is written in the background: this tool returns as soon as the write has started. Call sf_task_status to check its progress and to retrieve the result once it has completed, or sf_cancel_task to stop it before it finishes.


Param
Type
Req
Description

category
string
yes
Colon delimited report category. Use 'Category:Subcategory' format for nested reports

output_path
string
yes
Output path (relative to the allowed base directory) to write the export to. For single-file exports this is a file path; for multi-file exports this is a directory path, created if it does not exist. Use '.' for the allowed base directory

data_fields
array
no
The data fields to export. If empty all available data fields will be exported. For multi-file exports this has no effect.

export_type
string
no
Format of export: CSV or NDJSON. Default is NDJSON. Only applies to single-file exports. Multi-file exports are always CSV
Enums: CSV, NDJSON

sf_bulk_export_page_content

Bulk-exports page content for all crawled HTML URLs in NDJSON format to the file path you supply. Returns export metadata, not the page content. The export is written in the background: this tool returns as soon as the write has started. Call sf_task_status to check its progress and to retrieve the result once it has completed, or sf_cancel_task to stop it before it finishes.


Param
Type
Req
Description

file_path
string
yes
File path (relative to the allowed base directory) to write the content.

page_content_type
string
yes
the form to render the page content in
Enums: RAW_HTML, VISIBLE_TEXT, MARKDOWN

sf_export_seo_element_urls

Export the URLs in one SEO element filter, with their data fields, as NDJSON to the file path you supply. Call sf_list_filters_for_seo_element for the filter names. A null value means the data is unavailable; do not guess or infer it. The ‘urlContent’ field is only exported when named in data_fields. It holds the visible text of HTML pages and base64 encoded images, so it can make the file very large: limit rows with max_rows and read the file line by line, not whole. The result is export metadata with one sample row, not the rows. The export is written in the background: this tool returns as soon as the write has started. Call sf_task_status to check its progress and to retrieve the result once it has completed, or sf_cancel_task to stop it before it finishes.


Param
Type
Req
Description

seo_element_name
string
yes
SEO Element name, as a tab is named in the app. Case, and whether words are joined by a space, an underscore or a hyphen, are ignored.
Enums: JavaScript, H1, H2, Internal, External, AMP, Canonicals, Content, Custom Extraction, Custom Search, Custom JavaScript, Directives, Analytics, Search Console, Hreflang, Images, Link Metrics, Meta Description, Meta Keywords, PageSpeed, Pagination, Response Codes, Security, Sitemaps, Structured Data, Page Titles, URL, Change Detection, Links, Validation, Mobile, AI, Accessibility, Social

filter_name
string
yes
Filter name, one of those sf_list_filters_for_seo_element returns for the element. The whole name is needed rather than part of one, but case, and whether words are joined by a space, an underscore or a hyphen, are ignored.

file_path
string
yes
File path (relative to the allowed base directory) to write the content.

segment_name
string
no
Optional segment name. If omitted, will export all segments

data_fields
array
no
The data fields to export. If empty all available data fields will be exported

start_index
integer
no
Optional start index of URLs to export. Defaults to 0

max_rows
integer
no
Optional maximum number of URLs to export. If omitted, all rows are exported

sf_export_embeddings

Generates a CSV file with the URL and embeddings. The export is written in the background: this tool returns as soon as the write has started. Call sf_task_status to check its progress and to retrieve the result once it has completed, or sf_cancel_task to stop it before it finishes.


Param
Type
Req
Description

file_path
string
yes
File path (relative to the allowed base directory) to write the content.

sf_get_url_screenshot

Get the stored screenshot of the web page for the URL. If a file path is supplied will save the image to that file. If no file path is supplied will return the base64 encoded image string.


Param
Type
Req
Description

url
string
yes
The URL to get the screenshot for

file_path
string
no
Optional file path (relative to the allowed base directory) to write the content. If omitted, returns the content as a string.

sf_url_info

Generates a JSON report with information on the supplied URL


Param
Type
Req
Description

url
string
yes
The URL to get information on

file_path
string
no
Optional file path (relative to the allowed base directory) to write the content. If omitted, returns the content as a string.

sf_url_content

Get the content of a specific URL in the loaded crawl

  • If the URL is an image, generates base64 encoded image content.
  • If the URL has HTML content type, generates the page content in the form asked for.

Param
Type
Req
Description

url
string
yes
The URL

page_content_type
string
no
Optional the form to render the page content in. Defaults to RAW_HTML
Enums: RAW_HTML, VISIBLE_TEXT, MARKDOWN

file_path
string
no
Optional file path (relative to the allowed base directory) to write the content. If omitted, returns the content as a string.

sf_url_links

Lists all of the URL inlinks or outlinks depending on the links_direction argument.


Param
Type
Req
Description

url
string
yes
The URL to get links for

links_direction
string
yes
Enums: inlinks, outlinks, unique_outlinks

links_category
string
yes
the category of link
Enums: Hyperlink, JavaScript, CSS, Image, SWF, HTML Canonical, HTTP Canonical, HTML Rel Prev, HTTP Rel Prev, HTML Rel Next, HTTP Rel Next, HTTP Hreflang, HTML Hreflang, Sitemap Hreflang, HTTP Redirect, HSTS Redirect, JavaScript Redirect, Meta Refresh Redirect, HTTP Refresh Redirect, XML Sitemap, AMPHTML, Mobile Alternate, Open Graph Image, X Card Image, Iframe, Misc, PDF, Video, Audio, Font

file_path
string
no
Optional file path (relative to the allowed base directory) to write the content. If omitted, returns the content as a string.

sf_open_url_in_browser

Opens the URL or absolute file path in an external browser


Param
Type
Req
Description

url
string
yes
The destination to open in the web browser. This can be a standard web address (e.g., https://google.com) or a local file path relative to the allowed base directory.

sf_list_reports

Lists all available reports


Param
Type
Req
Description

sf_list_bulk_exports

Lists all available bulk exports


Param
Type
Req
Description

sf_list_filters_for_seo_element

List the filters the supplied seo element currently has. For most elements that is a fixed set and the list never changes. For AI, Custom Extraction, Custom Search and Custom JavaScript the filters come from configuration, so only the configured prompts, extractors and searches appear, each under its own name, alongside ‘All’. One with nothing configured lists just ‘All’, and that is not the whole set it could have: add some with sf_set_config_spider, crawl, then list again.


Param
Type
Req
Description

seo_element_name
string
yes
SEO Element name, as a tab is named in the app. Case, and whether words are joined by a space, an underscore or a hyphen, are ignored.
Enums: JavaScript, H1, H2, Internal, External, AMP, Canonicals, Content, Custom Extraction, Custom Search, Custom JavaScript, Directives, Analytics, Search Console, Hreflang, Images, Link Metrics, Meta Description, Meta Keywords, PageSpeed, Pagination, Response Codes, Security, Sitemaps, Structured Data, Page Titles, URL, Change Detection, Links, Validation, Mobile, AI, Accessibility, Social

sf_list_fields_for_seo_element_filter

List the available data fields for the supplied seo element name and filter type. The filter must be one this crawl actually filled, which for AI, Custom Extraction, Custom Search and Custom JavaScript means one configured before the crawl ran; call sf_list_filters_for_seo_element for the names and sf_get_config_spider for what is configured.


Param
Type
Req
Description

seo_element_name
string
yes
SEO Element name, as a tab is named in the app. Case, and whether words are joined by a space, an underscore or a hyphen, are ignored.
Enums: JavaScript, H1, H2, Internal, External, AMP, Canonicals, Content, Custom Extraction, Custom Search, Custom JavaScript, Directives, Analytics, Search Console, Hreflang, Images, Link Metrics, Meta Description, Meta Keywords, PageSpeed, Pagination, Response Codes, Security, Sitemaps, Structured Data, Page Titles, URL, Change Detection, Links, Validation, Mobile, AI, Accessibility, Social

filter_name
string
yes
Filter name, one of those sf_list_filters_for_seo_element returns for the element. The whole name is needed rather than part of one, but case, and whether words are joined by a space, an underscore or a hyphen, are ignored.

sf_list_segment_query_columns

Lists the columns a segment query may reference, for the configuration currently loaded. Each entry gives the ‘column’ name to put in square brackets in the query, the ‘label’ the UI shows for it, and the ‘group’ it is filed under. Call this before writing a segment query: column names are internal identifiers rather than UI column headings, and an unrecognised name makes the whole query invalid so the segment matches nothing.


Param
Type
Req
Description

filter
string
no
Optional case-insensitive substring. Only columns whose name or label contains it are returned. If omitted, every available column is returned.

sf_list_ai_prompt_targets

Lists the prompt targets an AI prompt may use, for the configuration currently loaded. A prompt target is the crawled data sent to the model: it goes in a prompt’s ‘promptTarget’ field when its promptType is SIMPLE, or inside curly braces in the prompt text when its promptType is ADVANCED. Each entry gives the ‘promptTarget’ name to write, the ‘label’ the UI shows for it, the ‘group’ it is filed under, and the ‘contentType’ of prompt it belongs to. Call this before writing a prompt: the names are internal identifiers rather than UI column headings, and an unrecognised one is rejected when the config is applied. Custom extractor and custom JavaScript targets are only listed once the extractor or snippet they read has itself been configured.


Param
Type
Req
Description

contentType
string
no
Optional prompt content type - HTML, PDF or IMAGE. Only the targets a prompt of that content type may use are returned. If omitted, every target is returned.
Enums: HTML, PDF, IMAGE

sf_run_node_script

Runs the node.js script with the supplied optional arguments


Param
Type
Req
Description

script_path
string
yes
Path to the Node.js script file, relative to the allowed base directory

args
array
no
Optional arguments passed to the node script. Arguments must not start with a dash (-). Scripts should treat these as untrusted input.

sf_npm_install

Executes npm install <dependency> to install a specific package.


Param
Type
Req
Description

dependency
string
yes
Node dependency to install

sf_list_config_categories

Lists every top-level configuration category in SEO Spider. Each entry gives the category’s ‘name’ – what sf_get_config_sub_schema and sf_get_config_spider take as their category, and what a sf_set_config_spider payload keys that category’s contents under – and a one-line ‘description’ of what that category covers. Call sf_get_config_sub_schema for a category’s full description and the fields it accepts.


Param
Type
Req
Description

sf_get_config_sub_schema

Returns the full JSON Schema for a configuration sub-category. It describes the object that goes under the category name in a sf_set_config_spider payload, not the payload itself. Use sf_list_config_categories first to discover available category names.


Param
Type
Req
Description

category
string
yes
The config category name (e.g. 'crawlConfig', 'performanceConfig'). Obtain valid names from the sf_list_config_categories tool.

sf_get_config_spider

Returns the current JSON configuration for SEO Spider. If a category is specified, only that category’s configuration is returned, still keyed by its category name; otherwise the full configuration is returned. Either result can be passed straight back to sf_set_config_spider unchanged. Use sf_list_config_categories and sf_get_config_sub_schema to discover valid category names and their schemas.


Param
Type
Req
Description

category
string
no
The config category name (e.g. 'crawlConfig', 'performanceConfig'). Obtain valid names from the sf_list_config_categories tool. If omitted, the full configuration is returned.

sf_set_config_spider

Applies a partial JSON configuration to SEO Spider. Only the fields present in the JSON are updated; all other settings retain their current values. A field holding a list is replaced by the list you send rather than merged into it, so send every entry you want to keep, not just the ones you are adding. Use sf_list_config_categories and sf_get_config_sub_schema to discover valid category names and their schemas.


Param
Type
Req
Description

config
string
yes
JSON configuration string containing one or more top-level config categories. Example: {"crawlConfig": {"crawlerMode": "RENDER"}, "performanceConfig": {"limitPerformance": true, "urlRequestsPerSecond": 4}}

sf_list_issue_filter_keys

Lists every issue the Spider can report, for the configuration currently loaded. Each entry gives the ‘filterKey’ to use as a key in issueOverridesConfig.overrides, the ‘name’ and ‘tab’ the UI shows it under, and the ‘defaultType’ and ‘defaultPriority’ it is classified as when nothing overrides it. Call this before writing issueOverridesConfig: filter keys are internal identifiers rather than UI filter names, and only the ones listed here can be overridden.


Param
Type
Req
Description

filter
string
no
Optional case-insensitive substring. Only issues whose filterKey, name or tab contains it are returned, in English as well as the app's language. Underscores, hyphens and spaces are interchangeable, so 'meta description', 'META_DESCRIPTION' and 'meta-description' all match the same issues. If omitted, every issue is returned.

sf_list_api_connections

Lists every external API SEO Spider can use and its live connection state, as ‘googleApis’ and ‘otherApis’. An API’s data reaches a crawl only when it is connected here; a crawl using a disconnected provider still succeeds, its columns just come back empty, so check here before trusting empty columns. Each entry’s ‘api’ is the provider argument for sf_connect_api, and ‘configCategory’ is the category sf_set_config_spider takes for its options, or null where none of them can be set over MCP. ‘hasStoredCredentials: false’ means the user must supply the key or authorise the account in the desktop app first – retrying will not help. ‘googleApis’ also report ‘googleAccount’: ‘savedAccounts’, the only valid account arguments, plus ‘defaultAccount’, ‘connectedAccount’ and ‘selection’ – what that account connects, such as a Search Console site or a GA4 account, property and data stream. A selection cannot be chosen over MCP; where there is none, name a saved account or ask the user to select one in the desktop app.


Param
Type
Req
Description

sf_connect_api

Connects SEO Spider to an external API using credentials already saved on this machine. It never accepts an API key: keys stay in the desktop app’s config and must never be sent over MCP. Where sf_list_api_connections reports no stored credentials for the provider, the user must enter the key or authorise the account in the desktop app first. The account argument is the only choice on offer: the Search Console site, and the Google Analytics 4 account, property and data stream, are whatever the desktop app last saved. The reply names them, so read it before trusting that provider’s data and ask the user to change the selection in the desktop app if it is wrong. Connecting an AI provider means prompts in a later crawl consume quota, so connect only when the user has asked for API analysis. Refused while a crawl is running: connect before starting one.


Param
Type
Req
Description

provider
string
yes
The API to connect. See sf_list_api_connections for each API's connection state and stored-credential status.
Enums: ga4, gsc, pagespeed, majestic, ahrefs, moz, openai, gemini, ollama, anthropic

account
string
no
Optional Google account name for Google APIs such as ga4 and gsc. Valid values are that provider's 'googleAccount.savedAccounts' on sf_list_api_connections; an account not authorised in the desktop app is rejected. Omit to connect the saved default. Ignored by key-based providers.

sf_disconnect_api

Disconnects SEO Spider from an external API. Saved credentials are untouched: the desktop app keeps the key or authorised account, so sf_connect_api can reconnect without the user doing anything. A later crawl then collects no data for that API, leaving its columns empty, so disconnect an API the user no longer wants requested – an AI provider, whose prompts consume quota on every crawl, most of all. A provider that is not connected is reported as such rather than failing. Refused while a crawl is running: disconnect between crawls.


Param
Type
Req
Description

provider
string
yes
The API to disconnect. See sf_list_api_connections for each API's connection state.
Enums: ga4, gsc, pagespeed, majestic, ahrefs, moz, openai, gemini, ollama, anthropic

sf_read_text_file

Read the contents of a text file. The whole file is returned only if it fits within the server’s maximum response size; a file over that limit is rejected outright rather than truncated, so a large export has to be read a page at a time with the ‘skip’ and ‘limit’ arguments.


Param
Type
Req
Description

path
string
yes
Path to the text file to read, relative to the allowed base directory

skip
integer
no
Start reading the text file after first skipping the supplied number of lines

limit
integer
no
Limit the number of lines read. Use with 'skip' to page through a file that is too large to return in one response

sf_write_text_file

Writes UTF-8 content to a text file. Caution, will overwrite existing files without warning


Param
Type
Req
Description

path
string
yes
Path where the text file will be written, relative to the allowed base directory

content
string
yes
The text content to write to file

sf_allowed_base_directory

Returns the allowed base directory that this server can access for reading and writing files. Subdirectories within this directory are also accessible. Use this to understand which directory and its nested paths are available before trying to access files.


Param
Type
Req
Description

sf_list_directories

Get a detailed listing of all files and directories in a specified relative path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.


Param
Type
Req
Description

path
string
yes
Directory path to list, relative to the allowed base directory. Use '.' to list the allowed base directory itself.

sf_create_directory

Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.


Param
Type
Req
Description

path
string
yes
Path to the directory to create, relative to the allowed base directory

sf_check_faq_before_answering

Official SEO Spider FAQ. General knowledge of the SEO Spider is often wrong or out of date, so check this before answering any question about its behaviour, settings or results, or a failed crawl. Call without ids for the question list, then with the relevant ids for answers.


Param
Type
Req
Description

ids
array
no
FAQ ids from the list. Omit for the list.


Dan Sharp is founder & Director of Screaming Frog. He has developed search strategies for a variety of clients from international brands to small and medium-sized businesses and designed and managed the build of the innovative SEO Spider software.

Comments are closed.

Back to top