Skip to main content
Glama
DataForSEO MCP Server

DataForSEO MCP Server

Official
by dataforseo

DataForSEO MCP Server

⚠️ Deprecated: This version of the DataForSEO MCP server is deprecated and will no longer be maintained.

It covers versions up to V2.x, available on npm, Docker, or remotely at https://mcp.dataforseo.com/mcp, and has been moved out of the main project into a separate repository.

New, actively supported version: dataforseo/mcp-server-typescript.

Model Context Protocol (MCP) server implementation for DataForSEO, enabling AI assistants to interact with selected DataForSEO APIs and obtain SEO data through a standardized interface.

Features

  • AI_OPTIMIZATION API: provides data for keyword discovery, conversational optimization, and real-time LLM benchmarking;

  • SERP API: real-time Search Engine Results Page (SERP) data for Google, Bing, and Yahoo;

  • KEYWORDS_DATA API: keyword research and clickstream data, including search volume, cost-per-click, and other metrics;

  • ONPAGE API: allows crawling websites and webpages according to customizable parameters to obtain on-page SEO performance metrics;

  • DATAFORSEO LABS API: data on keywords, SERPs, and domains based on DataForSEO's in-house databases and proprietary algorithms;

  • BACKLINKS API: comprehensive backlink analysis including referring domains, anchor text distribution, and link quality metrics;

  • BUSINESS DATA API: publicly available data on any business entity;

  • DOMAIN ANALYTICS API: data on website traffic, technologies, and Whois details;

  • CONTENT ANALYSIS API: robust source of data for brand monitoring, sentiment analysis, and citation management;

  • MERCHANT API: provides essential data and metrics for comprehensive competitor analysis, price monitoring, and market research across Google Shopping, Amazon etc.

Related MCP server: DataForSEO MCP Server

Prerequisites

  • Node.js (v14 or higher)

  • DataForSEO API credentials (API login and password)

Installation

  1. Clone the repository:

git clone https://github.com/dataforseo/mcp-server-typescript
cd mcp-server-typescript
  1. Install dependencies:

npm install
  1. Set up environment variables:

# Required
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password

# Optional: specify which modules to enable (comma-separated)
# If not set, all modules will be enabled
export ENABLED_MODULES="SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS,BACKLINKS,BUSINESS_DATA,DOMAIN_ANALYTICS"

# Optional: specify which prompts in enabled modules are enable too (prompts names, comma-separated)
# If not set, all prompts from enabled modules will be enabled
export ENABLED_PROMPTS="top_3_google_result_domains,top_5_serp_paid_and_organic"

# Optional: enable full API responses
# If not set or set to false, the server will filter and transform API responses to a more concise format
# If set to true, the server will return the full, unmodified API responses
export DATAFORSEO_FULL_RESPONSE="false"

# Optional: enable simple filter schema
# If set to true, a simplified version of the filters schema will be used.
# This is required for ChatGPT APIs or other LLMs that cannot handle nested structures.
export DATAFORSEO_SIMPLE_FILTER="false"

Installation as an NPM Package

You can install the package globally:

npm install -g dataforseo-mcp-server@latest

Or run it directly without installation:

npx dataforseo-mcp-server@latest

Remember to set environment variables before running the command:

# Required environment variables
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password

# Run with npx
npx dataforseo-mcp-server@latest

Building and Running

Build the project:

npm run build

Run the server:

# Start local server (direct MCP communication)
npx dataforseo-mcp-server@latest

# Start HTTP server
npx dataforseo-mcp-server@latest http

HTTP Server Configuration

The server runs on port 3000 by default and supports both Basic Authentication and environment variable-based authentication.

To start the HTTP server, run:

npm run http

Authentication Methods

  1. Basic Authentication

    • Send requests with Basic Auth header:

    Authorization: Basic <base64-encoded-credentials>
    • Credentials format: username:password

  2. Environment Variables

    • If no Basic Auth is provided, the server will use credentials from environment variables:

    export DATAFORSEO_USERNAME=your_username
    export DATAFORSEO_PASSWORD=your_password
    # Optional
    export DATAFORSEO_SIMPLE_FILTER="false"
    export DATAFORSEO_FULL_RESPONSE="true"

Cloudflare Worker Deployment

The DataForSEO MCP Server can be deployed as a Cloudflare Worker for serverless, edge-distributed access to DataForSEO APIs.

Worker Features

  • Edge Distribution: Deploy globally across Cloudflare's edge network

  • Serverless: No server management required

  • Auto-scaling: Handles traffic spikes automatically

  • MCP Protocol Support: Compatible with both Streamable HTTP and SSE transports

  • Environment Variables: Secure credential management through Cloudflare dashboard

