DataForSEO MCP Server

by dataforseo

224 372 downloads Not rated yet Apache-2.0

About

DataForSEO MCP Server is a Model Context Protocol implementation that enables AI assistants to interact with selected DataForSEO APIs and retrieve SEO data through a standardized interface. It provides tools for keyword research, SERP analysis, backlink audits, on‑page…

Details

License
Apache-2.0

Explore

- 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.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name DataForSEO MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- Node.js (v14 or higher)
- DataForSEO API credentials (API login and password)

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:


export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password

Build the project:

bash
npm run build

Run the server:
bash

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

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

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

wrangler secret put DATAFORSEO_USERNAME
wrangler secret put DATAFORSEO_PASSWORD

3. Deploy Worker:


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

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

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

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.

Create a JSON configuration file with the following structure:

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

Pass the configuration file using the --configuration parameter:


- 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

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

json
{
"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"
],
...
}
}

1. Copy the example file:
bash
cp field-config.example.json my-config.json

2. Modify the field selections based on your needs

3. Use your custom configuration:

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

docs_index

Fetch the DataForSEO API documentation index (llms.txt), optionally filtered by section

docs_list_sections

Return available DataForSEO API documentation section names

docs_search

Fetch DataForSEO API documentation from a documentation URL

api_request

Make an authenticated request to the DataForSEO API

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

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "dataforseo mcp server": {
            "mcp-server-typescript": {
                "command": "npx",
                "args": [
                    "dataforseo-mcp-server@latest"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-server-typescript": {
        "command": "npx",
        "args": [
            "dataforseo-mcp-server@latest"
        ]
    }
}

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.

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

2. Install dependencies:

npm install

3. Set up environment variables:
```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about DataForSEO MCP Server

Relevant YouTube tutorials, setups, and demos