Skip to main content
Glama
FetchSERP MCP Server

FetchSERP MCP Server

Official
by fetchSERP

FetchSERP MCP Server

A Model Context Protocol (MCP) server that exposes the FetchSERP API for SEO, SERP analysis, web scraping, and keyword research.

Features

This MCP server provides access to all FetchSERP API endpoints:

SEO & Analysis

  • Domain Analysis: Get backlinks, domain info (DNS, WHOIS, SSL, tech stack)

  • Keyword Research: Search volume, suggestions, long-tail keyword generation

  • SEO Analysis: Comprehensive webpage SEO analysis

  • AI Analysis: AI-powered webpage analysis with custom prompts

  • Moz Integration: Domain authority and Moz metrics

  • Search Results: Get SERP results from Google, Bing, Yahoo, DuckDuckGo

  • AI Overview: Google's AI overview with JavaScript rendering

  • Enhanced Results: SERP with HTML or text content

  • Ranking Check: Domain ranking for specific keywords

  • Indexation Check: Verify if pages are indexed

Web Scraping

  • Basic Scraping: Scrape webpages without JavaScript

  • JS Scraping: Execute custom JavaScript on pages

  • Proxy Scraping: Scrape with country-specific proxies

  • Domain Scraping: Scrape multiple pages from a domain

User Management

  • Account Info: Check API credits and user information

Related MCP server: Prysm MCP Server

Installation

No installation required! This MCP server runs directly from GitHub using npx.

Get your FetchSERP API token: Sign up at https://www.fetchserp.com to get your API token. New users get 250 free credits to get started!

Usage

Transport Modes

This MCP server supports two transport modes:

npx mode (Option 1):

  • ✅ Zero installation required

  • ✅ Always gets latest version from GitHub

  • ✅ Perfect for individual users

  • ✅ Runs locally with Claude Desktop

HTTP mode (Option 2):

  • ✅ Remote deployment capability

  • ✅ Multiple clients can connect

  • ✅ Better for enterprise/team environments

  • ✅ Centralized server management

  • ✅ Single API key authentication (FetchSERP token)

  • ✅ Scalable architecture

Configuration

Option 1: Using npx (Local/Remote GitHub) Add this server to your MCP client configuration. For example, in Claude Desktop using github registry :

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

or using npm registry

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

Option 2: Claude API with MCP Server For programmatic usage with Claude's API and your deployed MCP server:

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 3: OpenAI API with MCP Server For programmatic usage with OpenAI's API and your deployed MCP server:

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);

Option 4: Docker Use the pre-built Docker image from GitHub Container Registry 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"
      }
    }
  }
}

Docker Features:

  • ✅ Containerized deployment

  • ✅ Cross-platform compatibility (ARM64 & AMD64)

  • ✅ Isolated environment

  • ✅ Easy scaling and deployment

  • ✅ Automated builds from GitHub

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

Available Tools

Domain & SEO Analysis

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_playwright_mcp

Use GPT-4.1 to remote control a browser via a Playwright MCP server

  • prompt (required): The prompt to use for remote control of the browser

This endpoint uses GPT-4.1 to remote control a browser via a Playwright MCP server.

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

generate_wordpress_content

Generate WordPress content using AI with customizable prompts and models

  • user_prompt (required): The user prompt

  • system_prompt (required): The system prompt

  • ai_model: The AI model (default: gpt-4.1-nano)

Generates SEO-optimized WordPress content including title and content (800-1500 words) with keyword targeting in the first 100 words.

generate_social_content

Generate social media content using AI with customizable prompts and models

  • user_prompt (required): The user prompt

  • system_prompt (required): The system prompt

  • ai_model: The AI model (default: gpt-4.1-nano)

Generates engaging social media content optimized for various platforms and audiences.

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)

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)

get_serp_html

Get SERP results with HTML content

  • Same parameters as get_serp_results

get_serp_text

Get SERP results with text content

  • Same parameters as get_serp_results

get_serp_ai_mode

Get SERP with AI Overview and AI Mode response

  • query (required): Search query

  • country: Country code (default: us)

Returns AI overview and AI mode response for the query. Less reliable than the 2-step process but returns results in under 30 seconds.

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

API Token

You need a FetchSERP API token to use this server.

Getting your API token:

  1. Sign up at https://www.fetchserp.com

  2. New users automatically receive 250 free credits to get started

  3. Your API token will be available in your dashboard

Set the token as an environment variable:

export FETCHSERP_API_TOKEN="your_token_here"

Error Handling

The server includes comprehensive error handling:

  • Missing API token validation

  • API response error handling

  • Input validation

  • Proper MCP error responses

Docker deploy