Quick Start

  1. Install Wrangler CLI:

    npm install -g wrangler
  2. Configure Worker:

    # Login to Cloudflare
    wrangler login
    
    # Set environment variables
    wrangler secret put DATAFORSEO_USERNAME
    wrangler secret put DATAFORSEO_PASSWORD
  3. Deploy Worker:

    # Build and deploy
    npm run build
    wrangler deploy --main build/index-worker.js

Configuration

The worker uses the same environment variables as the standard server:

  • DATAFORSEO_USERNAME: Your DataForSEO username

  • DATAFORSEO_PASSWORD: Your DataForSEO password

  • ENABLED_MODULES: Comma-separated list of modules to enable

  • ENABLED_PROMPTS: Comma-separated list of prompt names to enable

  • DATAFORSEO_FULL_RESPONSE: Set to "true" for full API responses

Worker Endpoints

Once deployed, your worker will be available at https://your-worker.your-subdomain.workers.dev/ with the following endpoints:

  • POST /mcp: Streamable HTTP transport (recommended)

  • GET /sse: SSE connection establishment (deprecated)

  • POST /messages: SSE message handling (deprecated)

  • GET /health: Health check endpoint

  • GET /: API documentation page

Advanced Configuration

Edit wrangler.jsonc to customize your deployment:

{
  "name": "dataforseo-mcp-worker",
  "main": "build/index-worker.js",
  "compatibility_date": "2025-07-10",
  "compatibility_flags": ["nodejs_compat"],
  "vars": {
    "ENABLED_MODULES": "SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS",
    "ENABLED_PROMPTS":"top_3_google_result_domains,top_5_serp_paid_and_organic"
  }
}

Usage with Claude

After deployment, configure Claude to use your worker:

{
  "name": "DataForSEO",
  "description": "Access DataForSEO APIs via Cloudflare Worker",
  "transport": {
    "type": "http",
    "baseUrl": "https://your-worker.your-subdomain.workers.dev/mcp"
  }
}

Available Modules

The following modules are available to be enabled/disabled:

  • AI_OPTIMIZATION: provides data for keyword discovery, conversational optimization, and real-time LLM benchmarking;

  • SERP: real-time SERP data for Google, Bing, and Yahoo;

  • KEYWORDS_DATA: keyword research and clickstream data;

  • ONPAGE: crawl websites and webpages to obtain on-page SEO performance metrics;

  • DATAFORSEO_LABS: data on keywords, SERPs, and domains based on DataForSEO's databases and algorithms;

  • BACKLINKS: data on inbound links, referring domains and referring pages for any domain, subdomain, or webpage;

  • BUSINESS_DATA: based on business reviews and business information publicly shared on the following platforms: Google, Trustpilot, Tripadvisor;

  • DOMAIN_ANALYTICS: helps identify all possible technologies used for building websites and offers Whois data;

  • CONTENT_ANALYSIS: help you discover citations of the target keyword or brand and analyze the sentiments around it;

  • MERCHANT: helps retrieve product data, prices, and seller information from Google Shopping and Amazon etc.;

Adding New Tools/Modules

Module Structure

Each module corresponds to a specific DataForSEO API:

Implementation Options

You can either:

  1. Add a new tool to an existing module

  2. Create a completely new module

Adding a New Tool

Here's how to add a new tool to any new or pre-existing module:

// src/code/modules/your-module/tools/your-tool.tool.ts
import { BaseTool } from '../../base.tool';
import { DataForSEOClient } from '../../../client/dataforseo.client';
import { z } from 'zod';

export class YourTool extends BaseTool {
  constructor(private client: DataForSEOClient) {
    super(client);
    // DataForSEO API returns extensive data with many fields, which can be overwhelming
    // for AI agents to process. We select only the most relevant fields to ensure
    // efficient and focused responses.
    this.fields = [
      'title',           // Example: Include the title field
      'description',     // Example: Include the description field
      'url',            // Example: Include the URL field
      // Add more fields as needed
    ];
  }

  getName() {
    return 'your-tool-name';
  }

  getDescription() {
    return 'Description of what your tool does';
  }

  getParams(): z.ZodRawShape {
    return {
      // Required parameters
      keyword: z.string().describe('The keyword to search for'),
      location: z.string().describe('Location in format "City,Region,Country" or just "Country"'),
      
      // Optional parameters
      fields: z.array(z.string()).optional().describe('Specific fields to return in the response. If not specified, all fields will be returned'),
      language: z.string().optional().describe('Language code (e.g., "en")'),
    };
  }

