DataForSEO MCP Server
OfficialMCP-сервер DataForSEO
Это новый MCP-сервер версии v3. Предыдущий MCP-сервер v2+ устарел и находится по адресу dataforseo/mcp-server-typescript-deprecated.
MCP-сервер и CLI для LLM-агентов, позволяющие просматривать документацию API DataForSEO и выполнять аутентифицированные запросы к API. По умолчанию бинарный файл запускает MCP-сервер на stdio; команды CLI — это опциональный второй режим.
Быстрый старт
Запуск MCP-сервера на stdio (режим по умолчанию; установите DATAFORSEO_LOGIN / DATAFORSEO_PASSWORD):
npx dataforseo-mcp-server@latestHTTP-транспорт (порт 3000; можно изменить с помощью PORT):
npx dataforseo-mcp-server@latest --mode httpRelated MCP server: FetchSERP MCP Server
Аутентификация
OAuth 2.0 (по умолчанию для HTTP MCP): работает сразу. MCP-клиенты обнаруживают сервер авторизации DataForSEO через метаданные Protected Resource и отправляют токены Authorization: Bearer.
Резервный вариант: логин/пароль API через переменные среды (HTTP Basic). Требуется для CLI и stdio MCP; при использовании HTTP применяется, если заголовок Authorization отсутствует.
# bash / macOS / Linux
export DATAFORSEO_LOGIN="your_api_login"
export DATAFORSEO_PASSWORD="your_api_password"# PowerShell
$env:DATAFORSEO_LOGIN="your_api_login"
$env:DATAFORSEO_PASSWORD="your_api_password"REM CMD
set DATAFORSEO_LOGIN=your_api_login
set DATAFORSEO_PASSWORD=your_api_passwordDATAFORSEO_USERNAME принимается как псевдоним для DATAFORSEO_LOGIN. Получите ключи API на странице https://app.dataforseo.com/api-access.
MCP-сервер
Одни и те же реализации инструментов используются как для MCP-сервера, так и для CLI. Один бинарный файл обслуживает оба режима; MCP используется по умолчанию.
Как бинарный файл выбирает режим:
MCP stdio — по умолчанию, если не передана команда CLI
MCP HTTP — передайте
--mode http(Streamable HTTP на порту 3000; можно изменить с помощьюPORT)CLI — если первая команда —
docsилиrequest, или переданы--cli/--help/--version
MCP stdio (по умолчанию):
npx dataforseo-mcp-serverMCP HTTP:
npx dataforseo-mcp-server --mode httpCLI:
npx dataforseo-mcp-server docs indexКонфигурация MCP-клиента (Cursor, Claude Desktop и аналогичные клиенты, использующие mcpServers):
Через URL — используйте размещённый удалённый MCP-сервер или запустите локальный HTTP-сервер (npx dataforseo-mcp-server --mode http) и укажите клиенту на него. OAuth работает сразу; учётные данные среды являются необязательным резервом.
Удалённый MCP-сервер: https://data.dataforseo.com/v3
{
"mcpServers": {
"dataforseo": {
"url": "https://data.dataforseo.com/v3/mcp"
}
}
}Локальный сервер (порт по умолчанию 3000):
{
"mcpServers": {
"dataforseo": {
"url": "http://localhost:3000/mcp"
}
}
}Через command (stdio) — клиент запускает бинарный файл самостоятельно (stdio — режим по умолчанию). OAuth не используется на этом транспорте — установите учётные данные среды (или передайте их в блоке env MCP-клиента):
{
"mcpServers": {
"dataforseo": {
"command": "npx",
"args": [
"dataforseo-mcp-server",
// Optional additional args:
// "--docs-cache-dir", "D:\\my-docs-cache",
// "--configuration", "field-config.json"
],
"env": {
"DATAFORSEO_LOGIN": "your_api_login",
"DATAFORSEO_PASSWORD": "your_api_password",
// Optional additional env:
// "FIELD_CONFIG_PATH": "field-config.json"
}
}
}
}Из корня репозитория во время разработки:
{
"mcpServers": {
"dataforseo": {
"command": "npx",
"args": ["tsx", "src/index.ts"],
"cwd": "/path/to/mcp-server-typescript"
}
}
}Инструменты MCP
Инструмент | Название | Описание |
| Индекс документации | Получить индекс документации, опционально отфильтрованный по разделу (кэш 24 ч) |
| Список разделов док. | Возвращает доступные названия разделов документации |
| Поиск в документации | Получить документацию по URL документации ( |
| Запрос к API | Выполнить аутентифицированный запрос к API |
api_request по умолчанию использует пути .ai (без параметра aiMode). Тело запроса передаётся как data (объект JSON или массив). Опции, доступные только в CLI (--param, --no-ai-mode), не раскрываются через MCP.
HTTP-транспорт
Конечные точки Streamable HTTP:
POST /mcpPOST /http
Метаданные Protected Resource для OAuth 2.0 (RFC 9728) всегда раскрываются, чтобы MCP-клиенты могли обнаружить сервер авторизации и аутентифицироваться с помощью токенов Bearer:
GET /.well-known/oauth-protected-resourceGET /.well-known/oauth-protected-resource/mcpGET /.well-known/oauth-protected-resource/http
За обратным прокси установите TRUST_PROXY=true, чтобы URL метаданных использовали https.
Приоритет аутентификации для HTTP-запросов:
Заголовок
Authorization: BasicЗаголовок
Authorization: Bearer(токен доступа OAuth)Учётные данные среды (
DATAFORSEO_LOGIN/DATAFORSEO_PASSWORD) — резерв, если заголовокAuthorizationне отправлен
CLI (опционально)
В дополнение к MCP тот же бинарный файл предоставляет команды docs и request в качестве команд CLI.
Команды
Команда | Описание |
| Получить полный индекс документации API |
| Отфильтровать индекс по разделу API |
| Показать доступные разделы |
| Получить документацию по URL документации или пути (по умолчанию только пример cURL) |
| Получить документацию с примерами на PHP, Node.js, Python и C# |
| Выполнить аутентифицированный запрос к API (по умолчанию путь |
Из собранного локального клона также можно использовать npx . вместо npx dataforseo-mcp-server.
Примеры
# Browse SERP API endpoints
npx dataforseo-mcp-server docs index --section "SERP API"
# Read endpoint documentation (path or full docs URL)
npx dataforseo-mcp-server docs search serp/google/organic/live/regular
npx dataforseo-mcp-server docs search https://docs.dataforseo.com/v3/serp/google/organic/live/regular
# Include multi-language code examples (PHP, Node.js, Python, C#)
npx dataforseo-mcp-server docs search backlinks/referring_networks/live --need-code-example
# Live SERP request (recommended: use --param)
npx dataforseo-mcp-server request -X POST -p /v3/serp/google/organic/live/regular \
--param keyword=dataforseo --param language_code=en --param location_code=2840
# Same request via JSON body
npx dataforseo-mcp-server request -X POST -p /v3/serp/google/organic/live/regular \
-d '[{"keyword":"dataforseo","location_code":2840,"language_code":"en"}]'Ответы документации кэшируются на 24 часа. Каталог кэша по умолчанию:
Windows:
%LOCALAPPDATA%\dataforseo-mcp-server\docs-cachemacOS:
~/Library/Caches/dataforseo-mcp-server/docs-cacheLinux:
~/.cache/dataforseo-mcp-server/docs-cache(или$XDG_CACHE_HOME)
Измените с помощью --cache-dir <path> в командах CLI docs. Для MCP передайте --docs-cache-dir <path> в аргументах запуска сервера args.
Ответы API возвращаются только в виде тела ответа (по возможности разобранный JSON). Когда загружена конфигурация полей, ответы api_request / request обрезаются до настроенных полей для данной конечной точки пути (см. Конфигурация полей).
Конфигурация полей
Опционально ограничивает, какие поля возвращаются из ответов API. В отличие от предыдущего многоинструментального MCP-сервера (ключи = названия инструментов), этот пакет связывает конфигурацию с путём конечной точки API.
# MCP stdio (default when no CLI command is passed)
npx dataforseo-mcp-server --configuration field-config.json
# MCP HTTP
npx dataforseo-mcp-server --mode http --configuration field-config.json
# CLI
npx dataforseo-mcp-server --configuration field-config.json request -X POST -p /v3/backlinks/summary/live --param target=example.comИли установите переменные среды:
FIELD_CONFIG_PATH— путь к файлу JSON (Node)FIELD_CONFIG_JSON— встроенная строка JSON (Node / Cloudflare Worker)
Минимальный пример (полный образец см. в field-config.example.json):
{
"supported_fields": {
"/v3/serp/google/organic/live/advanced": ["id", "items.title", "items.url", "status_code"],
"/v3/backlinks/summary/live": ["id", "items.backlinks", "items.referring_domains", "status_code"]
}
}Поведение:
Встроенные значения по умолчанию всегда применяются для
/v3/on_page/lighthouse/live/json(сокращённая полезная нагрузка Lighthouse). Пользовательская конфигурация накладывается поверх и может переопределить любой путь.Сопоставление путей игнорирует суффикс
.ai, завершающий слеш и хост (полные URL работают).Если путь настроен с непустым списком полей → сохраняются только эти поля (применяется к каждому элементу
tasks[].result[]).Если путь имеет пустой список полей
[]→ полный ответ для этого пути (отключает фильтрацию).Если путь отсутствует как в значениях по умолчанию, так и в пользовательской конфигурации → полный ответ.
Скопируйте пример и настройте под используемые конечные точки:
cp field-config.example.json my-config.jsonАрхитектура
src/
├── index.ts # Unified entry (MCP by default stdio; CLI if docs/request/--cli)
├── config/ # URLs, sections, auth server
├── core/
│ ├── api/ # auth, client, path, request-body
│ ├── cli/ # program, error, output
│ ├── config/ # field configuration + defaults
│ ├── docs/ # path, section, cache
│ ├── http/ # fetch
│ ├── mcp/ # startup args (--configuration, --docs-cache-dir)
│ ├── tools/ # shared CLI + MCP tool implementations
│ ├── utils/ # field filter
│ ├── env.ts
│ └── version.ts
├── mcp/
│ ├── init-mcp-server.ts
│ ├── tool-definition.ts
│ ├── auth-middleware.ts
│ ├── http-routes.ts
│ ├── index.ts # stdio transport
│ └── index-http.ts # streamable HTTP
└── worker/ # Cloudflare Worker entry (built separately)Результаты сборки
Цель | Команда | Выходной файл | Используется |
Node (MCP + CLI) |
|
|
|
Cloudflare Worker |
|
|
|
Путь worker — build/worker/worker/..., потому что tsconfig.worker.json устанавливает rootDir в src, а точка входа находится в src/worker/index-worker.ts.
Для LLM-агентов
Прочитайте SKILL.md в этом репозитории для полных инструкций для агента.
Разработка
Требуется Node.js 20+.
npm install
npm run build
# Dev (tsx, no build step)
npm run dev # MCP stdio (default)
npm run dev:mcp:http # MCP HTTP
npm run dev -- docs index --section "SERP API" # CLI
# After build
npm run start # MCP stdio (default)
npm run start:mcp:http # Streamable HTTP
npx . docs index --list-sectionsAvailable Tools
17 toolskw_data_dfs_trends_demographyC
This endpoint will provide you with the demographic breakdown (by age and gender) of keyword popularity per each specified term based on DataForSEO Trends data
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 | |
| type | No | dataforseo trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool provides demographic breakdowns but doesn't mention key behavioral aspects such as rate limits, authentication requirements, data freshness, or potential costs. For a data-fetching tool with multiple parameters, this lack of operational context is a significant gap, though it doesn't contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly states what the tool does ('provide demographic breakdown') and the data source ('DataForSEO Trends'), making it easy to parse. Every part of the sentence contributes essential information, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is insufficiently complete. It explains the output type but lacks details on return format (e.g., structured data, visualizations), error handling, or example usage. For a tool fetching trend data with demographic filters, more context is needed to guide effective use, especially without annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond implying demographic data output. It doesn't explain how parameters like 'location_name' or 'type' affect the demographic results, so it relies entirely on the schema. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the demographic breakdown (by age and gender) of keyword popularity per each specified term based on DataForSEO Trends data.' It specifies the verb ('provide'), resource ('demographic breakdown'), and data source ('DataForSEO Trends'), making it clear what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'kw_data_dfs_trends_explore' or 'kw_data_google_trends_explore' which might offer different types of keyword trend analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, specify use cases (e.g., for marketing analysis vs. general search trends), or outline prerequisites. This leaves the agent with minimal context for tool selection, relying solely on the description's content without comparative or contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kw_data_dfs_trends_exploreC
This endpoint will provide you with the keyword popularity data from DataForSEO Trends. You can check keyword trends for Google Search, Google News, and Google Shopping
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 | |
| type | No | dataforseo trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the data source and scope (keyword trends), it doesn't describe important behavioral aspects like rate limits, authentication requirements, pagination, error handling, or whether this is a read-only operation. The description is insufficient for a tool with 6 parameters and no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two clear sentences that state the core functionality. It's front-loaded with the main purpose and follows with additional context about data sources. No wasted words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what the output looks like, how results are structured, or provide any context about the DataForSEO Trends service. For a data retrieval tool with multiple parameters and no output schema, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all 6 parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain parameter interactions, provide usage examples, or clarify relationships between parameters like 'time_range' and 'date_from/date_to'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide keyword popularity data from DataForSEO Trends' with specific data sources (Google Search, News, Shopping). It uses a specific verb ('provide') and resource ('keyword popularity data'), but doesn't explicitly differentiate from sibling tools like 'kw_data_google_trends_explore' which might offer similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions what data sources are available (Google Search, News, Shopping), but provides no guidance on when to use this tool versus alternatives like 'kw_data_google_trends_explore' or other sibling tools. There's no mention of prerequisites, limitations, or comparative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kw_data_dfs_trends_subregion_interestsC
This endpoint will provide you with location-specific keyword popularity data from DataForSEO Trends
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 | |
| type | No | dataforseo trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose rate limits, authentication needs, data freshness, or what 'popularity data' entails (e.g., metrics like search volume, trends). The phrase 'provide you with' is vague, and there's no mention of output format or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and avoids redundancy. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'keyword popularity data' includes, how results are structured, or limitations (e.g., the 5-keyword maximum is only in the schema). For a data-fetching tool with rich parameters, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no additional parameter semantics beyond implying 'location-specific' relates to 'location_name'. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with location-specific keyword popularity data from DataForSEO Trends.' It specifies the verb ('provide'), resource ('keyword popularity data'), and scope ('location-specific'), though it doesn't explicitly differentiate from sibling tools like 'kw_data_dfs_trends_demography' or 'kw_data_dfs_trends_explore' beyond mentioning 'subregion interests' in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, prerequisites, or specific use cases. The agent must infer usage from the name and parameters alone, which is insufficient for clear decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kw_data_google_ads_locationsC
Utility tool for kw_data_google_ads_search_volume to get list of availible locations.
| Name | Required | Description | Default |
|---|---|---|---|
| country_iso_code | Yes | ISO 3166-1 alpha-2 country code, for example: US, GB, MT | |
| location_type | No | Type of location. Possible variants: 'TV Region','Postal Code','Neighborhood','Governorate','National Park','Quarter','Canton','Airport','Okrug','Prefecture','City','Country','Province','Barrio','Sub-District','Congressional District','Municipality District','district','DMA Region','Union Territory','Territory','Colloquial Area','Autonomous Community','Borough','County','State','District','City Region','Commune','Region','Department','Division','Sub-Ward','Municipality','University' | |
| location_name | No | Name of location or it`s part. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a 'utility tool' that 'gets list of available locations', which implies a read-only operation but doesn't disclose any behavioral traits like authentication requirements, rate limits, pagination, error handling, or what format the list returns. The description is minimal and lacks necessary operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently states the tool's purpose and its relationship to another tool. It's appropriately sized without unnecessary elaboration, though it could be slightly more specific about the resource scope to improve clarity while maintaining conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool with 3 parameters. It doesn't explain what the output looks like (e.g., list format, structure), nor does it provide behavioral context needed for proper use. The minimal description leaves significant gaps in understanding how to effectively invoke and interpret results from this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (country_iso_code, location_type, location_name) with descriptions and constraints. The description adds no additional parameter semantics beyond what's already in the schema, meeting the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose as getting a list of available locations, but it's vague about what kind of locations (Google Ads locations) and doesn't clearly distinguish from sibling tools like 'serp_locations' or 'serp_youtube_locations'. It mentions being a utility for 'kw_data_google_ads_search_volume', which provides some context but lacks specificity about the resource scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions this is a utility for 'kw_data_google_ads_search_volume', implying it should be used in that context, but provides no explicit guidance on when to use this tool versus alternatives like 'serp_locations' or 'serp_youtube_locations'. There's no mention of prerequisites, exclusions, or specific scenarios for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kw_data_google_ads_search_volumeC
Get search volume data for keywords from Google Ads
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | United States |
| language_code | No | Language two-letter ISO code (e.g., 'en'). optional field | |
| keywords | Yes | Array of keywords to get search volume for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' data, implying a read-only operation, but doesn't clarify if it requires authentication, has rate limits, returns real-time or historical data, or handles errors. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get search volume data for keywords from Google Ads'. It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a straightforward tool. Every part of the sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like authentication needs, rate limits, or data freshness. For a tool that likely interacts with an external API (Google Ads) and returns search volume data, more context on limitations, response format, or error handling would be beneficial to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the input schema fully documents the parameters (location_name, language_code, keywords) with detailed descriptions. The description adds no additional semantic information beyond what's in the schema, such as explaining the relationship between parameters or typical usage patterns. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get search volume data for keywords from Google Ads'. It specifies the verb ('Get'), resource ('search volume data'), and source ('Google Ads'), making the function unambiguous. However, it doesn't differentiate from sibling tools like 'kw_data_google_trends_explore' or 'kw_data_dfs_trends_explore', which might also provide keyword-related data from different sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, such as 'kw_data_google_trends_explore' for Google Trends data or 'kw_data_dfs_trends_demography' for demographic trends, leaving the agent without context for tool selection. There's no indication of prerequisites, limitations, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kw_data_google_trends_categoriesB
This endpoint will provide you list of Google Trends Categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool provides a list, implying a read-only operation, but doesn't cover aspects like rate limits, authentication needs, error handling, or data format. For a tool with zero annotation coverage, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'This endpoint will provide you list of Google Trends Categories.' It is front-loaded with the core purpose, has zero waste, and is appropriately sized for a simple tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimal. It states what the tool does but lacks context on usage, behavioral traits, or output details. For a tool that might interact with external APIs (Google Trends), more completeness on constraints or return values would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add param info, which is appropriate. A baseline of 4 is applied as it compensates adequately for the lack of parameters without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you list of Google Trends Categories.' It specifies the verb ('provide') and resource ('list of Google Trends Categories'), making the function unambiguous. However, it doesn't differentiate from sibling tools like 'kw_data_google_trends_explore,' which might also involve Google Trends data, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention context, prerequisites, or exclusions, such as how it differs from 'kw_data_google_trends_explore' or other sibling tools. This leaves the agent without direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kw_data_google_trends_exploreC
This endpoint will provide you with the keyword popularity data from the ‘Explore’ feature of Google Trends. You can check keyword trends for Google Search, Google News, Google Images, Google Shopping, and YouTube
| Name | Required | Description | Default |
|---|---|---|---|
| location_name | No | full name of the location optional field in format "Country" example: United Kingdom | |
| language_code | No | Language two-letter ISO code (e.g., 'en'). optional field | |
| keywords | Yes | keywords the maximum number of keywords you can specify: 5 the maximum number of characters you can specify in a keyword: 100 the minimum number of characters must be greater than 1 comma characters (,) in the specified keywords will be unset and ignored Note: keywords cannot consist of a combination of the following characters: < > | " - + = ~ ! : * ( ) [ ] { } Note: to obtain google_trends_topics_list and google_trends_queries_list items, specify no more than 1 keyword | |
| type | No | google trends type | web |
| date_from | No | starting date of the time range if you don’t specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 date format: "yyyy-mm-dd" example: "2019-01-15" | |
| date_to | No | ending date of the time range if you don’t specify this field, the today’s date will be used by default date format: "yyyy-mm-dd" example: "2019-01-15" | |
| time_range | No | preset time ranges if you specify date_from or date_to parameters, this field will be ignored when setting a task | past_7_days |
| item_types | No | types of items returned to speed up the execution of the request, specify one item at a time | |
| category_code | No | google trends search category you can receive the list of available categories with their category_code by making a separate request to the keywords_data_google_trends_categories tool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the data sources, it doesn't address important behavioral aspects: whether this is a read-only operation, rate limits, authentication requirements, response format, pagination, or error conditions. For a tool with 9 parameters and no output schema, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that directly address the tool's function and scope. The first sentence states the core purpose, and the second provides additional context about available data sources. There's no wasted language or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no annotations, no output schema), the description is insufficient. It doesn't explain what the tool returns, how to interpret the results, or provide context about Google Trends data limitations. For a data retrieval tool with multiple configuration options and no output schema, users need more guidance about expected outputs and result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds minimal value beyond what's in the schema - it mentions the data sources (which relates to the 'type' parameter) but doesn't provide additional context about parameter interactions, dependencies, or best practices. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provide you with the keyword popularity data from the 'Explore' feature of Google Trends.' It specifies the verb ('provide'), resource ('keyword popularity data'), and source ('Google Trends Explore feature'). However, it doesn't explicitly distinguish this tool from its sibling 'kw_data_google_trends_categories' or other keyword data tools, which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions what data sources are available ('Google Search, Google News, Google Images, Google Shopping, and YouTube'), but provides no guidance on when to use this tool versus alternatives like 'kw_data_google_ads_search_volume' or 'kw_data_dfs_trends_explore'. There's no mention of prerequisites, limitations, or typical use cases for Google Trends data versus other keyword tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to parse | |
| enable_javascript | No | Enable JavaScript rendering | |
| custom_user_agent | No | Custom User-Agent header | |
| accept_language | No | Accept-Language header value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool parses and returns structured content, but doesn't cover important aspects like whether it makes external HTTP requests, potential rate limits, authentication needs, error handling, or what 'structured content' entails. For a tool that interacts with external URLs, this lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the core functionality. It's appropriately sized and front-loaded with the main purpose. There's no wasted text, though it could potentially benefit from slightly more detail given the lack of annotations and output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of parsing web pages and the absence of both annotations and an output schema, the description is insufficient. It doesn't explain what 'structured content' means in practice, how results are formatted, potential limitations (e.g., JavaScript-dependent content), or error conditions. For a tool with 4 parameters and no structured output documentation, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions parsing 'any page you specify' which aligns with the 'url' parameter, but provides no additional syntax, format, or usage details. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: parsing content from a specified page and returning structured content including links, anchors, headings, and text. It uses specific verbs ('parsing', 'return') and identifies the resource ('any page you specify'). However, it doesn't explicitly differentiate from sibling tools like 'on_page_instant_pages' or 'on_page_lighthouse', which likely have related but distinct functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where this parsing tool is preferred over other on_page or serp tools. Usage is implied only by the general purpose, with no explicit when/when-not statements or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to analyze | |
| enable_javascript | No | Enable JavaScript rendering | |
| custom_js | No | Custom JavaScript code to execute | |
| custom_user_agent | No | Custom User-Agent header | |
| accept_language | No | language header for accessing the website all locale formats are supported (xx, xx-XX, xxx-XX, etc.) Note: if you do not specify this parameter, some websites may deny access; in this case, pages will be returned with the "type":"broken in the response array |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions getting 'detailed information on how well a particular page is optimized' but doesn't describe what that information includes, whether it performs active crawling/scraping, potential rate limits, authentication needs, or error handling. The description lacks crucial behavioral context for a tool that likely makes external HTTP requests.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a tool with 5 parameters and no annotations. However, it could be more front-loaded with critical behavioral information given the lack of annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that likely performs external HTTP requests and SEO analysis with 5 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what kind of data is returned, how comprehensive the analysis is, potential limitations, or error scenarios. The agent lacks crucial context to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. It doesn't explain how parameters like 'enable_javascript' or 'custom_js' affect the analysis results. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'get page-specific data with detailed information on how well a particular page is optimized for organic search.' It specifies the verb 'get' and resource 'page-specific data' with the specific context of organic search optimization. However, it doesn't explicitly differentiate from siblings like 'on_page_content_parsing' or 'on_page_lighthouse' which might have overlapping SEO analysis functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools like 'on_page_content_parsing' or 'on_page_lighthouse' that might offer similar or complementary SEO analysis capabilities. The agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
on_page_lighthouseC
The OnPage Lighthouse API is based on Google’s open-source Lighthouse project for measuring the quality of web pages and web apps.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to parse | |
| enable_javascript | No | Enable JavaScript rendering | |
| custom_user_agent | No | Custom User-Agent header | |
| accept_language | No | Accept-Language header value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden but fails to disclose key behavioral traits. It does not mention whether this is a read-only operation, potential rate limits, authentication needs, or what the output entails (e.g., audit results, scores, errors). The description only provides background on Lighthouse without operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently explains the tool's basis without unnecessary details. It is front-loaded with the core information, though it could be more concise by directly stating the tool's function rather than background.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool with 4 parameters and likely complex behavior (web page quality measurement). It lacks details on what the tool returns, error handling, or performance implications, leaving significant gaps for an AI agent to understand its use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters (url, enable_javascript, custom_user_agent, accept_language). The description adds no additional meaning about parameters beyond what the schema provides, such as default behaviors or usage examples. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is 'based on Google's open-source Lighthouse project for measuring the quality of web pages and web apps,' which provides a general purpose but lacks specificity about what it actually does (e.g., run audits, generate reports, return scores). It distinguishes from some siblings like 'on_page_content_parsing' by mentioning Lighthouse, but the verb 'measuring' is vague compared to more precise alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention sibling tools like 'on_page_content_parsing' or 'on_page_instant_pages' for comparison, nor does it specify contexts or exclusions for usage. The description only gives background without practical application advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_locationsC
Utility tool for serp_organic_live_advanced to get list of availible locations.
| Name | Required | Description | Default |
|---|---|---|---|
| search_engine | No | search engine name, one of: google, yahoo, bing. | |
| country_iso_code | Yes | ISO 3166-1 alpha-2 country code, for example: US, GB, MT | |
| location_type | No | Type of location. Possible variants: 'TV Region','Postal Code','Neighborhood','Governorate','National Park','Quarter','Canton','Airport','Okrug','Prefecture','City','Country','Province','Barrio','Sub-District','Congressional District','Municipality District','district','DMA Region','Union Territory','Territory','Colloquial Area','Autonomous Community','Borough','County','State','District','City Region','Commune','Region','Department','Division','Sub-Ward','Municipality','University' | |
| location_name | No | Name of location or it`s part. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'gets list of availible locations,' which suggests a read-only operation, but doesn't clarify aspects like authentication needs, rate limits, error handling, or what 'availible' entails (e.g., cached vs. live data). This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, straightforward sentence that efficiently states the tool's purpose and its relationship to a sibling tool. It avoids unnecessary details or repetition, making it front-loaded and easy to parse. However, minor spelling errors ('availible') slightly detract from polish, but overall, it's appropriately sized with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, and no annotations), the description is insufficiently complete. It lacks details on return values (e.g., format of the location list), behavioral traits like performance or constraints, and differentiation from siblings. While the schema covers parameters well, the overall context for an AI agent to effectively use this tool is incomplete, especially without annotations to fill gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with detailed parameter documentation including defaults and enums (e.g., 'search_engine' options, 'location_type' variants). The description adds no additional parameter semantics beyond what the schema provides, such as explaining interactions between parameters or usage examples. Given the high schema coverage, a baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is a 'utility tool for serp_organic_live_advanced to get list of availible locations,' which clarifies it fetches location data for a specific sibling tool. However, it's somewhat vague about what 'availible locations' means (e.g., search engine locations, geographic areas) and doesn't explicitly distinguish it from other location-related siblings like 'serp_youtube_locations' or 'kw_data_google_ads_locations,' leaving room for ambiguity in its exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it's a utility for 'serp_organic_live_advanced,' implying usage in that context, but provides no explicit guidance on when to use this tool versus alternatives like 'serp_youtube_locations' or 'kw_data_google_ads_locations.' There are no exclusions, prerequisites, or clear scenarios outlined, making it rely on implied context without actionable advice for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_organic_live_advancedC
Get organic search results for a keyword in specified search engine
| Name | Required | Description | Default |
|---|---|---|---|
| search_engine | No | search engine name, one of: google, yahoo, bing. | |
| location_name | No | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | United States |
| depth | No | parsing depth optional field number of results in SERP | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| keyword | Yes | Search keyword | |
| max_crawl_pages | No | page crawl limit optional field number of search results pages to crawl max value: 100 Note: the max_crawl_pages and depth parameters complement each other | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| people_also_ask_click_depth | No | clicks on the corresponding element specify the click depth on the people_also_ask element to get additional people_also_ask_element items; |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get organic search results' implies a read-only operation, the description doesn't mention important behavioral aspects like rate limits, authentication requirements, whether this performs live searches versus cached results, or what format/scope the results will have. The description is too minimal for a tool with 8 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 9 words, front-loading the core purpose without any unnecessary elaboration. Every word serves a clear purpose in communicating the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, no annotations, no output schema, and complex sibling relationships, the description is inadequate. It doesn't address what the tool returns, how results are structured, performance characteristics, or differentiation from similar tools. The minimal description leaves too many contextual gaps for effective agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what's already in the schema. Since schema description coverage is 100%, the baseline score is 3. The description doesn't explain relationships between parameters (like how depth and max_crawl_pages interact) or provide usage examples that would add value beyond the schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get organic search results') and resource ('for a keyword in specified search engine'), providing specific verb+resource pairing. However, it doesn't distinguish this tool from its sibling 'serp_youtube_organic_live_advanced', which appears to serve a similar purpose for YouTube specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools available (including other SERP tools and keyword data tools), there's no indication of when this specific organic search results tool is appropriate versus other options like 'serp_youtube_organic_live_advanced' or the various keyword trend analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_locationsB
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.
| Name | Required | Description | Default |
|---|---|---|---|
| country_iso_code | Yes | ISO 3166-1 alpha-2 country code, for example: US, GB, MT | |
| location_type | No | Type of location. Possible variants: 'TV Region','Postal Code','Neighborhood','Governorate','National Park','Quarter','Canton','Airport','Okrug','Prefecture','City','Country','Province','Barrio','Sub-District','Congressional District','Municipality District','district','DMA Region','Union Territory','Territory','Colloquial Area','Autonomous Community','Borough','County','State','District','City Region','Commune','Region','Department','Division','Sub-Ward','Municipality','University' | |
| location_name | No | Name of location or it`s part. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a 'utility tool' but doesn't disclose behavioral traits like whether it's read-only, has rate limits, authentication requirements, or what format the location list returns. The description is minimal and lacks important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that efficiently communicates the tool's purpose and scope. Every word serves a purpose with zero waste. It's appropriately sized for a utility tool with well-documented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the output looks like (list format, structure), whether results are filtered/paginated, or any operational constraints. Given the lack of structured metadata, the description should provide more complete context about the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to get a list of available locations for specific YouTube SERP tools. It specifies the verb 'get' and resource 'list of available locations', and identifies the tools it supports. However, it doesn't differentiate from sibling 'serp_locations' which might serve a similar function for other SERP tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: for the four specific YouTube SERP tools listed. This provides clear context about its intended use case. However, it doesn't mention when NOT to use it or alternatives like 'serp_locations' for other SERP tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_organic_live_advancedC
provides top 20 blocks of youtube search engine results for a keyword
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Search keyword | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
| block_depth | No | parsing depth optional field number of blocks of results in SERP max value: 700 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'top 20 blocks' and 'live' (implied from the name), but doesn't cover critical aspects like rate limits, authentication needs, data freshness, error handling, or what 'blocks' contain. For a tool with 6 parameters and no annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words and directly states what the tool does. However, it could be slightly more structured by explicitly mentioning it's for YouTube SERP analysis.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the output format (what 'blocks' include), behavioral constraints, or error cases. For a live SERP tool with multiple configuration options, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no parameter-specific information beyond implying keyword usage. It doesn't explain relationships between parameters (e.g., device-OS constraints) or provide examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'provides top 20 blocks of youtube search engine results for a keyword'. It specifies the verb ('provides'), resource ('youtube search engine results'), and scope ('top 20 blocks'). However, it doesn't explicitly differentiate from sibling tools like 'serp_organic_live_advanced' or 'serp_youtube_video_info_live_advanced', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'serp_organic_live_advanced' (for general SERP) or 'serp_youtube_video_info_live_advanced' (for video details), nor does it specify prerequisites or exclusions. Usage is implied from the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_video_comments_live_advancedD
provides data on the video comments you specify
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | ID of the video | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
| depth | No | parsing depth, number of results in SERP, max value: 700 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states what the tool does at a high level, omitting critical details such as whether it's a read-only operation, rate limits, authentication needs, data freshness (implied by 'live' in the name but not explained), or what the output format looks like (no output schema). This leaves the agent guessing about operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single vague sentence that under-specifies the tool's function, failing to front-load key information. While concise, it lacks substance—every sentence should earn its place, but this one provides minimal value, making it inefficient rather than appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, no output schema), the description is incomplete. It does not address what data is returned (e.g., comment text, timestamps, metrics), how results are structured, or any behavioral aspects like pagination or error handling. Without annotations or output schema, the description should provide more context to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional meaning beyond the schema—it does not explain how parameters interact (e.g., how 'location_name' affects comment retrieval) or provide usage examples. With high schema coverage, the baseline score is 3, as the description does not compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'provides data on the video comments you specify' is tautological—it essentially restates the tool name 'serp_youtube_video_comments_live_advanced' without adding specificity. It lacks a clear verb (e.g., 'fetch', 'analyze', 'retrieve') and does not distinguish this tool from sibling tools like 'serp_youtube_video_info_live_advanced' or 'serp_youtube_video_subtitles_live_advanced', which also provide video-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions, and it fails to reference sibling tools (e.g., 'serp_youtube_video_info_live_advanced' for general video info or 'serp_youtube_organic_live_advanced' for search results), leaving the agent without direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_video_info_live_advancedC
provides data on the video you specify
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | ID of the video | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it offers no information on what data is returned, whether it's real-time or cached, rate limits, authentication needs, or potential side effects. This leaves critical behavioral traits unspecified for a tool that appears to query live data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, making it front-loaded and easy to parse. However, it is overly concise to the point of under-specification, lacking necessary details for effective tool use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It does not explain what data is returned, the tool's behavior, or how it integrates with sibling tools. This gap makes it inadequate for an agent to understand the tool's full context and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are documented in the input schema. The description adds no additional meaning beyond the schema, such as explaining why location_name or language_code are required or how they affect the results. Baseline 3 is appropriate since the schema handles the heavy lifting, but the description fails to compensate with any contextual insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'provides data on the video you specify' is vague and tautological—it essentially restates the tool name without specifying what type of data is provided or how it differs from sibling tools like serp_youtube_video_comments_live_advanced or serp_youtube_video_subtitles_live_advanced. It lacks a specific verb and resource scope, failing to clarify the tool's unique function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions, leaving the agent to infer usage from the input schema alone. This is insufficient for a tool with multiple parameters and sibling tools in the same domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_youtube_video_subtitles_live_advancedC
provides data on the video subtitles you specify
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | ID of the video | |
| location_name | Yes | full name of the location required field Location format - hierarchical, comma-separated (from most specific to least) Can be one of: 1. Country only: "United States" 2. Region,Country: "California,United States" 3. City,Region,Country: "San Francisco,California,United States" | |
| language_code | Yes | search engine language code (e.g., 'en') | |
| subtitles_language | No | language code of original text (e.g., 'en') | |
| subtitles_translate_language | No | language code of translated text (e.g., 'en') | |
| device | No | device type optional field can take the values:desktop, mobile default value: desktop | desktop |
| os | No | device operating system optional field if you specify desktop in the device field, choose from the following values: windows, macos default value: windows if you specify mobile in the device field, choose from the following values: android, ios default value: android | windows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal insight. It doesn't indicate whether this is a read-only operation, if it requires authentication, potential rate limits, or what the output format might be (e.g., structured data, raw text). The phrase 'provides data' is too generic to convey meaningful behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with no wasted words. It's front-loaded and efficiently states the core function, though this brevity comes at the cost of detail. Every word earns its place, making it structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't explain what 'data' is returned, how subtitles are retrieved or processed, or any behavioral nuances. For a tool with multiple parameters and no output schema, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional meaning beyond the schema, such as explaining interactions between parameters (e.g., how device and OS relate) or clarifying the purpose of subtitles-related fields. With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'provides data on the video subtitles you specify', which gives a vague purpose (verb+resource) but lacks specificity about what kind of data (e.g., raw text, timestamps, availability) or how it differs from sibling tools like serp_youtube_video_info_live_advanced. It doesn't clearly distinguish itself from potential alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention any context, prerequisites, or exclusions, leaving the agent with no information about appropriate use cases or how this tool relates to siblings in the SERP/YouTube domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
17 tool updates
v1.0.2- Added
kw_data_dfs_trends_demography - Added
kw_data_dfs_trends_explore - Added
kw_data_dfs_trends_subregion_interests - Added
kw_data_google_ads_locations - Added
kw_data_google_ads_search_volume - Added
kw_data_google_trends_categories - Added
kw_data_google_trends_explore - Added
on_page_content_parsing - Added
on_page_instant_pages - Added
on_page_lighthouse - Added
serp_locations - Added
serp_organic_live_advanced - Added
serp_youtube_locations - Added
serp_youtube_organic_live_advanced - Added
serp_youtube_video_comments_live_advanced - Added
serp_youtube_video_info_live_advanced - Added
serp_youtube_video_subtitles_live_advanced
17 tool updates
v1.0.0- Removed
kw_data_dfs_trends_demography - Removed
kw_data_dfs_trends_explore - Removed
kw_data_dfs_trends_subregion_interests - Removed
kw_data_google_ads_locations - Removed
kw_data_google_ads_search_volume - Removed
kw_data_google_trends_categories - Removed
kw_data_google_trends_explore - Removed
on_page_content_parsing - Removed
on_page_instant_pages - Removed
on_page_lighthouse - Removed
serp_locations - Removed
serp_organic_live_advanced - Removed
serp_youtube_locations - Removed
serp_youtube_organic_live_advanced - Removed
serp_youtube_video_comments_live_advanced - Removed
serp_youtube_video_info_live_advanced - Removed
serp_youtube_video_subtitles_live_advanced
15 tool updates
v1.0.1- Removed
keywords_data_dataforseo_trends_demography - Removed
keywords_data_dataforseo_trends_explore - Removed
keywords_data_dataforseo_trends_subregion_interests - Removed
keywords_data_google_ads_search_volume - Removed
keywords_data_google_trends_categories - Removed
keywords_data_google_trends_explore - Added
kw_data_dfs_trends_demography - Added
kw_data_dfs_trends_explore - Added
kw_data_dfs_trends_subregion_interests - Added
kw_data_google_ads_locations - Added
kw_data_google_ads_search_volume - Added
kw_data_google_trends_categories - Added
kw_data_google_trends_explore - Changed
on_page_content_parsing1 field changed- removed
Input schema / properties / custom_jsRemoved value: -{ - "description": "Custom JavaScript code to execute", - "type": "string" -}
- Changed
on_page_lighthouse1 field changed- removed
Input schema / properties / custom_jsRemoved value: -{ - "description": "Custom JavaScript code to execute", - "type": "string" -}
52 tool updates
- Removed
ai_optimization_keyword_data_locations_and_languages - Removed
ai_optimization_keyword_data_search_volume - Removed
backlinks_anchors - Removed
backlinks_available_filters - Removed
backlinks_backlinks - Removed
backlinks_bulk_backlinks - Removed
backlinks_bulk_new_lost_backlinks - Removed
backlinks_bulk_new_lost_referring_domains - Removed
backlinks_bulk_pages_summary - Removed
backlinks_bulk_ranks - Removed
backlinks_bulk_referring_domains - Removed
backlinks_bulk_spam_score - Removed
backlinks_competitors - Removed
backlinks_domain_intersection - Removed
backlinks_domain_pages - Removed
backlinks_domain_pages_summary - Removed
backlinks_page_intersection - Removed
backlinks_referring_domains - Removed
backlinks_referring_networks - Removed
backlinks_summary - Removed
backlinks_timeseries_new_lost_summary - Removed
backlinks_timeseries_summary - Removed
business_data_business_listings_search - Removed
content_analysis_phrase_trends - Removed
content_analysis_search - Removed
content_analysis_summary - Removed
dataforseo_labs_available_filters - Removed
dataforseo_labs_bulk_keyword_difficulty - Removed
dataforseo_labs_bulk_traffic_estimation - Removed
dataforseo_labs_google_competitors_domain - Removed
dataforseo_labs_google_domain_intersection - Removed
dataforseo_labs_google_domain_rank_overview - Removed
dataforseo_labs_google_historical_keyword_data - Removed
dataforseo_labs_google_historical_rank_overview - Removed
dataforseo_labs_google_historical_serp - Removed
dataforseo_labs_google_keyword_ideas - Removed
dataforseo_labs_google_keyword_overview - Removed
dataforseo_labs_google_keyword_suggestions - Removed
dataforseo_labs_google_keywords_for_site - Removed
dataforseo_labs_google_page_intersection - Removed
dataforseo_labs_google_ranked_keywords - Removed
dataforseo_labs_google_related_keywords - Removed
dataforseo_labs_google_serp_competitors - Removed
dataforseo_labs_google_subdomains - Removed
dataforseo_labs_google_top_searches - Removed
dataforseo_labs_search_intent - Removed
domain_analytics_technologies_available_filters - Removed
domain_analytics_technologies_domain_technologies - Removed
domain_analytics_whois_available_filters - Removed
domain_analytics_whois_overview - Changed
keywords_data_google_trends_categories1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
on_page_lighthouse
65 tool updates
- First observed
ai_optimization_keyword_data_locations_and_languages - First observed
ai_optimization_keyword_data_search_volume - First observed
backlinks_anchors - First observed
backlinks_available_filters - First observed
backlinks_backlinks - First observed
backlinks_bulk_backlinks - First observed
backlinks_bulk_new_lost_backlinks - First observed
backlinks_bulk_new_lost_referring_domains - First observed
backlinks_bulk_pages_summary - First observed
backlinks_bulk_ranks - First observed
backlinks_bulk_referring_domains - First observed
backlinks_bulk_spam_score - First observed
backlinks_competitors - First observed
backlinks_domain_intersection - First observed
backlinks_domain_pages - First observed
backlinks_domain_pages_summary - First observed
backlinks_page_intersection - First observed
backlinks_referring_domains - First observed
backlinks_referring_networks - First observed
backlinks_summary - First observed
backlinks_timeseries_new_lost_summary - First observed
backlinks_timeseries_summary - First observed
business_data_business_listings_search - First observed
content_analysis_phrase_trends - First observed
content_analysis_search - First observed
content_analysis_summary - First observed
dataforseo_labs_available_filters - First observed
dataforseo_labs_bulk_keyword_difficulty - First observed
dataforseo_labs_bulk_traffic_estimation - First observed
dataforseo_labs_google_competitors_domain - First observed
dataforseo_labs_google_domain_intersection - First observed
dataforseo_labs_google_domain_rank_overview - First observed
dataforseo_labs_google_historical_keyword_data - First observed
dataforseo_labs_google_historical_rank_overview - First observed
dataforseo_labs_google_historical_serp - First observed
dataforseo_labs_google_keyword_ideas - First observed
dataforseo_labs_google_keyword_overview - First observed
dataforseo_labs_google_keyword_suggestions - First observed
dataforseo_labs_google_keywords_for_site - First observed
dataforseo_labs_google_page_intersection - First observed
dataforseo_labs_google_ranked_keywords - First observed
dataforseo_labs_google_related_keywords - First observed
dataforseo_labs_google_serp_competitors - First observed
dataforseo_labs_google_subdomains - First observed
dataforseo_labs_google_top_searches - First observed
dataforseo_labs_search_intent - First observed
domain_analytics_technologies_available_filters - First observed
domain_analytics_technologies_domain_technologies - First observed
domain_analytics_whois_available_filters - First observed
domain_analytics_whois_overview - First observed
keywords_data_dataforseo_trends_demography - First observed
keywords_data_dataforseo_trends_explore - First observed
keywords_data_dataforseo_trends_subregion_interests - First observed
keywords_data_google_ads_search_volume - First observed
keywords_data_google_trends_categories - First observed
keywords_data_google_trends_explore - First observed
on_page_content_parsing - First observed
on_page_instant_pages - First observed
serp_locations - First observed
serp_organic_live_advanced - First observed
serp_youtube_locations - First observed
serp_youtube_organic_live_advanced - First observed
serp_youtube_video_comments_live_advanced - First observed
serp_youtube_video_info_live_advanced - First observed
serp_youtube_video_subtitles_live_advanced
TDQS
Most tools have distinct purposes across keyword data, on-page analysis, and SERP categories, with clear separation between Google Ads, Google Trends, and YouTube-specific tools. However, some overlap exists between kw_data_dfs_trends_explore and kw_data_google_trends_explore, both providing keyword popularity data from different sources, which could cause minor confusion.
The naming follows a consistent snake_case pattern with clear prefixes (kw_data_, on_page_, serp_) that group related tools logically. Minor inconsistencies include variations like 'availible' vs 'available' in descriptions and some utility tools having simpler names (e.g., serp_locations), but the overall structure is predictable and readable.
With 17 tools, the count is slightly high but reasonable for a comprehensive SEO data server covering keyword trends, on-page analysis, and SERP data across multiple platforms. It avoids being overwhelming by grouping tools into clear categories, though it borders on the upper limit of typical scoping.
The toolset provides thorough coverage for SEO analysis, including keyword research (volume, trends, demographics), on-page optimization (content parsing, Lighthouse metrics), and SERP data (organic results, YouTube video details, comments, subtitles). Utility tools for locations ensure no dead ends, and the surface supports end-to-end workflows without obvious gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live SEO workflow tools for Claude Code, Codex, and AI agents.
- CalmSEOOAuthcom.calmseo
SEO MCP server for keyword research, SERP analysis, audits, and Search Console workflows.
- RampifyOAuthdev.rampify
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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.207MIT

FetchSERP MCP Serverofficial
-licenseCqualityNot gradedmaintenanceA Model Context Protocol server that provides AI assistants with access to FetchSERP API capabilities for SEO analysis, SERP data, web scraping, and keyword research.231919-- -licenseCqualityNot gradedmaintenanceA Model Context Protocol server that exposes Haloscan SEO API functionality, allowing users to access keyword insights, domain analysis, and competitor research through Claude for Desktop and other MCP-compatible clients.3266-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides comprehensive SEO analysis tools with actionable fix instructions for AI assistants like Claude Code and Claude Desktop.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dataforseo/mcp-server-typescript'
If you have feedback or need assistance with the MCP directory API, please join our Discord server