Skip to main content
Glama
DataForSEO MCP Server

DataForSEO MCP Server

DataForSEO MCP Server

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

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

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: 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"

Installation as an NPM Package

You can install the package globally:

npm install -g dataforseo-mcp-server

Or run it directly without installation:

npx dataforseo-mcp-server

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

Building and Running

Build the project:

npm run build

Run the server:

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

# Start HTTP server
npx dataforseo-mcp-server 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

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

  • 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"
  }
}

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:

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

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 http --configuration field-config.json

# Local mode
npx dataforseo-mcp-server 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 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

76 tools
ai_optimization_keyword_data_locations_and_languagesB

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

Inputs: no named parameters.

ai_optimization_keyword_data_search_volumeC

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_aggregated_metricsC

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

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

ai_optimization_llm_mentions_cross_aggregated_metricsC

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), location_name, language_code, platform, +2 more.

ai_optimization_llm_mentions_filtersC

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_mentions_locations_and_languagesB

Utility tool for ai_llm_mentions to get list of available locations and languages

Inputs: no named parameters.

ai_optimization_llm_mentions_top_domainsC

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

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

ai_optimization_llm_mentions_top_pagesC

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

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

ai_optimization_llm_modelsC

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

Inputs: llm_type (required).

ai_optimization_llm_responseC

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

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

content_analysis_summaryC

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

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

dataforseo_labs_available_filtersC

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_difficultyC

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), location_name, language_code.

dataforseo_labs_bulk_traffic_estimationC

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), location_name, language_code, ignore_synonyms, +1 more.

dataforseo_labs_google_competitors_domainC

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), location_name, language_code, ignore_synonyms, +7 more.

dataforseo_labs_google_domain_intersectionB

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), location_name, language_code, +8 more.

dataforseo_labs_google_domain_rank_overviewC

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), location_name, language_code, ignore_synonyms.

dataforseo_labs_google_historical_keyword_dataB

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), location_name, language_code.

dataforseo_labs_google_historical_rank_overviewC

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), location_name, language_code, ignore_synonyms, +1 more.

dataforseo_labs_google_historical_serpC

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), location_name, language_code.

dataforseo_labs_google_keyword_ideasC

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), location_name, language_code, limit, +4 more.

dataforseo_labs_google_keyword_overviewC

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), location_name, language_code, include_clickstream_data.

dataforseo_labs_google_keywords_for_siteC

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), location_name, language_code, limit, +5 more.

dataforseo_labs_google_keyword_suggestionsB

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), location_name, language_code, limit, +4 more.

dataforseo_labs_google_page_intersectionA

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), exclude_pages, intersection_mode, location_name, +8 more.

dataforseo_labs_google_ranked_keywordsB

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), location_name, language_code, limit, +6 more.

dataforseo_labs_google_relevant_pagesC

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), location_name, language_code, ignore_synonyms, +7 more.

dataforseo_labs_google_serp_competitorsC

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), location_name, language_code, limit, +5 more.

dataforseo_labs_google_subdomainsC

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), location_name, language_code, ignore_synonyms, +6 more.

dataforseo_labs_google_top_searchesC

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: location_name, language_code, limit, offset, +3 more.

dataforseo_labs_search_intentB

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_filtersC

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_technologiesC

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

Inputs: target (required).

domain_analytics_whois_available_filtersC

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_overviewC

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.

keywords_data_google_ads_search_volumeC

Get search volume data for keywords from Google Ads

Inputs: keywords (required), location_name, language_code.

on_page_content_parsingC

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), enable_javascript, custom_js, custom_user_agent, +1 more.

on_page_instant_pagesC

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), enable_javascript, custom_js, custom_user_agent, +1 more.

on_page_lighthouseD

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), enable_javascript, custom_js, custom_user_agent, +1 more.

serp_locationsC

Utility tool for serp_organic_live_advanced to get list of availible locations.

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

serp_organic_live_advancedC

Get organic search results for a keyword in specified search engine

Inputs: language_code (required), keyword (required), search_engine, location_name, +4 more.

serp_youtube_locationsA

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_type, location_name.

serp_youtube_organic_live_advancedC

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

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

serp_youtube_video_comments_live_advancedD

provides data on the video comments you specify

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

serp_youtube_video_info_live_advancedD

provides data on the video you specify

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

serp_youtube_video_subtitles_live_advancedD

provides data on the video subtitles you specify

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

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 76 tools

    Disambiguation2/5

    The tool set suffers from significant ambiguity, with many tools having overlapping purposes that could confuse an agent. For example, multiple backlinks tools (e.g., backlinks_backlinks, backlinks_summary, backlinks_bulk_pages_summary) provide similar backlink overviews, and there are several 'available_filters' tools across different categories that serve identical utility functions. While descriptions help differentiate some, the sheer number and redundancy make misselection likely.

    Naming Consistency5/5

    Tool names follow a highly consistent snake_case pattern with a clear hierarchical structure, typically using category prefixes (e.g., ai_optimization_, backlinks_, dataforseo_labs_). This predictability makes it easy for agents to understand the domain and purpose of each tool, with only minor deviations like 'dataforseo_labs_' vs. 'keywords_data_' but overall maintaining a uniform naming convention.

    Tool Count2/5

    With 76 tools, the count is excessively high for an MCP server, making it overwhelming and difficult for agents to navigate effectively. While the server covers a broad SEO/data analytics domain, the tool surface could be consolidated (e.g., merging similar backlinks or filters tools) to reduce complexity without losing functionality, as many tools appear redundant or overly granular.

    Completeness4/5

    The tool set provides extensive coverage for SEO and data analytics, including AI optimization, backlinks, keyword research, SERP analysis, and domain analytics. There are few obvious gaps for core workflows, though some edge cases like real-time monitoring or advanced reporting might be missing. The completeness is high but slightly diminished by the redundancy rather than missing essential operations.

    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
      D
      quality
      D
      maintenance
      Enables LLMs to interact with DataForSEO and other SEO APIs through natural language, allowing for keyword research, SERP analysis, backlink analysis, and local SEO tasks.
      100
      10,352 npm
      83
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Provides AI assistants with access to Semrush SEO API functionality including domain analytics, keyword research, backlink analysis, and competitor insights.
      7
      16
      MIT