  async handle(params: any) {
    try {
      // Make the API call
      const response = await this.client.makeRequest({
        endpoint: '/v3/dataforseo_endpoint_path',
        method: 'POST',
        body: [{
          // Your request parameters
          keyword: params.keyword,
          location: params.location,
          language: params.language,
        }],
      });

      // Validate the response for errors
      this.validateResponse(response);

      //if the main data array is specified in tasks[0].result[:] field
      const result = this.handleDirectResult(response);
      //if main data array specified in tasks[0].result[0].items field
      const result = this.handleItemsResult(response);
      // Format and return the response
      return this.formatResponse(result);
    } catch (error) {
      // Handle and format any errors
      return this.formatErrorResponse(error);
    }
  }
}

Creating a New Module

  1. Create a new directory under src/core/modules/ for your module:

mkdir -p src/core/modules/your-module-name
  1. Create module files:

// src/core/modules/your-module-name/your-module-name.module.ts
import { BaseModule } from '../base.module';
import { DataForSEOClient } from '../../client/dataforseo.client';
import { YourTool } from './tools/your-tool.tool';

export class YourModuleNameModule extends BaseModule {
  constructor(private client: DataForSEOClient) {
    super();
  }

  getTools() {
    return {
      'your-tool-name': new YourTool(this.client),
    };
  }
}
  1. Register your module in src/core/config/modules.config.ts:

export const AVAILABLE_MODULES = [
  'SERP',
  'KEYWORDS_DATA',
  'ONPAGE',
  'DATAFORSEO_LABS',
  'BACKLINKS',
  'BUSINESS_DATA',
  'DOMAIN_ANALYTICS',
  'CONTENT_ANALYSIS',
  'YOUR_MODULE_NAME'  // Add your module name here
] as const;
  1. Initialize your module in src/main/index.ts:

if (isModuleEnabled('YOUR_MODULE_NAME', enabledModules)) {
  modules.push(new YourModuleNameModule(dataForSEOClient));
}

Field Configuration

The MCP server supports field filtering to customize which data fields are returned in API responses. This helps reduce response size and focus on the most relevant data for your use case.

Configuration File Format

Create a JSON configuration file with the following structure:

{
  "supported_fields": {
    "tool_name": ["field1", "field2", "field3"],
    "another_tool": ["field1", "field2"]
  }
}

Using Field Configuration

Pass the configuration file using the --configuration parameter:

# With npm
npm run cli -- http --configuration field-config.json

# With npx
npx dataforseo-mcp-server@latest http --configuration field-config.json

# Local mode
npx dataforseo-mcp-server@latest local --configuration field-config.json

Configuration Behavior

  • If a tool is configured: Only the specified fields will be returned in the response

  • If a tool is not configured: All available fields will be returned (default behavior)

  • If no configuration file is provided: All tools return all available fields

Example Configuration File

The repository includes an example configuration file field-config.example.json with optimized field selections for common tools:

{
  "supported_fields": {
    "backlinks_backlinks": [
      "id",
      "items.anchor",
      "items.backlink_spam_score",
      "items.dofollow",
      "items.domain_from",
      "items.domain_from_country",
      "items.domain_from_ip",
      "items.domain_from_platform_type",
      "items.domain_from_rank",
      "items.domain_to",
      "items.first_seen",
      "items.is_broken",
      "items.is_new",
      "items.item_type",
      "items.last_seen",
      "items.links_count",
      "items.original",
      "items.page_from_encoding",
      "items.page_from_external_links",
      "items.page_from_internal_links",
      "items.page_from_language",
      "items.page_from_rank",
      "items.page_from_size",
      "items.page_from_status_code",
      "items.page_from_title",
      "items.prev_seen",
      "items.rank",
      "items.ranked_keywords_info.page_from_keywords_count_top_10",
      "items.ranked_keywords_info.page_from_keywords_count_top_100",
      "items.ranked_keywords_info.page_from_keywords_count_top_3",
      "items.semantic_location",
      "items.text_post",
      "items.text_pre",
      "items.tld_from",
      "items.type",
      "items.url_from",
      "items.url_from_https",
      "items.url_to",
      "items.url_to_https",
      "items.url_to_spam_score",
      "items.url_to_status_code",
      "status_code",
      "status_message"
    ],
    ...
  }
}

Nested Field Support

The configuration supports nested field paths using dot notation:

  • "rating.value" - Access the value field within the rating object

  • "items.demography.age.keyword" - Access deeply nested fields

  • "meta.description" - Access nested object properties

