by dataforseo
Boost AI assistants with a unified DataForSEO MCP server interface. This project offers modular tools—SERP, Keywords, Ba
Provides programmatic access to DataForSEO's API suite for retrieving search rankings, keyword data, backlink profiles, and domain analytics. Requires DataForSEO account credentials to access comprehensive SEO datasets.
DataForSEO is an official MCP server published by dataforseo that provides AI assistants with tools and capabilities via the Model Context Protocol. Boost AI assistants with a unified DataForSEO MCP server interface. This project offers modular tools—SERP, Keywords, Ba It is categorized under analytics data.
You can install DataForSEO in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
Apache-2.0
DataForSEO is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
I recommend DataForSEO for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
DataForSEO reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
DataForSEO is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
According to our notes, DataForSEO benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
We evaluated DataForSEO against two servers with overlapping tools; this profile had the clearer scope statement.
DataForSEO reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
I recommend DataForSEO for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
We wired DataForSEO into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Useful MCP listing: DataForSEO is the kind of server we cite when onboarding engineers to host + tool permissions.
Strong directory entry: DataForSEO surfaces stars and publisher context so we could sanity-check maintenance before adopting.
showing 1-10 of 41
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.
git clone https://github.com/dataforseo/mcp-server-typescript
cd mcp-server-typescript
npm install
# 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"
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
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
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
Basic Authentication
Authorization: Basic <base64-encoded-credentials>
username:passwordEnvironment Variables
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password
# Optional
export DATAFORSEO_SIMPLE_FILTER="false"
export DATAFORSEO_FULL_RESPONSE="true"
The DataForSEO MCP Server can be deployed as a Cloudflare Worker for serverless, edge-distributed access to DataForSEO APIs.
Install Wrangler CLI:
npm install -g wrangler
Configure Worker:
# Login to Cloudflare
wrangler login
# Set environment variables
wrangler secret put DATAFORSEO_USERNAME
wrangler secret put DATAFORSEO_PASSWORD
Deploy Worker:
# Build and deploy
npm run build
wrangler deploy --main build/index-worker.js
The worker uses the same environment variables as the standard server:
DATAFORSEO_USERNAME: Your DataForSEO usernameDATAFORSEO_PASSWORD: Your DataForSEO passwordENABLED_MODULES: Comma-separated list of modules to enableENABLED_PROMPTS: Comma-separated list of prompt names to enableDATAFORSEO_FULL_RESPONSE: Set to "true" for full API responsesOnce deployed, your worker will be available at https://your-worker.your-subdomain.workers.dev/ with the following endpoints:
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 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;Each module corresponds to a specific DataForSEO API:
AI_OPTIMIZATION: AI Optimization APISERP module → SERP APIKEYWORDS_DATA module → Keywords Data APIONPAGE module → OnPage APIDATAFORSEO_LABS module → DataForSEO Labs APIBACKLINKS: module → Backlinks APIBUSINESS_DATA: module → Business Data APIDOMAIN_ANALYTICS: module → Domain Analytics APICONTENT_ANALYSIS: module → Content Analysis APIYou can either:
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 i
---
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.