FetchSERP MCP server

Integrates with FetchSERP API to provide SEO analysis, SERP data retrieval, web scraping, keyword research, backlink analysis, and domain intelligence across Google, Bing, Yahoo, and DuckDuckGo search engines.
Back to servers
Setup instructions
Provider
fetchSERP
Release date
Jun 20, 2025
Language
JavaScript
Stats
9 stars

The FetchSERP MCP Server provides access to FetchSERP's API for SEO analysis, SERP data, web scraping, and keyword research through the Model Context Protocol (MCP). This server allows AI assistants like Claude to retrieve real-time web data for more accurate and up-to-date responses.

Getting Started

Prerequisites

Before using the FetchSERP MCP Server, you'll need:

  1. A FetchSERP API token (new users get 250 free credits)
  2. An MCP-compatible client (like Claude Desktop)

To get your API token:

  1. Sign up at FetchSERP
  2. Your API token will be available in your dashboard

Transport Modes

The server supports two main transport modes:

  • npx mode: Zero installation, runs locally with Claude Desktop
  • HTTP mode: Supports remote deployment for multiple clients

Installation & Configuration

No installation is required as the server runs directly from GitHub using npx.

Option 1: Using npx (Local Mode)

Add this server to your MCP client configuration in Claude Desktop:

{
  "mcpServers": {
    "fetchserp": {
      "command": "npx",
      "args": [
        "github:fetchSERP/fetchserp-mcp-server-node"
      ],
      "env": {
        "FETCHSERP_API_TOKEN": "your_fetchserp_api_token_here"
      }
    }
  }
}

Alternatively, using npm registry:

{
  "mcpServers": {
    "fetchserp": {
      "command": "npx",
      "args": ["fetchserp-mcp-server"],
      "env": {
        "FETCHSERP_API_TOKEN": "your_fetchserp_api_token_here"
      }
    }
  }
}

Option 2: Using Docker

Use the pre-built Docker image for containerized deployment:

{
  "mcpServers": {
    "fetchserp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "FETCHSERP_API_TOKEN",
        "ghcr.io/fetchserp/fetchserp-mcp-server-node:latest"
      ],
      "env": {
        "FETCHSERP_API_TOKEN": "your_fetchserp_api_token_here"
      }
    }
  }
}

Manual Docker usage:

# Pull the latest image
docker pull ghcr.io/fetchserp/fetchserp-mcp-server-node:latest

# Run with environment variable
docker run -i --rm \
  -e FETCHSERP_API_TOKEN="your_token_here" \
  ghcr.io/fetchserp/fetchserp-mcp-server-node:latest

# Or run in HTTP mode on port 8000
docker run -p 8000:8000 \
  -e FETCHSERP_API_TOKEN="your_token_here" \
  -e MCP_HTTP_MODE=true \
  ghcr.io/fetchserp/fetchserp-mcp-server-node:latest

Option 3: Claude API with MCP Server

For programmatic usage with Claude's API:

const claudeRequest = {
  model: "claude-sonnet-4-20250514",
  max_tokens: 1024,
  messages: [
    {
      role: "user", 
      content: question
    }
  ],
  // MCP Server Configuration
  mcp_servers: [
    {
      type: "url",
      url: "https://mcp.fetchserp.com/sse",
      name: "fetchserp",
      authorization_token: FETCHSERP_API_TOKEN,
      tool_configuration: {
        enabled: true
      }
    }
  ]
};

const response = await httpRequest('https://api.anthropic.com/v1/messages', {
  method: 'POST',
  headers: {
    'x-api-key': CLAUDE_API_KEY,
    'anthropic-version': '2023-06-01',
    'anthropic-beta': 'mcp-client-2025-04-04',
    'content-type': 'application/json'
  }
}, JSON.stringify(claudeRequest));

Option 4: OpenAI API with MCP Server

For programmatic usage with OpenAI's API:

const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

const res = await openai.responses.create({
  model: "gpt-4.1",
  tools: [
    {
      type: "mcp",
      server_label: "fetchserp",
      server_url: "https://mcp.fetchserp.com/sse",
      headers: {
        Authorization: `Bearer ${FETCHSERP_API_TOKEN}`
      }
    }
  ],
  input: question
});

console.log(res.choices[0].message);

Available Tools

Domain & SEO Analysis

get_backlinks

Get backlinks for a domain

  • domain (required): Target domain
  • search_engine: google, bing, yahoo, duckduckgo (default: google)
  • country: Country code (default: us)
  • pages_number: Pages to search 1-30 (default: 15)

get_domain_info

Get comprehensive domain information

  • domain (required): Target domain

get_domain_emails

Extract emails from a domain

  • domain (required): Target domain
  • search_engine: Search engine (default: google)
  • country: Country code (default: us)
  • pages_number: Pages to search 1-30 (default: 1)

get_webpage_seo_analysis

Comprehensive SEO analysis of a webpage

  • url (required): URL to analyze

get_webpage_ai_analysis

AI-powered webpage analysis

  • url (required): URL to analyze
  • prompt (required): Analysis prompt

get_moz_analysis

Get Moz domain authority and metrics

  • domain (required): Target domain

Keyword Research

get_keywords_search_volume

Get search volume for keywords

  • keywords (required): Array of keywords
  • country: Country code

get_keywords_suggestions

Get keyword suggestions

  • url: URL to analyze (optional if keywords provided)
  • keywords: Array of seed keywords (optional if url provided)
  • country: Country code

get_long_tail_keywords

Generate long-tail keywords

  • keyword (required): Seed keyword
  • search_intent: informational, commercial, transactional, navigational (default: informational)
  • count: Number to generate 1-500 (default: 10)

SERP & Search

get_serp_results

Get search engine results

  • query (required): Search query
  • search_engine: google, bing, yahoo, duckduckgo (default: google)
  • country: Country code (default: us)
  • pages_number: Pages to search 1-30 (default: 1)

check_page_indexation

Check if domain is indexed for keyword

  • domain (required): Target domain
  • keyword (required): Search keyword

get_domain_ranking

Get domain ranking for keyword

  • keyword (required): Search keyword
  • domain (required): Target domain
  • search_engine: Search engine (default: google)
  • country: Country code (default: us)
  • pages_number: Pages to search 1-30 (default: 10)

Web Scraping

scrape_webpage

Scrape webpage without JavaScript

  • url (required): URL to scrape

scrape_domain

Scrape multiple pages from domain

  • domain (required): Target domain
  • max_pages: Maximum pages to scrape, up to 200 (default: 10)

scrape_webpage_js

Scrape webpage with custom JavaScript

  • url (required): URL to scrape
  • js_script (required): JavaScript code to execute

scrape_webpage_js_proxy

Scrape webpage with JavaScript and proxy

  • url (required): URL to scrape
  • country (required): Proxy country
  • js_script (required): JavaScript code to execute

User Management

get_user_info

Get user information and API credits

  • No parameters required

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "fetchserp" '{"command":"npx","args":["github:fetchSERP/fetchserp-mcp-server-node"],"env":{"FETCHSERP_API_TOKEN":"your_fetchserp_api_token_here"}}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "fetchserp": {
            "command": "npx",
            "args": [
                "github:fetchSERP/fetchserp-mcp-server-node"
            ],
            "env": {
                "FETCHSERP_API_TOKEN": "your_fetchserp_api_token_here"
            }
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "fetchserp": {
            "command": "npx",
            "args": [
                "github:fetchSERP/fetchserp-mcp-server-node"
            ],
            "env": {
                "FETCHSERP_API_TOKEN": "your_fetchserp_api_token_here"
            }
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later