Field Discovery

To discover available fields for any tool:

  1. Run the tool without field configuration to see the full response

  2. Identify the fields you need from the API response

  3. Add those field paths to your configuration file

Creating Your Own Configuration

  1. Copy the example file:

cp field-config.example.json my-config.json
  1. Modify the field selections based on your needs

  2. Use your custom configuration:

npx dataforseo-mcp-server@latest http --configuration my-config.json

What endpoints/APIs do you want us to support next?

We're always looking to expand the capabilities of this MCP server. If you have specific DataForSEO endpoints or APIs you'd like to see supported, please:

  1. Check the DataForSEO API Documentation to see what's available

  2. Open an issue in our GitHub repository with:

    • The API/endpoint you'd like to see supported;

    • A brief description of your use case;

    • Describe any specific features you'd like to see implemented.

Your feedback helps us prioritize which APIs to support next!

Resources

Available Tools

89 tools
ai_optimization_chat_gpt_scraperAI Optimization Chat GPT ScraperC
Read-onlyIdempotent

This endpoint provides results from ChatGPT searches

Inputs: keyword (required), language_code (required), location_name, force_web_search.

ai_optimization_chat_gpt_scraper_locationsAI Optimization Chat GPT Scraper LocationsA
Read-onlyIdempotent

Utility tool for ai_optimization_chat_gpt_scraper to get list of available locations

Inputs: location_name, country_iso_code.

ai_optimization_keyword_data_search_volumeAI Optimization Keyword Data Search VolumeA
Read-onlyIdempotent

This endpoint provides search volume data for your target keywords, reflecting their estimated usage in AI LLMs

Inputs: keywords (required), language_code (required), location_name.

ai_optimization_llm_mentions_filtersAI Optimization LLM Mentions FiltersA
Read-onlyIdempotent

This endpoint provides all the necessary information about filters that can be used with AI Optimization LLM Mentions API endpoints

Inputs: no named parameters.

ai_optimization_llm_modelsAI Optimization LLM ModelsB
Read-onlyIdempotent

Utility tool for ai_optimization_llm_response to get list of availible locations and languages

Inputs: llm_type (required).

ai_optimization_llm_responseAI Optimization LLM ResponseC
Read-onlyIdempotent

This endpoint allows you to retrieve structured responses from a specific AI model, based on the input parameters

Inputs: llm_type (required), model_name (required), user_prompt (required), top_p, +2 more.

ai_opt_kw_data_loc_and_langAI Optimization Keywords Data Locations and LanguagesB
Read-onlyIdempotent

Utility tool for 'AI Optimization Keyword Data Locations and Languages' (ai_opt_kw_data_loc_and_lang) to get list of availible locations and languages

Inputs: no named parameters.

ai_opt_llm_ment_agg_metricsAI Optimization LLM Mentions Aggregated MetricsB
Read-onlyIdempotent

This endpoint provides aggregated metrics for mentions of the keywords or domains specified in the target array of the request.

Inputs: target (required), filters, platform, language_code, +2 more.

ai_opt_llm_ment_cross_agg_metricsAI Optimization LLM Mentions Cross Aggregated MetricsB
Read-onlyIdempotent

This endpoint provides aggregated metrics grouped by custom keys for mentions of the keywords or domains specified in the target array of the request

Inputs: targets (required), filters, platform, language_code, +2 more.

ai_opt_llm_ment_loc_and_langAI Optimization LLM Mentions Locations and LanguagesB
Read-onlyIdempotent

Utility tool for 'AI Optimization LLM Mentions Locations and Languages' (ai_opt_llm_ment_loc_and_lang) to get list of available locations and languages

Inputs: no named parameters.

ai_opt_llm_ment_top_domainsAI Optimization LLM Mentions Top DomainsB
Read-onlyIdempotent

This endpoint provides aggregated LLM mentions metrics grouped by the most frequently mentioned domains for the specified target

Inputs: target (required), platform, links_scope, language_code, +4 more.

ai_opt_llm_ment_top_pagesAI Optimization LLM Mentions Top PagesA
Read-onlyIdempotent

This endpoint provides aggregated LLM mentions metrics grouped by the most frequently mentioned pages for the specified target

Inputs: target (required), platform, links_scope, language_code, +4 more.

content_analysis_summaryContent Analysis SummaryC
Read-onlyIdempotent

This endpoint will provide you with an overview of citation data available for the target keyword

Inputs: keyword (required), page_type, keyword_fields, internal_list_limit, +3 more.