docker build --platform=linux/amd64 -t olivier86/fetchserp-mcp-server-node:latest --push .
docker build --platform=linux/amd64 -t ghcr.io/fetchserp/mcp-server-node:latest --push .

docker run -p 8000:8000 olivier86/fetchserp-mcp-server-node:latest

To start tunneling

nohup ngrok http 8000 --domain guinea-dominant-jolly.ngrok-free.app > /var/log/ngrok.log 2>&1 &

npm login npm publish --access public

Available Tools

23 tools
check_page_indexationC

Check if a domain is indexed for a given keyword

Inputs: domain (required), keyword (required).

generate_social_contentC

Generate social media content using AI with customizable prompts and models

Inputs: system_prompt (required), user_prompt (required), ai_model.

generate_wordpress_contentC

Generate WordPress content using AI with customizable prompts and models

Inputs: system_prompt (required), user_prompt (required), ai_model.

get_domain_emailsC

Retrieve emails from a given domain

Inputs: domain (required), country, pages_number, search_engine.

get_domain_infoC

Get domain info including DNS records, WHOIS data, SSL certificates, and technology stack

Inputs: domain (required).

get_domain_rankingC

Get domain ranking for a given keyword

Inputs: domain (required), keyword (required), country, pages_number, +1 more.

get_keywords_search_volumeC

Get search volume for given keywords

Inputs: keywords (required), country.

get_keywords_suggestionsB

Get keyword suggestions based on a url or a list of keywords

Inputs: country, keywords, url.

get_long_tail_keywordsC

Generate long-tail keywords for a given keyword

Inputs: keyword (required), count, search_intent.

get_moz_analysisC

Get Moz domain analysis data

Inputs: domain (required).

get_playwright_mcpC

Use GPT-4.1 to remote control a browser via a Playwright MCP server

Inputs: prompt (required).

get_serp_ai_modeA

Get SERP with AI Overview and AI Mode response. Returns AI overview and AI mode response for the query. Less reliable than the 2-step process but returns results in under 30 seconds.

Inputs: query (required), country.

get_serp_htmlC

Get search engine results with HTML content

Inputs: query (required), country, pages_number, search_engine.

get_serp_resultsC

Get search engine results

Inputs: query (required), country, pages_number, search_engine.

get_serp_textC

Get search engine results with text content

Inputs: query (required), country, pages_number, search_engine.

get_user_infoB

Get user information including API credit

Inputs: no named parameters.

get_webpage_ai_analysisC

Analyze a web page with AI

Inputs: prompt (required), url (required).

get_webpage_seo_analysisC

Get SEO analysis for a given url

Inputs: url (required).

scrape_domainD

Scrape a domain

Inputs: domain (required), max_pages.

scrape_webpageB

Scrape a web page without JS

Inputs: url (required).

scrape_webpage_jsC

Scrape a web page with custom JS

Inputs: js_script (required), url (required).

scrape_webpage_js_proxyC

Scrape a web page with JS and proxy

Inputs: country (required), js_script (required), url (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 23 tools

    Disambiguation3/5

    The tool set has clear distinctions in many areas, such as separate SERP retrieval methods (get_serp_results, get_serp_html, get_serp_text) and different scraping options (scrape_webpage, scrape_webpage_js, scrape_webpage_js_proxy). However, there is significant overlap between tools like get_serp_ai_mode and the other SERP tools, and between generate_social_content and generate_wordpress_content, which could cause confusion in selection despite descriptive names.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern with 'get_', 'check_', 'generate_', or 'scrape_' prefixes, making them predictable and readable. There are minor deviations, such as 'get_playwright_mcp' which includes an acronym and 'get_serp_ai_mode' that is more descriptive, but overall the naming is largely uniform and follows a clear convention.

    Tool Count3/5

    With 23 tools, the count is on the higher side for an SEO/SERP-focused server, bordering on heavy. While many tools serve distinct purposes, the overlap in SERP and scraping functionalities suggests some redundancy. This number is reasonable given the broad scope but could be streamlined for better coherence.

    Completeness4/5

    The tool set covers a wide range of SEO and web analysis tasks, including keyword research, domain analysis, content generation, and scraping. There are minor gaps, such as no explicit tools for updating or deleting data, but the surface is largely complete for the domain, allowing agents to perform comprehensive workflows without major dead ends.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI assistants to perform real-time web searches, retrieving up-to-date information from the internet via a Crawler API.
      1
      90 npm
      42
      ISC
    • A
      license
      C
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI assistants to search the web using Bocha AI's search API, supporting features like time filtering, domain inclusion/exclusion, and summarized results.
      1
      88 npm
      3
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Model Context Protocol server that enables AI assistants to perform keyword research, SEO analysis, and content planning through natural language queries against kwrds.ai's SEO tools.
      7
      Apache 2.0