dataforseo-mcp
# dataforseo-mcp-server
An MCP server (stdio) that exposes the [DataForSEO](https://dataforseo.com) SEO API
— SERP, keywords, backlinks, labs, on-page, and more — as tools for Claude Code or
any other MCP client.
## Install
Requires Node.js 20+.
```bash
git clone <this-repo>
cd dataforseo-mcp-server
npm install
npm run build
npm link # puts the `dataforseo-mcp-server` command on your PATH
```
## Credentials
```bash
cp .env.example .env
```
Then edit `.env`:
```
DATAFORSEO_LOGIN=your_login
DATAFORSEO_PASSWORD=your_password
```
Both come from your DataForSEO account (dashboards → API access page). The server
finds this `.env` no matter which directory it's launched from, so the `.mcp.json`
block needs no `env` entry — and any `DATAFORSEO_LOGIN`/`DATAFORSEO_PASSWORD` set
in the environment still take precedence over `.env`.
## Use with Claude Code
Paste into a project's `.mcp.json`, or into `~/.claude.json` under `mcpServers`
to make it available everywhere:
```json
{
"mcpServers": {
"dataforseo": {
"type": "stdio",
"command": "dataforseo-mcp-server"
}
}
}
```
Restart the session or run `/mcp`. Do not use `"command": "npm", "args": ["start"]"`,
as npm's output corrupts the MCP stream.
## Optional settings (in `.env`)
| Variable | What it does |
|---|---|
| `ENABLED_MODULES` | Expose only some API categories, e.g. `SERP,LABS,BACKLINKS`. Fewer tools = less context used by the LLM |
| `ENABLED_TOOLS` | Expose only specific tools, e.g. `serp_google_maps_live,labs_google_keyword_ideas` |
| `LOCALFALCON_API_KEY` | Optional Local Falcon (local ranking) integration |
If none are set, everything is exposed.
## Troubleshooting
`404` on some tools usually means that DataForSEO module isn't enabled for your
account (subscriptions are per module) — enable it in the DataForSEO dashboard.
It is not a bug in this server.
## Secrets
Never commit `.env` (already gitignored).
TDQS
Scored across 224 tools
With 224 tools and no descriptions, many tools have unclear boundaries—especially the labs_google_* keyword research family (keywords_for_site, related_keywords, keyword_suggestions, keyword_ideas) and multiple backlinks bulk endpoints. Platform prefixes help, but within categories multiple tools appear to overlap in purpose.
Names consistently use lowercase snake_case with domain prefixes, but the action placement varies (live suffix vs task_post/task_ready/task_get triads vs bare resource names). Some names are confusingly repetitive, like domain_analytics_technologies_domain_technologies, and granularity differs (merchant_google_products vs merchant_google_product_info).
224 tools is an extreme mismatch for an agent-facing MCP server. While DataForSEO is a broad API, exposing this many endpoints creates overwhelming selection pressure and exceeds any reasonable scope for a coherent tool set.
For a data-gathering API, the tool surface is very comprehensive, covering SERPs, keyword research, backlinks, on-page, business listings, reviews, app store data, and AI model responses. Minor inconsistencies exist—some providers have full task_post/ready/get flows while others only have live endpoints—but no major domain area is missing.