dataforseo_labs_amazon_bulk_search_volumeDataForSEO Labs Amazon Bulk Search VolumeA
Read-onlyIdempotent

This endpoint will provide you with search volume values for a maximum of 1,000 keywords in one API request. Search volume represents the approximate number of monthly searches for a keyword on Amazon.

Inputs: keywords (required), language_code, location_name.

dataforseo_labs_amazon_product_competitorsDataForSEO Labs Amazon Product CompetitorsA
Read-onlyIdempotent

This endpoint will provide you with a list of products that intersect with a target asin in Amazon SERPs. The data can help you identify product competitors for any listing published on Amazon.

Inputs: asin (required), limit, offset, filters, +3 more.

dataforseo_labs_amazon_product_kw_intersectionsDataForSEO Labs Amazon Product Keyword IntersectionsB
Read-onlyIdempotent

This endpoint will provide you with a list of keywords for which the target products intersect in Amazon SERP. The returned results are specific to the asins specified in a POST request.

Inputs: asins (required), limit, offset, filters, +4 more.

dataforseo_labs_amazon_product_rank_overviewDataForSEO Labs Amazon Product Rank OverviewB
Read-onlyIdempotent

This endpoint will provide you with ranking data from organic and paid Amazon SERPs for the target products. The returned results are specific to the asins specified in a POST request.

Inputs: asins (required), language_code, location_name.

dataforseo_labs_amazon_ranked_keywordsDataForSEO Labs Amazon Ranked KeywordsA
Read-onlyIdempotent

This endpoint will provide you with a list of keywords the target product ranks for on Amazon. The returned results are specific to the asin specified in a POST request.

Inputs: asin (required), limit, offset, filters, +3 more.

dataforseo_labs_available_filtersDataForSEO Labs Available FiltersB
Read-onlyIdempotent

Here you will find all the necessary information about filters that can be used with DataForSEO Labs API endpoints.

Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.

Inputs: tool.

dataforseo_labs_bulk_keyword_difficultyDataForSEO Labs Bulk Keyword DifficultyA
Read-onlyIdempotent

This endpoint will provide you with the Keyword Difficulty metric for a maximum of 1,000 keywords in one API request. Keyword Difficulty stands for the relative difficulty of ranking in the first top-10 organic results for the related keyword. Keyword Difficulty in DataForSEO API responses indicates the chance of getting in top-10 organic results for a keyword on a logarithmic scale from 0 to 100.

Inputs: keywords (required), language_code, location_name.

dataforseo_labs_bulk_traffic_estimationDataForSEO Labs Bulk Traffic EstimationA
Read-onlyIdempotent

This endpoint will provide you with estimated monthly traffic volumes for up to 1,000 domains, subdomains, or webpages. Along with organic search traffic estimations, you will also get separate values for paid search, featured snippet, and local pack results.

Inputs: targets (required), item_types, language_code, location_name, +1 more.

dataforseo_labs_google_competitors_domainDataForSEO Labs Google Competitors DomainA
Read-onlyIdempotent

This endpoint will provide you with a full overview of ranking and traffic data of the competitor domains from organic and paid search. In addition to that, you will get the metrics specific to the keywords both competitor domains and your domain rank for within the same SERP.

Inputs: target (required), limit, offset, filters, +7 more.

dataforseo_labs_google_domain_intersectionDataForSEO Labs Google Domain IntersectionA
Read-onlyIdempotent

This endpoint will provide you with the keywords for which both specified domains rank within the same SERP. You will get search volume, competition, cost-per-click and impressions data on each intersecting keyword. Along with that, you will get data on the first and second domain's SERP element discovered for this keyword, as well as the estimated traffic volume and cost of ad traffic.

Inputs: target1 (required), target2 (required), limit, offset, +8 more.

dataforseo_labs_google_domain_rank_overviewDataForSEO Labs Google Domain Rank OverviewA
Read-onlyIdempotent

This endpoint will provide you with ranking and traffic data from organic and paid search for the specified domain. You will be able to review the domain ranking distribution in SERPs as well as estimated monthly traffic volume for both organic and paid results.

Inputs: target (required), language_code, location_name, ignore_synonyms.

dataforseo_labs_google_historical_keyword_dataDataForSEO Labs Google Historical Keyword DataA
Read-onlyIdempotent

This endpoint provides Google historical keyword data for specified keywords, including search volume, cost-per-click, competition values for paid search, monthly searches, and search volume trends. You can get historical keyword data since August, 2021, depending on keywords along with location and language combination

Inputs: keywords (required), language_code, location_name.

dataforseo_labs_google_historical_rank_overviewDataForSEO Labs Google Historical Rank OverviewB
Read-onlyIdempotent

This endpoint will provide you with historical data on rankings and traffic of the specified domain, such as domain ranking distribution in SERPs and estimated monthly traffic volume for both organic and paid results

Inputs: target (required), language_code, location_name, ignore_synonyms, +1 more.

dataforseo_labs_google_historical_serpsDataForSEO Labs Google Historical SERPsB
Read-onlyIdempotent

This endpoint will provide you with Google SERPs collected within the specified time frame. You will also receive a complete overview of featured snippets and other extra elements that were present within the specified dates. The data will allow you to analyze the dynamics of keyword rankings over time for the specified keyword and location.

Inputs: keyword (required), date_to, date_from, language_code, +1 more.

dataforseo_labs_google_keyword_ideasDataForSEO Labs Google Keyword IdeasB
Read-onlyIdempotent

The Keyword Ideas provides search terms that are relevant to the product or service categories of the specified keywords. The algorithm selects the keywords which fall into the same categories as the seed keywords specified in a POST array. As a result, you will get a list of relevant keyword ideas for up to 200 seed keywords. Along with each keyword idea, you will get its search volume rate for the last month, search volume trend for the previous 12 months, as well as current cost-per-click and competition values. Moreover, this endpoint supplies minimum, maximum and average values of daily impressions, clicks and CPC for each result.

Inputs: keywords (required), limit, offset, filters, +4 more.

dataforseo_labs_google_keyword_overviewDataForSEO Labs Google Keyword OverviewB
Read-onlyIdempotent

This endpoint provides Google keyword data for specified keywords. For each keyword, you will receive current cost-per-click, competition values for paid search, search volume, search intent, monthly searches

Inputs: keywords (required), language_code, location_name, include_clickstream_data.

dataforseo_labs_google_keywords_for_siteDataForSEO Labs Google Keywords For SiteB
Read-onlyIdempotent

The Keywords For Site endpoint will provide you with a list of keywords relevant to the target domain. Each keyword is supplied with relevant, search volume data for the last month, cost-per-click, competition

Inputs: target (required), limit, offset, filters, +5 more.

dataforseo_labs_google_keyword_suggestionsDataForSEO Labs Google Keyword SuggestionsA
Read-onlyIdempotent

The Keyword Suggestions provides search queries that include the specified seed keyword.

The algorithm is based on the full-text search for the specified keyword and therefore returns only those search terms that contain the keyword you set in the POST array with additional words before, after, or within the specified key phrase. Returned keyword suggestions can contain the words from the specified key phrase in a sequence different from the one you specify.

As a result, you will get a list of long-tail keywords with each keyword in the list matching the specified search term.

Along with each suggested keyword, you will get its search volume rate for the last month, search volume trend for the previous 12 months, as well as current cost-per-click and competition values. Moreover, this endpoint supplies minimum, maximum and average values of daily impressions, clicks and CPC for each result.

Inputs: keyword (required), limit, offset, filters, +4 more.

dataforseo_labs_google_page_intersectionDataForSEO Labs Google Page IntersectionA
Read-onlyIdempotent

This endpoint will provide you with the keywords for which specified pages rank within the same SERP. You will get search volume, competition, cost-per-click and impressions data on each intersecting keyword. Along with that, you will get data on SERP elements that specified pages rank for in search results, as well as the estimated traffic volume and cost of ad traffic. Page Intersection endpoint supports organic, paid, local pack and featured snippet results.

Find keywords several webpages rank for: If you would like to get the keywords several pages rank for, you need to specify webpages only in the pages object. This way, you will receive intersected ranked keywords for the specified URLs.

Find keywords your competitors rank for but you do not: If you would like to receive all keywords several pages rank for, but particular pages do not, you need to use the exclude_pages array as well. This way you will receive the keywords for which the URLs from the pages object rank for, but the URLs from the exclude_pages array do not

Inputs: pages (required), limit, offset, filters, +8 more.

dataforseo_labs_google_ranked_keywordsDataForSEO Labs Google Ranked KeywordsA
Read-onlyIdempotent

This endpoint will provide you with the list of keywords that any domain or webpage is ranking for. You will also get SERP elements related to the keyword position, as well as impressions, monthly searches and other data relevant to the returned keywords.

Inputs: target (required), limit, offset, filters, +6 more.

dataforseo_labs_google_relevant_pagesDataForSEO Labs Google Relevant PagesA
Read-onlyIdempotent

This endpoint will provide you with rankings and traffic data for the web pages of the specified domain. You will be able to review each page’s ranking distribution and estimated monthly traffic volume from both organic and paid searches.

Inputs: target (required), limit, offset, filters, +7 more.

dataforseo_labs_google_serp_competitorsDataForSEO Labs Google SERP CompetitorsA
Read-onlyIdempotent

This endpoint will provide you with a list of domains ranking for the keywords you specify. You will also get SERP rankings, rating, estimated traffic volume, and visibility values the provided domains gain from the specified keywords.

Inputs: keywords (required), limit, offset, filters, +5 more.

dataforseo_labs_google_subdomainsDataForSEO Labs Google SubdomainsA
Read-onlyIdempotent

This endpoint will provide you with a list of subdomains of the specified domain, along with the ranking distribution across organic and paid search. In addition to that, you will also get the estimated traffic volume of subdomains based on search volume.

Inputs: target (required), limit, offset, filters, +6 more.

dataforseo_labs_google_top_searchesDataForSEO Labs Google Top SearchesB
Read-onlyIdempotent

The Top Searches endpoint of DataForSEO Labs API can provide you with over 7 billion keywords from the DataForSEO Keyword Database. Each keyword in the API response is provided with a set of relevant keyword data with Google Ads metrics

Inputs: limit, offset, filters, order_by, +3 more.

dataforseo_labs_search_intentDataForSEO Labs Search IntentA
Read-onlyIdempotent

This endpoint will provide you with search intent data for up to 1,000 keywords. For each keyword that you specify when setting a task, the API will return the keyword's search intent and intent probability. Besides the highest probable search intent, the results will also provide you with other likely search intent(s) and their probability. Based on keyword data and search results data, our system has been trained to detect four types of search intent: informational, navigational, commercial, transactional.

Inputs: keywords (required), language_code.

domain_analytics_technologies_available_filtersDomain Analytics Technologies Available FiltersB
Read-onlyIdempotent

Here you will find all the necessary information about filters that can be used with DataForSEO Technologies API endpoints.

Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.

Inputs: tool.

domain_analytics_technologies_domain_technologiesDomain Analytics Technologies Domain TechnologiesB
Read-onlyIdempotent

Using this endpoint you will get a list of technologies used in a particular domain

Inputs: target (required).

domain_analytics_whois_available_filtersDomain Analytics WHOIS Available FiltersC
Read-onlyIdempotent

Here you will find all the necessary information about filters that can be used with DataForSEO WHOIS API endpoints.

Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.

Inputs: tool.

domain_analytics_whois_overviewDomain Analytics WHOIS OverviewB
Read-onlyIdempotent

This endpoint will provide you with Whois data enriched with backlink stats, and ranking and traffic info from organic and paid search results. Using this endpoint you will be able to get all these data for the domains matching the parameters you specify in the request

Inputs: limit, offset, filters, order_by, +1 more.

kw_data_google_ads_locationsKeywords Data Google Ads LocationsB
Read-onlyIdempotent

Utility tool for kw_data_google_ads_search_volume to get list of availible locations.

Inputs: country_iso_code (required), location_name, location_type.

kw_data_google_ads_search_volumeKeywords Data Google Ads Search VolumeB
Read-onlyIdempotent

Get search volume data for keywords from Google Ads

Inputs: keywords (required), language_code, location_name.

merchant_amazon_asin_live_advancedMerchant Amazon ASIN Live AdvancedA
Read-onlyIdempotent

Get detailed product information from Amazon by ASIN (Amazon Standard Identification Number). Returns product title, price, description, images, reviews summary, seller info, shipping options, and other product attributes for the specified ASIN.

Inputs: asin (required), language_code, location_name.

merchant_amazon_locationsMerchant Amazon LocationsA
Read-onlyIdempotent

Utility tool for Amazon merchant tools (merchant_amazon_asin_live_advanced, merchant_amazon_sellers_live_advanced, merchant_amazon_products_live_advanced) to get the list of available locations with their location_code and location_name values. You can optionally filter the list by country ISO code.

Inputs: limit, offset, country, location_name_contains.

merchant_amazon_products_live_advancedMerchant Amazon Products Live AdvancedA
Read-onlyIdempotent

Search Amazon products by keyword and get the list of matching items. Returns product titles, ASINs, prices, ratings, images, sponsored placements, and other SERP-like results for the specified keyword on Amazon.

Inputs: keyword (required), sort_by, price_max, price_min, +3 more.

merchant_amazon_sellers_live_advancedMerchant Amazon Sellers Live AdvancedA
Read-onlyIdempotent

Get the list of sellers offering a specific Amazon product (by ASIN). Returns seller names, ratings, prices, shipping conditions, and product offers available from each merchant for the requested ASIN.

Inputs: asin (required), language_code, location_name.

on_page_content_parsingOn Page Content ParsingA
Read-onlyIdempotent

This endpoint allows parsing the content on any page you specify and will return the structured content of the target page, including link URLs, anchors, headings, and textual content.

Inputs: url (required), accept_language, custom_user_agent, enable_javascript.

on_page_instant_pagesOn Page Instant PagesB
Read-onlyIdempotent

Using this function you will get page-specific data with detailed information on how well a particular page is optimized for organic search

Inputs: url (required), custom_js, accept_language, custom_user_agent, +1 more.

on_page_lighthouseOn Page LighthouseC
Read-onlyIdempotent

The OnPage Lighthouse API is based on Google’s open-source Lighthouse project for measuring the quality of web pages and web apps.

Inputs: url (required), full_data, accept_language, custom_user_agent, +1 more.

serp_locationsSERP LocationsC
Read-onlyIdempotent

Utility tool for serp_organic_live_advanced to get list of availible locations.

Inputs: country_iso_code (required), location_name, location_type, search_engine.

serp_organic_live_advancedSERP Organic Live AdvancedB
Read-onlyIdempotent

Get organic search results for a keyword in specified search engine

Inputs: keyword (required), language_code (required), depth, device, +4 more.

serp_youtube_locationsSERP YouTube LocationsA
Read-onlyIdempotent

Utility tool to get list of available locations for: serp_youtube_organic_live_advanced, serp_youtube_video_info_live_advanced, serp_youtube_video_comments_live_advanced, serp_youtube_video_subtitles_live_advanced.

Inputs: country_iso_code (required), location_name, location_type.

serp_youtube_organic_live_advancedSERP YouTube Organic Live AdvancedB
Read-onlyIdempotent

provides top 20 blocks of youtube search engine results for a keyword

Inputs: keyword (required), language_code (required), location_name (required), os, +2 more.

serp_youtube_video_comments_live_advancedSERP YouTube Video Comments Live AdvancedC
Read-onlyIdempotent

provides data on the video comments you specify

Inputs: video_id (required), language_code (required), location_name (required), os, +2 more.

serp_youtube_video_info_live_advancedSERP YouTube Video Info Live AdvancedC
Read-onlyIdempotent

provides data on the video you specify

Inputs: video_id (required), language_code (required), location_name (required), os, +1 more.

serp_youtube_video_subtitles_live_advancedSERP YouTube Video Subtitles Live AdvancedC
Read-onlyIdempotent

provides data on the video subtitles you specify

Inputs: video_id (required), language_code (required), location_name (required), os, +3 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 89 tools

    Disambiguation4/5

    Most tools have distinct purposes with detailed descriptions. However, some close pairs exist (e.g., keyword suggestions vs. ideas; backlinks_referring_domains vs bulk variant), but descriptions help agents differentiate.

    Naming Consistency3/5

    Within each category (e.g., backlinks_, dataforseo_labs_google_) naming is fairly consistent, but across categories there is mixing of prefixes (kw_data vs dataforseo_labs) and inconsistent abbreviations (opt vs optimization), reducing overall predictability.

    Tool Count2/5

    89 tools is very high for an SEO API. While each tool serves a specific need, many could be consolidated into parameterized endpoints (e.g., bulk vs single). The volume may overwhelm agents and increase selection difficulty.

    Completeness4/5

    The toolset covers a broad range of SEO data: keyword research, backlinks, SERP (multiple engines), business listings, on-page analysis, domain intelligence, content analysis, and Amazon merchant data. Few obvious gaps exist for the stated domain.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A stdio-based server that enables interaction with the DataForSEO API through the Model Context Protocol, allowing users to fetch SEO data including search results, keywords data, backlinks, on-page analysis, and more.
      23 npm
      7
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      A Model Context Protocol server that enables Claude to interact with DataForSEO APIs, allowing access to SEO data including SERPs, keyword research, on-page metrics, and domain analytics.
      17
      10,352 npm
      261
      Apache 2.0
    • -
      license
      C
      quality
      Not graded
      maintenance
      A Model Context Protocol server that provides AI assistants with access to FetchSERP API capabilities for SEO analysis, SERP data, web scraping, and keyword research.
      23
      19 npm
      19
      -
    • A
      license
      B
      quality
      A
      maintenance
      Model Context Protocol (MCP) server that provides AI agents with access to Google Search Console data.
      25
      1,377 npm
      322
      MIT