Skip to main content
Glama
ravinwebsurgeon

DataForSEO MCP Server

DataForSEO MCP Server

Model Context Protocol (MCP) server implementation for DataForSEO, enabling AI assistants to interact with selected DataForSEO APIs and obtain SEO data through a standardized interface.

Features

  • SERP API: real-time Search Engine Results Page (SERP) data for Google, Bing, and Yahoo;

  • KEYWORDS_DATA API: keyword research and clickstream data, including search volume, cost-per-click, and other metrics;

  • ONPAGE API: allows crawling websites and webpages according to customizable parameters to obtain on-page SEO performance metrics;

  • DATAFORSEO LABS API: data on keywords, SERPs, and domains based on DataForSEO's in-house databases and proprietary algorithms;

  • BACKLINKS API: comprehensive backlink analysis including referring domains, anchor text distribution, and link quality metrics;

  • BUSINESS DATA API: publicly available data on any business entity;

  • DOMAIN ANALYTICS API: data on website traffic, technologies, and Whois details;

  • CONTENT ANALYSIS API: robust source of data for brand monitoring, sentiment analysis, and citation management;

Related MCP server: DataForSEO MCP Server

Prerequisites

  • Node.js (v14 or higher)

  • DataForSEO API credentials (API login and password)

Installation

  1. Clone the repository:

git clone https://github.com/dataforseo/mcp-server-typescript
cd mcp-server-typescript
  1. Install dependencies:

npm install
  1. Set up environment variables:

# Required
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password

# Optional: specify which modules to enable (comma-separated)
# If not set, all modules will be enabled
export ENABLED_MODULES="SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS,BACKLINKS,BUSINESS_DATA,DOMAIN_ANALYTICS"

# Optional: enable full API responses
# If not set or set to false, the server will filter and transform API responses to a more concise format
# If set to true, the server will return the full, unmodified API responses
export DATAFORSEO_FULL_RESPONSE="false"

Installation as an NPM Package

You can install the package globally:

npm install -g dataforseo-mcp-server

Or run it directly without installation:

npx dataforseo-mcp-server

Remember to set environment variables before running the command:

# Required environment variables
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password

# Run with npx
npx dataforseo-mcp-server

Building and Running

Build the project:

npm run build

Run the server:

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

# Start HTTP server
npx dataforseo-mcp-server http

HTTP Server Configuration

The server runs on port 3000 by default and supports both Basic Authentication and environment variable-based authentication.

To start the HTTP server, run:

npm run http

Authentication Methods

  1. Basic Authentication

    • Send requests with Basic Auth header:

    Authorization: Basic <base64-encoded-credentials>
    • Credentials format: username:password

  2. Environment Variables

    • If no Basic Auth is provided, the server will use credentials from environment variables:

    export DATAFORSEO_USERNAME=your_username
    export DATAFORSEO_PASSWORD=your_password

Cloudflare Worker Deployment

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

Worker Features

  • Edge Distribution: Deploy globally across Cloudflare's edge network

  • Serverless: No server management required

  • Auto-scaling: Handles traffic spikes automatically

  • MCP Protocol Support: Compatible with both Streamable HTTP and SSE transports

  • Environment Variables: Secure credential management through Cloudflare dashboard

Quick Start

  1. Install Wrangler CLI:

    npm install -g wrangler
  2. Configure Worker:

    # Login to Cloudflare
    wrangler login
    
    # Set environment variables
    wrangler secret put DATAFORSEO_USERNAME
    wrangler secret put DATAFORSEO_PASSWORD
  3. Deploy Worker:

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

Configuration

The worker uses the same environment variables as the standard server:

  • DATAFORSEO_USERNAME: Your DataForSEO username

  • DATAFORSEO_PASSWORD: Your DataForSEO password

  • ENABLED_MODULES: Comma-separated list of modules to enable

  • DATAFORSEO_FULL_RESPONSE: Set to "true" for full API responses

Worker Endpoints

Once deployed, your worker will be available at https://your-worker.your-subdomain.workers.dev/ with the following endpoints:

  • POST /mcp: Streamable HTTP transport (recommended)

  • GET /sse: SSE connection establishment (deprecated)

  • POST /messages: SSE message handling (deprecated)

  • GET /health: Health check endpoint

  • GET /: API documentation page

Advanced Configuration

Edit wrangler.jsonc to customize your deployment:

{
  "name": "dataforseo-mcp-worker",
  "main": "build/index-worker.js",
  "compatibility_date": "2025-07-10",
  "compatibility_flags": ["nodejs_compat"],
  "vars": {
    "ENABLED_MODULES": "SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS"
  }
}

Usage with Claude

After deployment, configure Claude to use your worker:

{
  "name": "DataForSEO",
  "description": "Access DataForSEO APIs via Cloudflare Worker",
  "transport": {
    "type": "http",
    "baseUrl": "https://your-worker.your-subdomain.workers.dev/mcp"
  }
}

Available Modules

The following modules are available to be enabled/disabled:

  • SERP: real-time SERP data for Google, Bing, and Yahoo;

  • KEYWORDS_DATA: keyword research and clickstream data;

  • ONPAGE: crawl websites and webpages to obtain on-page SEO performance metrics;

  • DATAFORSEO_LABS: data on keywords, SERPs, and domains based on DataForSEO's databases and algorithms;

  • BACKLINKS: data on inbound links, referring domains and referring pages for any domain, subdomain, or webpage;

  • BUSINESS_DATA: based on business reviews and business information publicly shared on the following platforms: Google, Trustpilot, Tripadvisor;

  • DOMAIN_ANALYTICS: helps identify all possible technologies used for building websites and offers Whois data;

  • CONTENT_ANALYSIS: help you discover citations of the target keyword or brand and analyze the sentiments around it;

Adding New Tools/Modules

Module Structure

Each module corresponds to a specific DataForSEO API:

Implementation Options

You can either:

  1. Add a new tool to an existing module

  2. Create a completely new module

Adding a New Tool

Here's how to add a new tool to any new or pre-existing module:

// src/code/modules/your-module/tools/your-tool.tool.ts
import { BaseTool } from '../../base.tool';
import { DataForSEOClient } from '../../../client/dataforseo.client';
import { z } from 'zod';

export class YourTool extends BaseTool {
  constructor(private client: DataForSEOClient) {
    super(client);
    // DataForSEO API returns extensive data with many fields, which can be overwhelming
    // for AI agents to process. We select only the most relevant fields to ensure
    // efficient and focused responses.
    this.fields = [
      'title',           // Example: Include the title field
      'description',     // Example: Include the description field
      'url',            // Example: Include the URL field
      // Add more fields as needed
    ];
  }

  getName() {
    return 'your-tool-name';
  }

  getDescription() {
    return 'Description of what your tool does';
  }

  getParams(): z.ZodRawShape {
    return {
      // Required parameters
      keyword: z.string().describe('The keyword to search for'),
      location: z.string().describe('Location in format "City,Region,Country" or just "Country"'),
      
      // Optional parameters
      fields: z.array(z.string()).optional().describe('Specific fields to return in the response. If not specified, all fields will be returned'),
      language: z.string().optional().describe('Language code (e.g., "en")'),
    };
  }

  async handle(params: any) {
    try {
      // Make the API call
      const response = await this.client.makeRequest({
        endpoint: '/v3/dataforseo_endpoint_path',
        method: 'POST',
        body: [{
          // Your request parameters
          keyword: params.keyword,
          location: params.location,
          language: params.language,
        }],
      });

      // Validate the response for errors
      this.validateResponse(response);

      //if the main data array is specified in tasks[0].result[:] field
      const result = this.handleDirectResult(response);
      //if main data array specified in tasks[0].result[0].items field
      const result = this.handleItemsResult(response);
      // Format and return the response
      return this.formatResponse(result);
    } catch (error) {
      // Handle and format any errors
      return this.formatErrorResponse(error);
    }
  }
}

Creating a New Module

  1. Create a new directory under src/core/modules/ for your module:

mkdir -p src/core/modules/your-module-name
  1. Create module files:

// src/core/modules/your-module-name/your-module-name.module.ts
import { BaseModule } from '../base.module';
import { DataForSEOClient } from '../../client/dataforseo.client';
import { YourTool } from './tools/your-tool.tool';

export class YourModuleNameModule extends BaseModule {
  constructor(private client: DataForSEOClient) {
    super();
  }

  getTools() {
    return {
      'your-tool-name': new YourTool(this.client),
    };
  }
}
  1. Register your module in src/core/config/modules.config.ts:

export const AVAILABLE_MODULES = [
  'SERP',
  'KEYWORDS_DATA',
  'ONPAGE',
  'DATAFORSEO_LABS',
  'BACKLINKS',
  'BUSINESS_DATA',
  'DOMAIN_ANALYTICS',
  'CONTENT_ANALYSIS',
  'YOUR_MODULE_NAME'  // Add your module name here
] as const;
  1. Initialize your module in src/main/index.ts:

if (isModuleEnabled('YOUR_MODULE_NAME', enabledModules)) {
  modules.push(new YourModuleNameModule(dataForSEOClient));
}

Field Configuration

The MCP server supports field filtering to customize which data fields are returned in API responses. This helps reduce response size and focus on the most relevant data for your use case.

Configuration File Format

Create a JSON configuration file with the following structure:

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

Using Field Configuration

Pass the configuration file using the --configuration parameter:

# With npm
npm run cli -- http --configuration field-config.json

# With npx
npx dataforseo-mcp-server http --configuration field-config.json

# Local mode
npx dataforseo-mcp-server local --configuration field-config.json

Configuration Behavior

  • If a tool is configured: Only the specified fields will be returned in the response

  • If a tool is not configured: All available fields will be returned (default behavior)

  • If no configuration file is provided: All tools return all available fields

Example Configuration File

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

{
  "supported_fields": {
    "backlinks_backlinks": [
      "id",
      "items.anchor",
      "items.backlink_spam_score",
      "items.dofollow",
      "items.domain_from",
      "items.domain_from_country",
      "items.domain_from_ip",
      "items.domain_from_platform_type",
      "items.domain_from_rank",
      "items.domain_to",
      "items.first_seen",
      "items.is_broken",
      "items.is_new",
      "items.item_type",
      "items.last_seen",
      "items.links_count",
      "items.original",
      "items.page_from_encoding",
      "items.page_from_external_links",
      "items.page_from_internal_links",
      "items.page_from_language",
      "items.page_from_rank",
      "items.page_from_size",
      "items.page_from_status_code",
      "items.page_from_title",
      "items.prev_seen",
      "items.rank",
      "items.ranked_keywords_info.page_from_keywords_count_top_10",
      "items.ranked_keywords_info.page_from_keywords_count_top_100",
      "items.ranked_keywords_info.page_from_keywords_count_top_3",
      "items.semantic_location",
      "items.text_post",
      "items.text_pre",
      "items.tld_from",
      "items.type",
      "items.url_from",
      "items.url_from_https",
      "items.url_to",
      "items.url_to_https",
      "items.url_to_spam_score",
      "items.url_to_status_code",
      "status_code",
      "status_message"
    ],
    ...
  }
}

Nested Field Support

The configuration supports nested field paths using dot notation:

  • "rating.value" - Access the value field within the rating object

  • "items.demography.age.keyword" - Access deeply nested fields

  • "meta.description" - Access nested object properties

Field Discovery

To discover available fields for any tool:

  1. Run the tool without field configuration to see the full response

  2. Identify the fields you need from the API response

  3. Add those field paths to your configuration file

Creating Your Own Configuration

  1. Copy the example file:

cp field-config.example.json my-config.json
  1. Modify the field selections based on your needs

  2. Use your custom configuration:

npx dataforseo-mcp-server http --configuration my-config.json

What endpoints/APIs do you want us to support next?

We're always looking to expand the capabilities of this MCP server. If you have specific DataForSEO endpoints or APIs you'd like to see supported, please:

  1. Check the DataForSEO API Documentation to see what's available

  2. Open an issue in our GitHub repository with:

    • The API/endpoint you'd like to see supported;

    • A brief description of your use case;

    • Describe any specific features you'd like to see implemented.

Your feedback helps us prioritize which APIs to support next!

Resources

Available Tools

76 tools
ai_optimization_keyword_data_locations_and_languagesB

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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 it's a 'utility tool' to 'get list', which implies a read-only operation, but doesn't clarify aspects like whether it requires authentication, has rate limits, returns structured data, or any error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the key information: it's a utility tool for a specific purpose. There's no wasted text, and it directly communicates the essential function. However, the misspelling 'availible' slightly detracts from polish, but doesn't hinder understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, no annotations, and no output schema, the description provides a basic understanding of its purpose and context. However, it lacks details on what the output looks like (e.g., format of the list, example values), which would be helpful for an AI agent to use it effectively. The simplicity of the tool means the description is adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100% (as there are no parameters to describe). The description doesn't need to add parameter semantics, so it meets the baseline expectation. No additional value is required, and it doesn't contradict or confuse the parameter-less nature.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Utility tool for ai_keyword_data_search_volume to get list of availible locations and languages'. It specifies the verb ('get list'), resource ('locations and languages'), and context ('for ai_keyword_data_search_volume'), making the purpose understandable. However, it doesn't explicitly differentiate from its sibling 'ai_optimization_llm_mentions_locations_and_languages', which appears to serve a similar utility function for a different parent tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning it's a utility tool 'for ai_keyword_data_search_volume', suggesting it should be used in conjunction with that specific sibling tool. However, it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., other location/language tools in the list) or any prerequisites. The context is clear but lacks detailed alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_keyword_data_search_volumeC

This endpoint provides search volume data for your target keywords, reflecting their estimated usage in AI LLMs

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesKeywords. The maximum number of keywords you can specify: 1000
location_nameNofull name of the location, example: 'United Kingdom', 'United States'United States
language_codeYesSearch engine language code (e.g., 'en')

TDQS

C2.9/5.0
Behavior2/5

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 mentions the data is 'estimated usage in AI LLMs' which adds some context about the data source, but doesn't describe rate limits, authentication requirements, response format, pagination, or whether this is a read-only operation. For a data retrieval tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point. It's appropriately sized for a data retrieval tool, 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with 100% schema coverage but no annotations and no output schema, the description provides the basic purpose but leaves significant gaps. It doesn't explain what the return data looks like, any limitations or constraints, or how this tool differs from similar keyword search volume tools. The description is minimally adequate but incomplete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all three parameters. The description doesn't add any additional meaning about the parameters beyond what's in the schema. It doesn't explain what 'search volume data' specifically includes or how the AI LLM usage estimation works. 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.

Purpose4/5

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 search volume data for your target keywords' with the specific context of 'reflecting their estimated usage in AI LLMs'. It uses a specific verb ('provides') and resource ('search volume data'), but doesn't explicitly differentiate from sibling tools like 'keywords_data_google_ads_search_volume' which might serve similar functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention any prerequisites, exclusions, or specific contexts where this tool is preferred over sibling tools like 'keywords_data_google_ads_search_volume' or other keyword-related tools in the list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_mentions_aggregated_metricsC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesArray of target objects to search for LLM mentions. Each object must contain either 'domain' or 'keyword'. Maximum number of targets: 1000
location_nameNofull name of the location, example: 'United Kingdom', 'United States'
language_codeNoSearch engine language code (e.g., 'en')
platformNoPlatform to search for LLM mentions
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool
internal_list_limitNoInternal parameter to limit the number of items processed. Not exposed to end-users.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but lacks behavioral details. It doesn't disclose rate limits, authentication needs, data freshness, or what 'aggregated metrics' entails (e.g., counts, trends). The mention of 'maximum number of targets: 1000' in the schema is helpful but not in the description, leaving key constraints unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently states the core function. It's front-loaded with the main purpose, though it could be more structured with additional context. No wasted words, but slightly under-specified for a complex tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'aggregated metrics' returns, usage constraints, or how it differs from siblings. Given the complexity and lack of structured support, more detail is needed to guide an agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value by mentioning the 'target array' but doesn't explain parameter interactions or semantics beyond what the schema provides. Baseline 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'provides aggregated metrics for mentions of the keywords or domains specified in the target array', which clarifies it's a read operation returning aggregated data. However, it doesn't differentiate from sibling tools like 'ai_optimization_llm_mentions_search' or 'ai_optimization_llm_mentions_cross_aggregated_metrics', leaving the specific scope vague compared to alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings is provided. The description mentions the 'target array' but doesn't specify use cases, prerequisites, or exclusions. Without this, an agent might struggle to choose between similar LLM mentions tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_mentions_cross_aggregated_metricsC

This endpoint provides aggregated metrics grouped by custom keys for mentions of the keywords or domains specified in the target array of the request

ParametersJSON Schema
NameRequiredDescriptionDefault
targetsYesarray of objects containing target entities with aggregation keys. you can specify up to 10, but not less than 2
location_nameNofull name of the location, example: 'United Kingdom', 'United States'
language_codeNoSearch engine language code (e.g., 'en')
platformNoPlatform to search for LLM mentions
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool
internal_list_limitNoInternal parameter to limit the number of items processed. Not exposed to end-users.

TDQS

C2.6/5.0
Behavior2/5

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 mentions aggregation and grouping but fails to detail critical aspects like rate limits, authentication needs, data freshness, error handling, or what the output format looks like. This leaves significant gaps for an agent to understand 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core function. It avoids unnecessary words and gets straight to the point, though it could be slightly more structured by separating key concepts like aggregation and targeting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 insufficient. It lacks details on output format, error conditions, usage examples, and how it differs from siblings, making it incomplete for an agent to use effectively without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 minimal value by hinting at 'custom keys' and 'target array', but it doesn't explain parameter interactions or provide examples beyond what's in the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool provides aggregated metrics for mentions of keywords or domains, which gives a general purpose. However, it's vague about what 'aggregated metrics' specifically entail (e.g., counts, trends, volumes) and doesn't clearly distinguish it from sibling tools like 'ai_optimization_llm_mentions_aggregated_metrics' or 'ai_optimization_llm_mentions_search', leaving ambiguity in its exact function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to use this tool versus alternatives. The description mentions grouping by custom keys and using a target array, but it doesn't specify scenarios, prerequisites, or compare it to sibling tools, offering minimal context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_mentions_filtersC

This endpoint provides all the necessary information about filters that can be used with AI Optimization LLM Mentions API endpoints

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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 if this is a read-only operation, whether it requires authentication, has rate limits, or what the output format might be (e.g., JSON list of filters). The phrase 'provides all the necessary information' is vague and doesn't add concrete behavioral context beyond a basic informational purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently states the tool's purpose without unnecessary words. It's front-loaded with the key information, though it could be slightly more structured by explicitly mentioning it's a metadata or reference tool. There's no waste, but minor improvements in specificity could elevate it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 0 parameters, 100% schema coverage, and no output schema, the description is minimally adequate. It identifies the tool as informational about filters for a specific API set, but lacks details on output format, error handling, or integration with sibling tools. For a tool with no inputs, it's complete enough to understand the basic intent, but could better address behavioral aspects and usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, avoiding redundancy. However, it could marginally improve by noting the lack of inputs, but this isn't required for a high score given the schema's completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool provides 'all the necessary information about filters that can be used with AI Optimization LLM Mentions API endpoints', which clarifies it's about filter information for a specific API category. However, it's somewhat vague about what 'information' entails (e.g., filter types, usage examples, or metadata) and doesn't explicitly differentiate from sibling tools like 'ai_optimization_llm_mentions_search' or 'ai_optimization_llm_mentions_aggregated_metrics', which might also involve filters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisites (e.g., needing to know filter options before using search tools), exclusions, or compare it to similar tools like 'dataforseo_labs_available_filters' or 'domain_analytics_technologies_available_filters' in the sibling list, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_mentions_locations_and_languagesB

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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' a list, implying a read-only operation, but does not specify whether it requires authentication, has rate limits, returns structured data, or involves any side effects. For a utility tool with zero annotation coverage, this is a significant gap in transparency about 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with key information ('utility tool for ai_llm_mentions to get list'), making it easy to understand quickly, and every part of the sentence contributes to clarifying the tool's role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, no annotations, and no output schema, the description provides basic context but is incomplete. It specifies the tool's purpose and context but lacks details on return format, error handling, or integration with sibling tools. For a utility tool in a complex environment with many siblings, more guidance on output and usage would enhance completeness, though the simplicity of the tool mitigates some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description does not mention any parameters, which is appropriate since none exist. However, it could have clarified that no inputs are needed, but this omission is minor given the context, warranting a high score as it aligns with the schema's lack of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a 'utility tool for ai_llm_mentions to get list of available locations and languages,' specifying the verb ('get'), resource ('list of available locations and languages'), and context ('for ai_llm_mentions'). However, it does not explicitly differentiate from its sibling tools, such as 'ai_optimization_keyword_data_locations_and_languages,' which may serve a similar purpose for a different context, leaving room for ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('for ai_llm_mentions'), suggesting it should be used when working with AI LLM mentions data. However, it lacks explicit guidance on when to use this tool versus alternatives, such as 'serp_locations' or other location-related tools in the sibling list, and does not mention any prerequisites or exclusions, leaving usage decisions partially inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_mentions_top_domainsC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesArray of target objects to search for LLM mentions. Each object must contain either 'domain' or 'keyword'. Maximum number of targets: 1000
location_nameNofull name of the location, example: 'United Kingdom', 'United States'
language_codeNoSearch engine language code (e.g., 'en')
platformNoPlatform to search for LLM mentions
links_scopeNospecifies which links will be used to extract domains and aggregation
initial_dataset_filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool
items_list_limitNomaximum number of results in the items array, min value is 1, max value is 10
internal_list_limitNomaximum number of elements within internal arrays, min value is 1, max value is 10

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions aggregation and grouping by domains but fails to disclose critical behavioral traits: whether this is a read-only operation, what permissions might be needed, rate limits, pagination behavior, or what the output format looks like (especially problematic since there's no output schema). For a complex tool with 8 parameters, this 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently states the core function. It's appropriately front-loaded with the main purpose. However, it could be more structured by explicitly mentioning it's for analyzing LLM mentions data, but given the tool name includes 'ai_optimization_llm_mentions', this is reasonably concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, no output schema, multiple sibling alternatives), the description is inadequate. It doesn't explain what 'LLM mentions' are in this context, what metrics are aggregated, how results are sorted/limited, or provide any examples of use cases. For a tool that appears to perform data analysis with multiple filtering options, more context is needed to guide proper usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 8 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema - it doesn't explain how 'target' objects relate to the aggregation, what 'top domains' means in practice, or provide examples of typical parameter combinations. With high schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool provides 'aggregated LLM mentions metrics grouped by the most frequently mentioned domains', which gives a general purpose but lacks specificity. It mentions the verb 'provides' and resource 'metrics', but doesn't clearly differentiate from sibling tools like 'ai_optimization_llm_mentions_aggregated_metrics' or 'ai_optimization_llm_mentions_top_pages'. The purpose is vague about what 'top domains' means operationally.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With multiple sibling tools in the 'ai_optimization_llm_mentions' family (e.g., 'ai_optimization_llm_mentions_aggregated_metrics', 'ai_optimization_llm_mentions_search', 'ai_optimization_llm_mentions_top_pages'), the description offers no context about when this domain-focused aggregation is appropriate versus other mention analysis tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_mentions_top_pagesC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesArray of target objects to search for LLM mentions. Each object must contain either 'domain' or 'keyword'. Maximum number of targets: 1000
location_nameNofull name of the location, example: 'United Kingdom', 'United States'
language_codeNoSearch engine language code (e.g., 'en')
platformNoPlatform to search for LLM mentions
links_scopeNospecifies which links will be used to extract domains and aggregation
initial_dataset_filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["ai_search_volume",">","1000"] The full list of possible filters is available in 'ai_optimization_llm_mentions_filters' tool
items_list_limitNomaximum number of results in the items array, min value is 1, max value is 10
internal_list_limitNomaximum number of elements within internal arrays, min value is 1, max value is 10

TDQS

C2.6/5.0
Behavior2/5

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 mentions 'aggregated metrics' but doesn't specify what metrics are returned, how pagination works (despite 'items_list_limit' and 'internal_list_limit' parameters), or any rate limits or authentication requirements. For a tool with 8 parameters and no output schema, this is inadequate for understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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 is front-loaded with the main action ('provides aggregated LLM mentions metrics'), making it easy to parse. However, it could be more structured by breaking down key aspects, but it avoids verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, no output schema, and rich sibling context), the description is incomplete. It doesn't explain the return format, what 'LLM mentions' entail, or how to interpret results. With no output schema and minimal behavioral context, the agent lacks sufficient information to use the tool effectively beyond basic parameter input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 additional meaning beyond the schema, as it doesn't explain how parameters like 'target', 'initial_dataset_filters', or 'links_scope' interact to affect the output. Baseline 3 is appropriate since the schema does the heavy lifting, but the description fails to compensate with contextual insights.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'provides aggregated LLM mentions metrics grouped by the most frequently mentioned pages for the specified target', which gives a general purpose but lacks specificity. It mentions 'aggregated metrics' and 'grouped by pages' but doesn't clarify what specific metrics are aggregated or what 'LLM mentions' refers to in practice. Compared to siblings like 'ai_optimization_llm_mentions_top_domains', it distinguishes by focusing on 'pages' rather than 'domains', but the distinction is minimal without more detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisites, exclusions, or specific contexts for usage. Given the complex sibling tools like 'ai_optimization_llm_mentions_search' or 'ai_optimization_llm_mentions_aggregated_metrics', the lack of differentiation leaves the agent guessing about appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_modelsC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
llm_typeYestype of llm. Must be one of: 'claude', 'gemini', 'chat_gpt', 'perplexity'

TDQS

C2.6/5.0
Behavior2/5

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 states this is a 'utility tool' that 'gets list' which implies a read-only operation, but doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently states the tool's purpose. It's appropriately sized for a simple lookup tool with one parameter. However, it could be more front-loaded with clearer purpose and could benefit from a second sentence about usage context or output format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 incomplete. It doesn't explain what the output looks like (list format, structure, what 'locations and languages' means), doesn't mention any prerequisites or authentication needs, and doesn't clarify the relationship with the mentioned 'ai_optimization_llm_response' tool. Given the complexity of understanding what locations/languages are being listed and for what purpose, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with one parameter 'llm_type' fully documented in the schema. The description doesn't add any parameter information beyond what's in the schema - it doesn't explain why this parameter is needed or how it affects the results. With high schema coverage, the baseline is 3 even without additional param details in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'gets list of available locations and languages' which is a clear purpose, but it's vague about what exactly is being listed (locations/languages for what?). It mentions 'ai_optimization_llm_response' as context but doesn't fully specify the resource scope. It doesn't clearly distinguish from sibling tools like 'ai_optimization_llm_mentions_locations_and_languages' which appears similar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance - it mentions this is a 'utility tool for ai_optimization_llm_response' which implies some relationship, but doesn't specify when to use this tool versus alternatives. No explicit when/when-not guidance or comparison to sibling tools is provided, leaving the agent to guess about appropriate usage contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_optimization_llm_responseC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
llm_typeYestype of llm. Must be one of: 'claude', 'gemini', 'chat_gpt', 'perplexity'
user_promptYesPrompt for the AI model. The question or task you want to send to the AI model. You can specify up to 500 characters in the user_prompt field
model_nameYesname of the AI model. consists of the actual model name and version name. if not sure which model to use, first call the ai_optimization_llm_models tool to get list of available models for the specified llm_type
temperatureNorandomness of the AI response optional field higher values make output more diverse; lower values make output more focused;
top_pNodiversity of the AI response, optional field, controls diversity of the response by limiting token selection;
web_searchNoenable web search for current information. When enabled, the AI model can access and cite current web information;

TDQS

C2.9/5.0
Behavior2/5

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 states this 'retrieves' responses, implying a read-only operation, but doesn't clarify authentication requirements, rate limits, response format, error conditions, or whether this is a synchronous/async operation. The description is too minimal for a tool that interacts with external AI models.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point. It's appropriately sized for a tool with good schema documentation, though it could be slightly more informative 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'structured responses' means, doesn't mention response format or potential errors, and provides no context about the AI service being accessed. The schema handles parameter documentation well, but the description fails to compensate for missing behavioral and output information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 6 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema - it doesn't explain relationships between parameters, provide examples, or clarify dependencies. Baseline 3 is appropriate when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'retrieve structured responses from a specific AI model, based on the input parameters'. It specifies the verb ('retrieve'), resource ('structured responses'), and scope ('from a specific AI model'), making it clear this is a query/response tool. However, it doesn't explicitly differentiate from sibling tools like 'ai_optimization_llm_models' which lists models rather than getting responses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. While the input schema's description for 'model_name' mentions calling 'ai_optimization_llm_models' first if unsure, this is not in the tool description itself. There's no mention of prerequisites, constraints, or comparison with other AI-related tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

content_analysis_summaryC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYestarget keyword Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes;
keyword_fieldsNotarget keyword fields and target keywords use this parameter to filter the dataset by keywords that certain fields should contain; you can indicate several fields; Note: to match an exact phrase instead of a stand-alone keyword, use double quotes and backslashes; example: { "snippet": "\"logitech mouse\"", "main_title": "sale" }
page_typeNotarget page types
initial_dataset_filtersNoinitial dataset filtering parameters initial filtering parameters that apply to fields in the Search endpoint; you can add several filters at once (8 filters maximum); you should set a logical operator and, or between the conditions; the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like,not_like, has, has_not, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters; example: ["domain","<>", "logitech.com"] [["domain","<>","logitech.com"],"and",["content_info.connotation_types.negative",">",1000]] [["domain","<>","logitech.com"]], "and", [["content_info.connotation_types.negative",">",1000], "or", ["content_info.text_category","has",10994]]
positive_connotation_thresholdNopositive connotation threshold specified as the probability index threshold for positive sentiment related to the citation content if you specify this field, connotation_types object in the response will only contain data on citations with positive sentiment probability more than or equal to the specified value
sentiments_connotation_thresholdNosentiment connotation threshold specified as the probability index threshold for sentiment connotations related to the citation content if you specify this field, sentiment_connotations object in the response will only contain data on citations where the probability per each sentiment is more than or equal to the specified value
internal_list_limitNomaximum number of elements within internal arrays you can use this field to limit the number of elements within the following arrays

TDQS

C2/5.0
Behavior1/5

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 only states what the tool does without revealing any behavioral traits such as whether it's a read-only operation, rate limits, authentication needs, or what the output looks like. For a tool with 7 parameters and no output schema, this lack of transparency is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the tool's function without unnecessary words. It is front-loaded and to the point, though it could be more informative. There is no wasted verbiage, making it concise, but it lacks depth which affects its overall helpfulness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity with 7 parameters, nested objects, no annotations, and no output schema, the description is incomplete. It does not explain the return values, behavioral aspects, or how to interpret results. For a tool that likely returns aggregated citation data, more context is needed to guide effective use, making this description insufficient for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 input schema itself. The description does not add any additional meaning or context beyond what the schema provides, such as explaining how parameters interact or typical use cases. Since the schema handles the heavy lifting, a baseline score of 3 is appropriate, as the description neither compensates nor detracts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'provide you with an overview of citation data available for the target keyword,' which is a tautology that essentially restates the tool name 'content_analysis_summary.' It lacks a specific verb and resource, and does not differentiate from sibling tools like 'content_analysis_search' or 'content_analysis_phrase_trends.' The purpose is vague and does not clarify what 'citation data' entails or how it differs from other content analysis tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 does not mention any prerequisites, context for usage, or exclusions. With many sibling tools available, such as 'content_analysis_search' and 'content_analysis_phrase_trends,' there is no indication of when this summary tool is preferred over others, leading to potential misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_available_filtersC

Here you will find all the necessary information about filters that can be used with DataForSEO Labs API endpoints.

Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoThe name of the tool to get filters for

TDQS

C2.4/5.0
Behavior2/5

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 that filters are 'associated with a certain object in the result array,' hinting at output structure, but doesn't describe key traits like whether this is a read-only operation, potential rate limits, authentication needs, or error handling. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and relatively concise, but it's not front-loaded with critical information. The first sentence is vague, and the second adds a useful but buried detail about filter association. While not wasteful, it could be more structured to prioritize clarity and actionable insights.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a tool that likely returns filter metadata for API endpoints, with no annotations and no output schema, the description is incomplete. It lacks details on what the output contains (e.g., filter names, types, usage examples), how to interpret results, or any behavioral context. This makes it inadequate for effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter with 100% description coverage ('tool' as 'The name of the tool to get filters for'), so the schema does the heavy lifting. The description doesn't add any parameter-specific details beyond the schema, but with 0 parameters requiring extra semantics (only one well-documented parameter), a baseline of 4 is appropriate as it doesn't need to compensate for gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it provides 'information about filters that can be used with DataForSEO Labs API endpoints,' which is a tautology of the tool name 'dataforseo_labs_available_filters.' It doesn't specify a clear verb (e.g., 'retrieve' or 'list') or distinguish from siblings like 'domain_analytics_technologies_available_filters' or 'ai_optimization_llm_mentions_filters.' The purpose is vague beyond restating the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a note about filters being 'associated with a certain object in the result array,' which implies some context for usage, but it doesn't explicitly state when to use this tool versus alternatives (e.g., other filter-related tools in the sibling list). No guidance on prerequisites, timing, or exclusions is provided, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_bulk_keyword_difficultyC

This endpoint will provide you with the Keyword Difficulty metric for a maximum of 1,000 keywords in one API request. Keyword Difficulty stands for the relative difficulty of ranking in the first top-10 organic results for the related keyword. Keyword Difficulty in DataForSEO API responses indicates the chance of getting in top-10 organic results for a keyword on a logarithmic scale from 0 to 100.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYestarget keywords required field UTF-8 encoding maximum number of keywords you can specify in this array: 1000
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains the metric's meaning (logarithmic scale 0-100) and bulk limits, but lacks critical behavioral details: it doesn't specify if this is a read-only operation, whether it requires authentication, rate limits, error handling, or what the output format looks like. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured in two sentences: the first states the tool's function and limits, the second explains the metric. There's no unnecessary fluff, and key information is front-loaded. However, it could be slightly more efficient by integrating the metric explanation more tightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (bulk keyword analysis), no annotations, and no output schema, the description is partially complete. It covers the core purpose and metric definition but misses behavioral context (e.g., safety, performance) and output details. It's adequate as a starting point but requires the agent to infer or seek additional information for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 (keywords, location_name, language_code). The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain keyword formatting, location/language implications, or default behaviors. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 Difficulty metric' for up to 1,000 keywords. It specifies the verb ('provide') and resource ('Keyword Difficulty metric'), and explains what the metric represents. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_overview' or 'keywords_data_google_ads_search_volume', which might offer related keyword metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mentions the bulk capability (1,000 keywords) but doesn't compare it to other keyword analysis tools in the sibling list, such as those for search volume or historical data. There's no mention of prerequisites, use cases, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_bulk_traffic_estimationC

This endpoint will provide you with estimated monthly traffic volumes for up to 1,000 domains, subdomains, or webpages. Along with organic search traffic estimations, you will also get separate values for paid search, featured snippet, and local pack results.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetsYestarget domains, subdomains, and webpages. you can specify domains, subdomains, and webpages in this field; domains and subdomains should be specified without https:// and www.; pages should be specified with absolute URL, including https:// and www.; you can set up to 1000 domains, subdomains or webpages
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
item_typesNodisplay results by item type indicates the type of search results included in the response

TDQS

C2.9/5.0
Behavior2/5

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 mentions the tool provides 'estimated monthly traffic volumes' and lists traffic types (organic, paid, featured snippet, local pack), but doesn't disclose important behavioral aspects like rate limits, data freshness, accuracy limitations, authentication requirements, or whether this is a read-only operation. The description is insufficient for a tool with 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences that convey the core functionality and traffic breakdown. It's appropriately sized without unnecessary elaboration, though it could be slightly more front-loaded by mentioning the bulk capability earlier. Every sentence contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the output looks like (structure, units, confidence intervals), doesn't mention performance characteristics (speed, limitations), and provides minimal behavioral context. The description should do more to compensate for the lack of structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 doesn't add any parameter-specific information beyond what's in the schema - it mentions 'domains, subdomains, or webpages' which aligns with the 'targets' parameter but provides no additional semantic context. 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.

Purpose4/5

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 estimated monthly traffic volumes for up to 1,000 domains, subdomains, or webpages' with specific traffic types listed. It uses a specific verb ('provide') and resource ('traffic volumes'), but doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_historical_rank_overview' that might also provide traffic-related data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. While it mentions the tool handles 'up to 1,000 domains, subdomains, or webpages,' it doesn't indicate when bulk estimation is preferable over individual domain tools, nor does it reference any sibling tools for comparison. There are no usage prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_competitors_domainC

This endpoint will provide you with a full overview of ranking and traffic data of the competitor domains from organic and paid search. In addition to that, you will get the metrics specific to the keywords both competitor domains and your domain rank for within the same SERP.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYestarget domain
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["metrics.organic.count",">",50] [["metrics.organic.pos_1","<>",0],"and",["metrics.organic.impressions_etv",">=","10"]] [[["metrics.organic.count",">=",50],"and",["metrics.organic.pos_1","in",[1,5]]], "or", ["metrics.organic.etv",">=","100"]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter default rule: ["relevance,desc"] example: ["relevance,desc","keyword_info.search_volume,desc"]
exclude_top_domainsNoindicates whether to exclude world's largest websites optional field default value: false set to true if you want to get highly-relevant competitors excluding the top websites
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result
item_typesNodisplay results by item type indicates the type of search results included in the response

TDQS

C2.9/5.0
Behavior2/5

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. While it mentions the type of data returned (ranking, traffic, keyword metrics), it lacks critical behavioral details such as whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or pagination behavior. For a complex tool with 11 parameters, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the core functionality without unnecessary details. It's appropriately front-loaded with the main purpose. While it could potentially be split for clarity, it avoids redundancy and stays focused on the tool's value proposition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (11 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't address behavioral aspects like safety, performance, or error handling, and provides no guidance on interpreting results. For a tool that likely returns rich competitive analysis data, the description should offer more context about the output structure and typical use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema—it doesn't explain parameter relationships, provide usage examples, or clarify complex parameters like 'filters' and 'order_by.' 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides 'a full overview of ranking and traffic data of the competitor domains from organic and paid search' and 'metrics specific to the keywords both competitor domains and your domain rank for within the same SERP.' This is a specific verb+resource combination (analyze competitor domains and keyword metrics). However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_serp_competitors' or 'backlinks_competitors,' which may offer overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 many sibling tools in the 'dataforseo_labs_google_' and 'backlinks_' categories, there's no mention of specific use cases, prerequisites, or comparisons to help the agent choose appropriately. The description only states what the tool does, not when it should be selected.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_domain_intersectionB

This endpoint will provide you with the keywords for which both specified domains rank within the same SERP. You will get search volume, competition, cost-per-click and impressions data on each intersecting keyword. Along with that, you will get data on the first and second domain's SERP element discovered for this keyword, as well as the estimated traffic volume and cost of ad traffic.

ParametersJSON Schema
NameRequiredDescriptionDefault
target1Yestarget domain 1
target2Yestarget domain 2
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_data.keyword_info.search_volume","in",[100,1000]] [["first_domain_serp_element.etv",">",0],"and",["first_domain_serp_element.description","like","%goat%"]] [["keyword_data.keyword_info.search_volume",">",100],"and",[["first_domain_serp_element.description","like","%goat%"],"or",["second_domain_serp_element.type","=","organic"]]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["keyword_data.keyword_info.competition,desc"] default rule: ["keyword_data.keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_data.keyword_info.search_volume,desc","keyword_data.keyword_info.cpc,desc"]
intersectionsNodomain intersections in SERP optional field if you set intersections to true, you will get the keywords for which both target domains specified as target1 and target2 have results within the same SERP; the corresponding SERP elements for both domains will be provided in the results array Note: this endpoint will not provide results if the number of intersecting keywords exceeds 10 million if you specify intersections: false, you will get the keywords for which the domain specified as target1 has results in SERP, and the domain specified as target2 doesn’t; thus, the corresponding SERP elements and other data will be provided for the domain specified as target1only default value: true
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result
item_typesNodisplay results by item type indicates the type of search results included in the response

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the data returned (e.g., search volume, traffic estimates) but fails to disclose critical behavioral traits: it does not specify if this is a read-only or mutating operation, rate limits, authentication needs, or error conditions. The schema hints at a 10-million keyword limit, but the description does not surface this, leaving gaps in transparency for a complex tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by details on returned data. It uses two sentences efficiently, with no redundant information. However, it could be slightly more structured by separating usage context from data details, but overall it is concise and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, no annotations, no output schema), the description is inadequate. It explains what the tool does but lacks context on behavioral aspects (e.g., safety, performance), output structure, or error handling. Without annotations or an output schema, the description should compensate more to guide effective use, but it falls short, leaving significant gaps for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 12 parameters thoroughly. The description adds no specific parameter semantics beyond implying the use of 'target1' and 'target2' for domains. It does not explain parameter interactions or provide examples beyond what the schema offers, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 keywords for which both specified domains rank within the same SERP.' It specifies the verb ('provide'), resource ('keywords'), and scope ('both specified domains rank within the same SERP'), distinguishing it from sibling tools like 'dataforseo_labs_google_keywords_for_site' or 'dataforseo_labs_google_page_intersection' by focusing on domain intersection in SERP rankings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for comparing two domains' keyword rankings and provides some context about the data returned (e.g., search volume, SERP elements). However, it lacks explicit guidance on when to use this tool versus alternatives like 'dataforseo_labs_google_competitors_domain' or 'dataforseo_labs_google_ranked_keywords', and does not mention prerequisites or exclusions, such as the 10-million keyword limit noted in the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_domain_rank_overviewC

This endpoint will provide you with ranking and traffic data from organic and paid search for the specified domain. You will be able to review the domain ranking distribution in SERPs as well as estimated monthly traffic volume for both organic and paid results.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYestarget domain
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool provides data but doesn't disclose behavioral traits such as whether it's a read-only operation, requires authentication, has rate limits, or involves data freshness/latency. The description is vague about what 'estimated monthly traffic volume' entails and doesn't mention potential costs or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that directly state the tool's function. It's front-loaded with the core purpose and avoids unnecessary details. However, it could be slightly more structured by explicitly separating organic vs. paid data aspects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of SEO/ranking data and lack of annotations or output schema, the description is incomplete. It doesn't explain the format or structure of returned data (e.g., metrics, timeframes), potential errors, or how to interpret 'ranking distribution in SERPs.' For a data retrieval tool with no output schema, more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 four parameters thoroughly. The description adds no parameter-specific information beyond implying the 'target' parameter is a domain. It doesn't explain how parameters interact or affect results, so it meets the baseline but adds minimal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 ranking and traffic data from organic and paid search for the specified domain.' It specifies the verb ('provide') and resource ('ranking and traffic data'), and mentions the domain scope. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_historical_rank_overview' or 'dataforseo_labs_google_ranked_keywords', which likely have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mentions what data is provided but doesn't specify use cases, prerequisites, or comparisons to sibling tools. For example, it doesn't clarify if this is for current vs. historical data or how it differs from other domain ranking tools in the list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_historical_keyword_dataB

This endpoint provides Google historical keyword data for specified keywords, including search volume, cost-per-click, competition values for paid search, monthly searches, and search volume trends. You can get historical keyword data since August, 2021, depending on keywords along with location and language combination

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYeskeywords required field The maximum number of keywords you can specify: 700 The maximum number of characters for each keyword: 80 The maximum number of words for each keyword phrase: 10 the specified keywords will be converted to lowercase format, data will be provided in a separate array note that if some of the keywords specified in this array are omitted in the results you receive, then our database doesn't contain such keywords and cannot return data on them you will not be charged for the keywords omitted in the results
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers limited behavioral insight. It mentions historical data availability constraints and that results may omit keywords not in the database, but doesn't disclose rate limits, authentication requirements, cost implications (though schema hints at charging), error handling, or response format. For a data retrieval tool with no annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: first states purpose and data points, second adds temporal scope and context parameters. It avoids redundancy and is appropriately sized, though could be slightly more front-loaded by leading with the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a data-rich tool with historical constraints, the description is incomplete. It doesn't explain the return structure, data granularity (e.g., monthly/quarterly), how trends are represented, error cases, or usage limits. The schema covers parameters well, but overall context for effective tool use is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing detailed constraints for all three parameters. The description adds minimal value beyond schema: it mentions location and language combination but doesn't explain their interaction with historical data or provide additional context about parameter effects. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides 'Google historical keyword data for specified keywords' and lists specific data points like search volume, CPC, competition, monthly searches, and trends. It distinguishes from some siblings by focusing on historical data (e.g., vs. 'keyword_ideas' or 'keyword_overview'), but doesn't explicitly differentiate from all similar tools like 'google_historical_rank_overview' or 'google_historical_serp'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for historical keyword analysis since August 2021 with location/language context, but provides no explicit guidance on when to use this tool versus alternatives like 'google_keyword_overview' (current data) or 'google_historical_rank_overview' (rank data). It mentions data availability constraints ('depending on keywords'), but lacks clear when/when-not instructions or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_historical_rank_overviewC

This endpoint will provide you with historical data on rankings and traffic of the specified domain, such as domain ranking distribution in SERPs and estimated monthly traffic volume for both organic and paid results

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYestarget domain
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

C2.9/5.0
Behavior2/5

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 the tool provides 'historical data' and examples of data types, but lacks critical behavioral details: it doesn't specify if this is a read-only operation, potential rate limits, authentication requirements, data freshness, or error conditions. For a data retrieval tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main purpose and includes specific examples, making it easy to parse. However, it could be slightly more concise by avoiding the phrase 'such as' redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It adequately explains what the tool does but fails to address key contextual aspects: no guidance on usage versus siblings, no behavioral transparency (e.g., read-only status, rate limits), and no details on output format or error handling. For a tool with rich parameters and no structured safety hints, more comprehensive description is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain the 'target' domain format or clarify 'include_clickstream_data' implications). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, though the description could have enhanced understanding with practical examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 historical data on rankings and traffic of the specified domain' with specific examples like 'domain ranking distribution in SERPs and estimated monthly traffic volume for both organic and paid results'. It uses specific verbs ('provide') and resources ('historical data', 'rankings', 'traffic'), though it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_domain_rank_overview' 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.

Usage Guidelines2/5

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 (e.g., 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_historical_serp'), leaving the agent to infer usage context solely from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_historical_serpC

This endpoint will provide you with Google SERPs collected within the specified time frame. You will also receive a complete overview of featured snippets and other extra elements that were present within the specified dates. The data will allow you to analyze the dynamics of keyword rankings over time for the specified keyword and location.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYestarget keyword
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen

TDQS

C2.9/5.0
Behavior2/5

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 describes the data returned (SERPs, featured snippets, ranking dynamics) but doesn't mention important behavioral aspects like rate limits, authentication requirements, pagination, data freshness, or whether this is a read-only operation. The description is insufficient for a mutation-sensitive agent to assess risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in three sentences that progressively explain what data is provided, what extra elements are included, and how the data can be used. There's no wasted text, though it could be slightly more front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the output looks like (structure, format), doesn't address behavioral concerns like rate limits or authentication, and provides minimal guidance on usage versus alternatives. The agent would struggle to use this tool effectively without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all three parameters. The description adds marginal value by mentioning 'specified time frame' (though time parameters aren't in the schema) and reinforcing keyword/location focus, but doesn't provide additional syntax, format, or constraint details beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides Google SERPs collected within a specified time frame with analysis of featured snippets and ranking dynamics. It specifies the verb ('provide', 'analyze') and resource ('Google SERPs'), but doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_historical_keyword_data' or 'dataforseo_labs_google_historical_rank_overview' that might offer similar historical data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions analyzing keyword ranking dynamics over time for specific keywords and locations, which implies usage context. However, it provides no explicit guidance on when to use this tool versus alternatives like 'dataforseo_labs_google_historical_keyword_data' or 'serp_organic_live_advanced', nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_keyword_ideasC

The Keyword Ideas provides search terms that are relevant to the product or service categories of the specified keywords. The algorithm selects the keywords which fall into the same categories as the seed keywords specified in a POST array. As a result, you will get a list of relevant keyword ideas for up to 200 seed keywords. Along with each keyword idea, you will get its search volume rate for the last month, search volume trend for the previous 12 months, as well as current cost-per-click and competition values. Moreover, this endpoint supplies minimum, maximum and average values of daily impressions, clicks and CPC for each result.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYestarget keywords
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]],"and",["keyword_info.competition_level","=","LOW"]] [["keyword_info.search_volume",">",100],"and",[["keyword_info.cpc","<",0.5],"or",["keyword_info.high_top_of_page_bid","<=",0.5]]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter default rule: ["relevance,desc"] relevance is used as the default sorting rule to provide you with the closest keyword ideas. We recommend using this sorting rule to get highly-relevant search terms. Note that relevance is only our internal system identifier, so it can not be used as a filter, and you will not find this field in the result array. The relevance score is based on a similar principle as used in the Keywords For Keywords endpoint. note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["relevance,desc","keyword_info.search_volume,desc"]
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses some behavioral traits: it returns up to 200 seed keywords, includes metrics like search volume and CPC, and supports filtering and sorting. However, it omits critical details such as rate limits, authentication requirements, error handling, pagination behavior (beyond offset/limit), and whether it's a read-only or mutating operation. For a complex tool with 8 parameters, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise with three sentences, but it could be more front-loaded. The first sentence states the purpose, but the second and third detail output metrics without prioritizing critical information like limitations or key parameters. Some phrasing is verbose (e.g., 'Along with each keyword idea...'), and it lacks bullet points or structured formatting for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, no output schema), the description is incomplete. It covers the basic purpose and output metrics but fails to address behavioral aspects like rate limits, error conditions, or response format. Without annotations or an output schema, the agent lacks sufficient context to use the tool effectively, especially for a data-intensive operation like keyword analysis.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 minimal value beyond the schema: it implies the 'keywords' parameter is for seed keywords and mentions metrics like search volume and CPC, which relate to output rather than inputs. It does not clarify parameter interactions or provide usage examples, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 search terms that are relevant to the product or service categories of the specified keywords' and 'get a list of relevant keyword ideas.' It specifies the verb ('provides,' 'get') and resource ('keyword ideas'), but does not explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_suggestions' or 'dataforseo_labs_google_related_keywords,' which may have overlapping functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mentions the algorithm selects keywords based on categories of seed keywords, but does not specify use cases, prerequisites, or exclusions. With many sibling tools available (e.g., 'dataforseo_labs_google_keyword_suggestions'), this lack of differentiation leaves the agent without clear selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_keyword_overviewC

This endpoint provides Google keyword data for specified keywords. For each keyword, you will receive current cost-per-click, competition values for paid search, search volume, search intent, monthly searches

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYeskeywords required field The maximum number of keywords you can specify: 700 The maximum number of characters for each keyword: 80 The maximum number of words for each keyword phrase: 10 the specified keywords will be converted to lowercase format, data will be provided in a separate array note that if some of the keywords specified in this array are omitted in the results you receive, then our database doesn't contain such keywords and cannot return data on them you will not be charged for the keywords omitted in the results
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions what data is returned, it doesn't address important behavioral aspects: whether this is a read-only operation, potential costs/rate limits, data freshness, authentication requirements, or error conditions. The description is purely functional without operational context that would help an agent use it appropriately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise - a single sentence that efficiently lists the key data points returned. It's front-loaded with the core purpose and doesn't waste words. However, it could be slightly more structured by separating the tool's function from the data points returned for better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (keyword analysis tool with 4 parameters), no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, data structure, or what happens when keywords aren't found (though the schema mentions this). For a data retrieval tool with multiple parameters and no output schema, the description should provide more context about the response format and operational considerations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all 4 parameters. The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description. The description doesn't compensate or add value regarding parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 Google keyword data for specified keywords' and lists specific data points (cost-per-click, competition, search volume, intent, monthly searches). It distinguishes itself from siblings by focusing on keyword overview data rather than historical data, keyword ideas, or other specialized functions. However, it doesn't explicitly contrast with similar tools like 'keywords_data_google_ads_search_volume' or 'dataforseo_labs_google_historical_keyword_data'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 many sibling tools available (including 'keywords_data_google_ads_search_volume', 'dataforseo_labs_google_historical_keyword_data', 'dataforseo_labs_google_keyword_ideas'), there's no indication of when this 'overview' tool is appropriate versus those other keyword data tools. The description simply states what data is returned without contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_keywords_for_siteC

The Keywords For Site endpoint will provide you with a list of keywords relevant to the target domain. Each keyword is supplied with relevant, search volume data for the last month, cost-per-click, competition

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYestarget domain
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]], "and", ["keyword_info.competition_level","=","LOW"]][["keyword_info.search_volume",">",100], "and", [["keyword_info.cpc","<",0.5], "or", ["keyword_info.high_top_of_page_bid","<=",0.5]]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter default rule: ["relevance,desc"] example: ["relevance,desc","keyword_info.search_volume,desc"]
include_subdomainsNoInclude keywords from subdomains
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

C2.9/5.0
Behavior2/5

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 the type of data returned (search volume, CPC, competition) but doesn't cover important behavioral aspects like whether this is a read-only operation, rate limits, authentication requirements, data freshness (it mentions 'last month' but not update frequency), pagination behavior (implied by offset/limit but not explained), or error conditions. For a tool with 9 parameters and no annotations, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core functionality. It's appropriately sized and front-loaded with the main purpose. However, it could be slightly more structured by separating the purpose from the data details for better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the tool's behavioral characteristics, usage context, or output format. While the schema covers parameters well, the description fails to provide the broader context needed for an AI agent to use this tool effectively, especially given the complex sibling tool landscape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 9 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. It mentions the data fields returned (search volume, CPC, competition) which relate to output, not input parameters. Baseline 3 is appropriate when the schema does all the parameter documentation work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 a list of keywords relevant to the target domain' with specific data fields (search volume, cost-per-click, competition). It uses a specific verb ('provide') and resource ('keywords'), but doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_ideas' or 'dataforseo_labs_google_related_keywords' that might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 many sibling tools in the 'dataforseo_labs_google_' category (e.g., keyword_ideas, related_keywords, ranked_keywords), there's no indication of how this tool differs or when it's the appropriate choice. The description only states what it does, not when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_keyword_suggestionsB

The Keyword Suggestions provides search queries that include the specified seed keyword.

The algorithm is based on the full-text search for the specified keyword and therefore returns only those search terms that contain the keyword you set in the POST array with additional words before, after, or within the specified key phrase. Returned keyword suggestions can contain the words from the specified key phrase in a sequence different from the one you specify.

As a result, you will get a list of long-tail keywords with each keyword in the list matching the specified search term.

Along with each suggested keyword, you will get its search volume rate for the last month, search volume trend for the previous 12 months, as well as current cost-per-click and competition values. Moreover, this endpoint supplies minimum, maximum and average values of daily impressions, clicks and CPC for each result.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYestarget keyword
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]], "and", ["keyword_info.competition_level","=","LOW"]][["keyword_info.search_volume",">",100], "and", [["keyword_info.cpc","<",0.5], "or", ["keyword_info.high_top_of_page_bid","<=",0.5]]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order a comma is used as a separator example: ["keyword_info.competition,desc"] default rule: ["keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_info.search_volume,desc","keyword_info.cpc,desc"]
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

B3.1/5.0
Behavior3/5

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 does well by detailing what data is returned (search volume, trends, CPC, competition, impressions, clicks) and explaining the algorithm's matching behavior (keywords can contain seed with additional words in different sequences). However, it lacks critical behavioral information: no mention of rate limits, authentication requirements, potential costs, error conditions, or pagination behavior (despite having offset/limit parameters). For a tool with 8 parameters and no annotations, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but could be better structured. It uses 5 sentences to explain the tool's function, algorithm, and returned data. While each sentence adds value, the information isn't optimally front-loaded - the key purpose is clear in the first sentence, but important behavioral details are scattered. Some redundancy exists (e.g., 'returns only those search terms' and 'each keyword in the list matching' convey similar ideas). It's neither excessively verbose nor perfectly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no output schema, no annotations), the description is moderately complete. It covers the core functionality and return data well, but misses important contextual elements: no output format description, no error handling information, no rate limit or authentication context, and no guidance on when to use this versus sibling tools. For a data retrieval tool with filtering capabilities and no output schema, the description should provide more complete operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 8 parameters thoroughly. The description adds minimal parameter semantics beyond the schema - it mentions the 'seed keyword' (mapping to 'keyword' parameter) and implies filtering capabilities through the algorithm description, but doesn't provide additional context about parameter interactions or usage patterns. With high schema coverage, the baseline of 3 is appropriate as the description doesn't significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 search queries that include the specified seed keyword' and 'returns only those search terms that contain the keyword you set'. It specifies the verb ('provides', 'returns') and resource ('search queries', 'keyword suggestions'), making it clear this is a keyword suggestion generator. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_keyword_ideas' or 'dataforseo_labs_google_related_keywords', which likely serve similar purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance. It mentions the algorithm is 'based on full-text search' and returns 'long-tail keywords', but offers no explicit when-to-use instructions, no prerequisites, and no comparison to alternative tools. With many sibling tools available for keyword analysis, the agent receives no help in selecting this specific tool over others 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.

dataforseo_labs_google_page_intersectionA

This endpoint will provide you with the keywords for which specified pages rank within the same SERP. You will get search volume, competition, cost-per-click and impressions data on each intersecting keyword. Along with that, you will get data on SERP elements that specified pages rank for in search results, as well as the estimated traffic volume and cost of ad traffic. Page Intersection endpoint supports organic, paid, local pack and featured snippet results.

Find keywords several webpages rank for: If you would like to get the keywords several pages rank for, you need to specify webpages only in the pages object. This way, you will receive intersected ranked keywords for the specified URLs.

Find keywords your competitors rank for but you do not: If you would like to receive all keywords several pages rank for, but particular pages do not, you need to use the exclude_pages array as well. This way you will receive the keywords for which the URLs from the pages object rank for, but the URLs from the exclude_pages array do not

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesYespages array required field you can set up to 20 pages in this object the pages should be specified with absolute URLs (including http:// or https://) if you specify a single page here, we will return results only for this page; you can also use a wildcard ('*') character to specify the search pattern example: "example.com" search for the exact URL "example.com/eng/*" search for the example.com page and all its related URLs which start with '/eng/', such as "example.com/eng/index.html" and "example.com/eng/help/", etc. note: a wilcard should be placed after the slash ('/') character in the end of the URL, it is not possible to place it after the domain in the following way: https://dataforseo.com* use https://dataforseo.com/* instead
exclude_pagesNoURLs of pages you want to exclude optional field you can set up to 10 pages in this array if you use this array, results will contain the keywords for which URLs from the pages object rank, but URLs from exclude_pages array do not; note that if you specify this field, the results will be based on the keywords any URL from pages ranks for regardless of intersections between them. However, you can set intersection_mode to intersect and results will contain the keywords all URLs from pages rank for in the same SERP and URLs from exclude_pages do not. use a wildcard (‘*’) character to specify the search pattern example: "exclude_pages": [ "https://www.apple.com/iphone/*", "https://dataforseo.com/apis/*", "https://www.microsoft.com/en-us/industry/services/" ]
intersection_modeNoindicates whether to intersect keywords optional field use this field to intersect or merge results for the specified URLs possible values: union, intersect union – results are based on all keywords any URL from pages rank for; intersect – results are based on the keywords all URLs from pages rank for in the same SERP: by default, results are based on the intersect mode if you specify only pages array. If you specify exclude_pages as well, results are based on the union mode
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_data.keyword_info.search_volume","in",[100,1000]] [["intersection_result.1.etv",">",0],"and",["intersection_result.2.description","like","%goat%"]] [["keyword_data.keyword_info.search_volume",">",100],"and",[["intersection_result.1.description","like","%goat%"],"or",["intersection_result.2.type","=","organic"]]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["keyword_data.keyword_info.competition,desc"] default rule: ["keyword_data.keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["intersection_result.1.rank_group,asc","intersection_result.2.rank_absolute,asc"]
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result
item_typesNodisplay results by item type indicates the type of search results included in the response

TDQS

A4.1/5.0
Behavior4/5

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 effectively describes what the tool does (returns keyword intersection data with metrics), its scope (supports multiple SERP result types), and usage patterns (two main use cases). However, it lacks details on rate limits, authentication needs, or error handling, which are important for a complex tool with 12 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured into two clear use-case paragraphs, but it could be more front-loaded with a concise summary. Some sentences are verbose (e.g., 'Along with that, you will get data on SERP elements...'), and the text could be tightened without losing clarity. It earns its place by explaining usage but isn't optimally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, no annotations, no output schema), the description is moderately complete. It covers purpose and usage well but lacks details on output format, error conditions, or performance considerations. For a tool with rich input schema but no output schema, more information on what to expect in results would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, providing detailed documentation for all 12 parameters. The description adds minimal parameter-specific semantics, only briefly mentioning 'pages' and 'exclude_pages' in the context of use cases. Since the schema already does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 find keywords for which specified pages rank within the same SERP, providing detailed metrics like search volume, competition, CPC, and impressions. It distinguishes itself from sibling tools by focusing on page intersection analysis rather than individual keyword research or backlink analysis, as seen in tools like 'dataforseo_labs_google_keywords_for_site' or 'backlinks_page_intersection'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool, including two distinct use cases: finding keywords several webpages rank for (using the 'pages' array) and finding keywords competitors rank for but you do not (using 'exclude_pages'). It also mentions support for organic, paid, local pack, and featured snippet results, helping users understand its scope compared to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_ranked_keywordsB

This endpoint will provide you with the list of keywords that any domain or webpage is ranking for. You will also get SERP elements related to the keyword position, as well as impressions, monthly searches and other data relevant to the returned keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesdomain name or page url required field the domain name of the target website or URL of the target webpage; the domain name must be specified without https:// or www.; the webpage URL must be specified with https:// or www. Note: if you specify the webpage URL without https:// or www., the result will be returned for the entire domain rather than the specific page
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoArray of filter conditions and logical operators. Each filter condition is an array of [field, operator, value]. Maximum 8 filters allowed. Available operators: =, <>, <, <=, >, >=, in, not_in, like, not_like, ilike, not_ilike, regex, not_regex, match, not_match Logical operators: "and", "or" Examples: Simple filter: [["ranked_serp_element.serp_item.rank_group","<=",10]] With logical operator: [["ranked_serp_element.serp_item.rank_group","<=",10],"or",["ranked_serp_element.serp_item.type","<>","paid"]] Complex filter: [["keyword_data.keyword_info.search_volume","<>",0],"and",[["ranked_serp_element.serp_item.type","<>","paid"],"or",["ranked_serp_element.serp_item.is_malicious","=",false]]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["keyword_data.keyword_info.competition,desc"] default rule: ["ranked_serp_element.serp_item.rank_group,asc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_data.keyword_info.search_volume,desc","keyword_data.keyword_info.cpc,desc"]
include_subdomainsNoInclude keywords from subdomains
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result
item_typesNodisplay results by item type indicates the type of search results included in the response

TDQS

B3.1/5.0
Behavior2/5

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 mentions the tool returns 'SERP elements, impressions, monthly searches, and other data,' which gives some output context, but lacks critical behavioral details like rate limits, authentication requirements, pagination behavior (beyond offset/limit parameters), error conditions, or whether it's a read-only or mutating operation. This is inadequate for a tool with 10 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently states the tool's purpose and key output elements. It avoids redundancy and is appropriately front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no output schema, no annotations), the description is incomplete. It lacks behavioral transparency, usage guidelines, and any explanation of return values or error handling. The schema covers parameters well, but the description fails to compensate for missing annotations and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 10 parameters. The description adds no parameter-specific information beyond implying the target is a domain or webpage. Baseline 3 is appropriate when the schema does the heavy lifting, though the description could have clarified high-level parameter relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 list of keywords that any domain or webpage is ranking for.' It specifies the resource (keywords) and the action (list/retrieve), and distinguishes from siblings like 'dataforseo_labs_google_keyword_ideas' (keyword ideas) or 'dataforseo_labs_google_keyword_overview' (overview).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mentions no prerequisites, exclusions, or comparisons to sibling tools (e.g., 'dataforseo_labs_google_keywords_for_site' or 'dataforseo_labs_google_historical_keyword_data'), leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_relevant_pagesC

This endpoint will provide you with rankings and traffic data for the web pages of the specified domain. You will be able to review each page’s ranking distribution and estimated monthly traffic volume from both organic and paid searches.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYestarget domain
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["metrics.organic.count",">",50] [["metrics.organic.pos_1","<>",0],"and",["metrics.organic.impressions_etv",">=","10"]] [[["metrics.organic.count",">=",50],"and",["metrics.organic.pos_1","in",[1,5]]], "or", ["metrics.organic.etv",">=","100"]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to specify a sorting type example: ["metrics.paid.etv,asc"] Note: you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["metrics.organic.etv,desc","metrics.paid.count,asc"] default rule: ["metrics.organic.count,desc"]
exclude_top_domainsNoindicates whether to exclude world’s largest websites optional field default value: false set to true if you want to get highly-relevant competitors excluding the top websites
item_typesNodisplay results by item type indicates the type of search results included in the response
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

C2.9/5.0
Behavior2/5

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 mentions what data is returned (rankings and traffic) but fails to describe important behavioral aspects: whether this is a read-only operation, potential rate limits, authentication requirements, data freshness (real-time vs. historical), pagination behavior (implied by limit/offset but not explained), error conditions, or response format. For a tool with 11 parameters and no output schema, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences that clearly state the tool's purpose and what data it provides. There's no wasted language or redundancy. However, it could be slightly improved by front-loading the most critical information (e.g., starting with 'Get rankings and traffic data for domain pages') rather than beginning with 'This endpoint will provide you with...'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain the response structure, data formats, or what 'rankings and traffic data' actually means in practice. For a data analysis tool with extensive filtering and sorting capabilities, users need more context about what they'll receive and how to interpret it. The description fails to compensate for the lack of output schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 11 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema - it doesn't explain how parameters like 'filters' or 'order_by' relate to the returned rankings and traffic data, nor does it provide examples of typical parameter combinations. With high schema coverage, the baseline is 3, and the description doesn't add meaningful value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 rankings and traffic data for the web pages of the specified domain' and specifies what data is included ('ranking distribution and estimated monthly traffic volume from both organic and paid searches'). It distinguishes itself from sibling tools like 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_ranked_keywords' by focusing on page-level data rather than domain-level or keyword-level metrics. However, it doesn't explicitly name these alternatives for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, constraints, or scenarios where this tool is preferred over sibling tools like 'dataforseo_labs_google_ranked_keywords' (which might provide keyword-level data) or 'dataforseo_labs_google_domain_rank_overview' (which might provide domain-level summaries). The only implied usage is for analyzing domain page performance, but no explicit context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_serp_competitorsC

This endpoint will provide you with a list of domains ranking for the keywords you specify. You will also get SERP rankings, rating, estimated traffic volume, and visibility values the provided domains gain from the specified keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYeskeywords array required field the results will be based on the keywords you specify in this array UTF-8 encoding; the keywords will be converted to lowercase format; you can specify the maximum of 200 keywords
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters example: ["median_position","in",[1,10]] [["median_position","in",[1,10]],"and",["domain","not_like","%wikipedia.org%"]] [["domain","not_like","%wikipedia.org%"], "and", [["relevant_serp_items",">",0],"or",["median_position","in",[1,10]]]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order the comma is used as a separator example: ["avg_position,asc"] default rule: ["rating,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["avg_position,asc","etv,desc"]
include_subdomainsNoInclude keywords from subdomains
item_typesNodisplay results by item type indicates the type of search results included in the response

TDQS

C2.9/5.0
Behavior2/5

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 the tool provides a list of domains with metrics, but does not cover critical aspects such as whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or error handling. For a tool with 9 parameters and no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's output and key metrics. It is front-loaded with the core purpose and avoids unnecessary details. However, it could be slightly improved by structuring into two sentences for better readability (e.g., separating the list of metrics), but overall it is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 incomplete. It lacks information on behavioral traits, usage context, output format, and how parameters interact. While the schema covers parameter details, the description does not provide enough holistic context for an agent to confidently invoke the tool without additional inference or trial-and-error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 input schema itself. The description does not add any meaningful parameter-specific information beyond what the schema provides (e.g., it does not explain how 'keywords' relate to 'filters' or 'order_by'). With high schema coverage, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 a list of domains ranking for the keywords you specify' with additional metrics like SERP rankings, rating, traffic volume, and visibility. It specifies the verb ('provide') and resource ('domains ranking for keywords'), but does not explicitly differentiate from sibling tools like 'dataforseo_labs_google_competitors_domain' or 'dataforseo_labs_google_ranked_keywords', which appear related. This makes it clear but not fully sibling-distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 does not mention any prerequisites, exclusions, or specific contexts for application. With many sibling tools available (e.g., 'dataforseo_labs_google_competitors_domain', 'dataforseo_labs_google_ranked_keywords'), the lack of comparative guidance leaves the agent to infer usage based on tool names alone, which is insufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_subdomainsC

This endpoint will provide you with a list of subdomains of the specified domain, along with the ranking distribution across organic and paid search. In addition to that, you will also get the estimated traffic volume of subdomains based on search volume.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYestarget domain
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["metrics.organic.count",">",50] [["metrics.organic.pos_1","<>",0],"and",["metrics.organic.impressions_etv",">=","10"]] [[["metrics.organic.count",">=",50],"and",["metrics.organic.pos_1","in",[1,5]]],"or",["metrics.organic.etv",">=","100"]]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to specify a sorting type example: ["metrics.paid.etv,asc"] Note: you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["metrics.organic.etv,desc","metrics.paid.count,asc"] default rule: ["metrics.organic.count,desc"]
item_typesNodisplay results by item type indicates the type of search results included in the response
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

C2.9/5.0
Behavior2/5

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 mentions what data is returned (subdomains, ranking distribution, traffic estimates) but lacks critical behavioral details: whether this is a read-only operation, rate limits, authentication requirements, data freshness, or error conditions. For a tool with 10 parameters and no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise—two sentences that directly state the tool's core functionality. It's front-loaded with the primary purpose and avoids unnecessary elaboration. However, it could be slightly more structured by explicitly separating outputs (subdomains, ranking, traffic) for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no output schema, no annotations), the description is incomplete. It lacks information on return format, pagination, error handling, and usage context. Without annotations or output schema, the description should provide more behavioral and operational details to guide the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 10 parameters. The description adds no parameter-specific information beyond what's in the schema—it doesn't explain how 'target' relates to subdomains, or how 'filters' apply to the results. With high schema coverage, the baseline is 3, and the description doesn't compensate with additional semantic context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 a list of subdomains of the specified domain, along with the ranking distribution across organic and paid search' and 'estimated traffic volume of subdomains'. It specifies the verb ('provide'), resource ('subdomains'), and key outputs. However, it doesn't explicitly differentiate from sibling tools like 'dataforseo_labs_google_domain_rank_overview' or 'dataforseo_labs_google_competitors_domain', which might offer overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisites, limitations, or compare it to sibling tools like 'dataforseo_labs_google_domain_intersection' or 'dataforseo_labs_google_ranked_keywords'. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_google_top_searchesC

The Top Searches endpoint of DataForSEO Labs API can provide you with over 7 billion keywords from the DataForSEO Keyword Database. Each keyword in the API response is provided with a set of relevant keyword data with Google Ads metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen
limitNoMaximum number of keywords to return
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_info.search_volume",">",0] [["keyword_info.search_volume","in",[0,1000]], "and", ["keyword_info.competition_level","=","LOW"]][["keyword_info.search_volume",">",100], "and", [["keyword_info.cpc","<",0.5], "or", ["keyword_info.high_top_of_page_bid","<=",0.5]]]
order_byNoresuresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting type example: ["keyword_info.competition,desc"] default rule: ["keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["keyword_info.search_volume,desc","keyword_info.cpc,desc"]
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't mention whether this is a read-only operation, potential rate limits, authentication requirements, or what the API response looks like (e.g., pagination, error handling). The mention of 'over 7 billion keywords' hints at scale but doesn't clarify practical constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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 fluff and directly states what the tool does, though it could be slightly more structured by explicitly mentioning it's an API endpoint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like safety, performance, or output format, leaving significant gaps for an AI agent to understand how to use it effectively beyond basic parameter input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 7 parameters. The description adds no parameter-specific information beyond implying keyword data includes Google Ads metrics, which is already suggested by the tool name. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves keywords from a database with Google Ads metrics, specifying the resource (keywords) and key data provided. However, it doesn't differentiate from sibling tools like 'dataforseo_labs_google_keyword_ideas' or 'dataforseo_labs_google_related_keywords', which likely serve similar keyword discovery purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mentions it provides 'over 7 billion keywords' but doesn't explain how this differs from other keyword-related tools in the sibling list, such as those for keyword ideas, suggestions, or historical data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataforseo_labs_search_intentB

This endpoint will provide you with search intent data for up to 1,000 keywords. For each keyword that you specify when setting a task, the API will return the keyword's search intent and intent probability. Besides the highest probable search intent, the results will also provide you with other likely search intent(s) and their probability. Based on keyword data and search results data, our system has been trained to detect four types of search intent: informational, navigational, commercial, transactional.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYestarget keywords required field UTF-8 encoding maximum number of keywords you can specify in this array: 1000
language_codeNolanguage code required field Note: this endpoint currently supports the following languages only: ar, zh-TW, cs, da, nl, en, fi, fr, de, he, hi, it, ja, ko, ms, nb, pl, pt, ro, ru, es, sv, th, uk, vi, bg, hr, sr, sl, bsen

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it processes up to 1,000 keywords, returns intent types (informational, navigational, commercial, transactional) with probabilities, and is based on trained system data. However, it lacks details on rate limits, authentication needs, error handling, or response format, which are important for a tool with 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It front-loads the core functionality, then elaborates on output details and intent types. Every sentence adds value, though it could be slightly more concise by integrating some details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is partially complete. It explains what the tool does and the intent types but lacks crucial context like response structure, error cases, or usage limits. This leaves gaps for an AI agent to invoke it correctly without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 the 'keywords' and 'language_code' parameters. The description adds no additional parameter semantics beyond implying keyword processing, which is already covered. 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.

Purpose4/5

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 search intent data for up to 1,000 keywords' and specifies it returns 'search intent and intent probability' for each keyword. It distinguishes the tool by focusing on intent analysis rather than volume or location data, though it doesn't explicitly differentiate from all sibling tools by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mentions the tool's capabilities but doesn't indicate scenarios where it's appropriate, prerequisites, or comparisons to sibling tools like 'keywords_data_google_ads_search_volume' or 'dataforseo_labs_google_keyword_ideas'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_analytics_technologies_available_filtersC

Here you will find all the necessary information about filters that can be used with DataForSEO Technologies API endpoints.

Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoThe name of the tool to get filters for

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It hints at behavioral aspects by mentioning filters are 'associated with a certain object,' suggesting structured data, but fails to disclose key traits like whether this is a read-only operation, if it requires authentication, rate limits, or what the output format might be. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief with two sentences, but it's not optimally structured; the first sentence is vague, and the second adds a minor clarification without front-loading critical information. While not verbose, it lacks efficiency in conveying purpose, making it adequate but with room for improvement in clarity and flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (inferred from sibling tools in analytics/SEO domains), no annotations, no output schema, and a description that only vaguely explains purpose, the description is incomplete. It fails to provide enough context for an agent to understand how to use it effectively, especially compared to richer sibling tools, leaving gaps in usage and behavioral understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter with 100% description coverage ('tool' parameter described as 'The name of the tool to get filters for'), so the schema does the heavy lifting. The description adds no additional parameter details beyond what's in the schema, but since coverage is high, the baseline score of 3 is appropriate—it doesn't compensate but doesn't need to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it provides 'information about filters that can be used with DataForSEO Technologies API endpoints,' which gives a vague purpose but doesn't specify what action the tool performs (e.g., 'list' or 'retrieve'). It mentions filters are 'associated with a certain object in the result array,' adding some context but not clearly distinguishing it from sibling tools like 'backlinks_available_filters' or 'domain_analytics_whois_available_filters.' The purpose is implied but not explicit, falling short of clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers minimal guidance, noting filters should be 'specified accordingly' with objects in result arrays, but it doesn't explain when to use this tool versus alternatives (e.g., other 'available_filters' tools for different domains). There's no mention of prerequisites, exclusions, or specific contexts, leaving the agent with little direction on appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_analytics_technologies_domain_technologiesC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYestarget domain required field domain name of the website to analyze Note: results will be returned for the specified domain only

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool returns a list of technologies but doesn't disclose behavioral traits like whether it's a read-only operation, requires authentication, has rate limits, or what the output format looks like (e.g., JSON structure, pagination). For a tool with no annotation coverage, this 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more structured by front-loading key details like output format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple read operation with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't explain the return values (e.g., what 'list of technologies' entails), potential errors, or usage context, leaving gaps for an AI agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, fully documenting the single required parameter 'target' as a domain name. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. 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.

Purpose4/5

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 a list of technologies used in a particular domain.' It specifies the verb ('get'), resource ('technologies'), and scope ('particular domain'). However, it doesn't explicitly differentiate from sibling tools like 'domain_analytics_technologies_available_filters' or 'domain_analytics_whois_overview,' which might offer related domain analytics functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisites, limitations, or compare it to sibling tools such as 'domain_analytics_whois_overview' for domain information or other analytics tools. Usage is implied only by the purpose statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_analytics_whois_available_filtersC

Here you will find all the necessary information about filters that can be used with DataForSEO WHOIS API endpoints.

Please, keep in mind that filters are associated with a certain object in the result array, and should be specified accordingly.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoThe name of the tool to get filters for

TDQS

C2.3/5.0
Behavior2/5

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 that filters are 'associated with a certain object in the result array,' hinting at structural constraints, but fails to describe key traits like whether this is a read-only operation, potential rate limits, authentication needs, or what the output looks like (e.g., a list of filter options). This leaves significant gaps for a tool that likely returns metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and avoids unnecessary fluff, but it's not optimally front-loaded; the first sentence is somewhat generic, and the second adds a technical note that could be integrated more smoothly. It's concise but could be structured better for clarity, earning a middle score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's likely purpose (returning filter metadata for WHOIS endpoints), the description is incomplete. With no annotations and no output schema, it fails to explain what the tool returns (e.g., a list of filter names, types, or usage examples), behavioral aspects, or how it differs from similar tools. This leaves the agent under-informed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter ('tool') with 100% description coverage in the schema itself, so the description doesn't need to add parameter details. The description doesn't provide any additional semantic context about the parameter, but since schema coverage is high, the baseline score of 3 is appropriate—adequate but not adding value beyond the structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it provides 'information about filters that can be used with DataForSEO WHOIS API endpoints,' which clarifies the general domain (WHOIS filters) but lacks a specific verb or action. It doesn't distinguish from sibling tools like 'domain_analytics_technologies_available_filters' or 'dataforseo_labs_available_filters,' making the purpose vague and overlapping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a note about filters being 'associated with a certain object in the result array,' which implies some context for usage, but it doesn't specify when to use this tool versus alternatives (e.g., other 'available_filters' tools) or provide explicit guidance on prerequisites or exclusions. This leaves the agent with minimal actionable direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_analytics_whois_overviewC

This endpoint will provide you with Whois data enriched with backlink stats, and ranking and traffic info from organic and paid search results. Using this endpoint you will be able to get all these data for the domains matching the parameters you specify in the request

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNothe maximum number of returned domains
offsetNooffset in the results array of returned businesses optional field default value: 0 if you specify the 10 value, the first ten entities in the results array will be omitted and the data will be provided for the successive entities
filtersNoarray of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like, not_like, match, not_match you can use the % operator with like and not_like to match any string of zero or more characters example: ["rating.value",">",3]
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["rating.value,desc"]note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["rating.value,desc","rating.votes_count,desc"]
is_claimedNoindicates whether the business is verified by its owner on Google Maps

TDQS

C2.9/5.0
Behavior2/5

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 describes what data is returned but doesn't mention critical behaviors like rate limits, authentication needs, pagination (beyond limit/offset parameters), error handling, or whether it's a read-only or mutating operation. For a tool with complex filtering and sorting, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with two sentences that directly state the tool's purpose and usage. There's no wasted verbiage, and it efficiently communicates the core functionality. However, it could be slightly more structured by explicitly separating purpose from usage instructions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 with rich filtering/sorting logic), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects, output format, error conditions, or usage context. While the schema covers parameters well, the description fails to compensate for other gaps, making it inadequate for informed tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 additional parameter semantics beyond implying that parameters filter domains. It doesn't explain the meaning or typical use of 'filters' or 'order_by' beyond what's in the schema. 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.

Purpose4/5

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 Whois data enriched with backlink stats, and ranking and traffic info from organic and paid search results.' It specifies the verb ('provide'), resource ('Whois data'), and additional enriched data. However, it doesn't explicitly differentiate from sibling tools like 'domain_analytics_whois_available_filters' or other domain analytics tools, 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.

Usage Guidelines2/5

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 mentions 'domains matching the parameters you specify' but doesn't clarify use cases, prerequisites, or comparisons to sibling tools like 'domain_analytics_technologies_domain_technologies' or 'backlinks_domain_pages'. This lack of contextual guidance limits its utility 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.

keywords_data_google_ads_search_volumeC

Get search volume data for keywords from Google Ads

ParametersJSON Schema
NameRequiredDescriptionDefault
location_nameNofull name of the location optional field in format "Country" example: United Kingdom
language_codeNoLanguage two-letter ISO code (e.g., 'en'). optional field
keywordsYesArray of keywords to get search volume for

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It states what the tool does but fails to mention critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or what format the search volume data returns. For a data-fetching tool with zero annotation coverage, this 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently communicates the core function without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 insufficiently complete. It doesn't explain what the tool returns (e.g., metrics like monthly searches, competition level), error conditions, or behavioral constraints. For a data retrieval tool with multiple parameters, more contextual information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 doesn't add any parameter-specific information beyond what's already in the schema descriptions, so it meets the baseline expectation without providing extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('search volume data for keywords from Google Ads'), making the purpose immediately understandable. However, it doesn't distinguish this tool from the sibling 'ai_optimization_keyword_data_search_volume', which appears to serve a similar function, preventing 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.

Usage Guidelines2/5

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, particularly the similar-sounding sibling tool. It doesn't mention prerequisites, constraints, or appropriate contexts for invocation, leaving the agent with insufficient usage direction.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the page to parse
enable_javascriptNoEnable JavaScript rendering
custom_jsNoCustom JavaScript code to execute
custom_user_agentNoCustom User-Agent header
accept_languageNoAccept-Language header value

TDQS

C2.9/5.0
Behavior2/5

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 returns structured content but does not cover critical aspects like rate limits, authentication needs, error handling, or performance implications (e.g., timeouts for JavaScript-heavy pages). This leaves significant gaps for an agent to use it effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the core functionality. It is front-loaded with the main purpose and avoids unnecessary details, though it could be slightly more concise by omitting 'This endpoint allows'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of web parsing (with parameters like JavaScript rendering) and no output schema or annotations, the description is insufficient. It lacks details on return format, error cases, or behavioral traits, making it incomplete for safe and effective use by an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't explain how 'enable_javascript' affects parsing or what 'custom_js' can achieve), so it meets but does not exceed the minimum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 page content to extract structured elements like links, anchors, headings, and text. It specifies the verb 'parsing' and resource 'content on any page', but does not differentiate from sibling tools, as none appear to be direct alternatives for content parsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, prerequisites, or exclusions. It mentions 'any page you specify' but lacks context about limitations or ideal use cases compared to other tools in the list.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to analyze
enable_javascriptNoEnable JavaScript rendering
custom_jsNoCustom JavaScript code to execute
custom_user_agentNoCustom User-Agent header
accept_languageNolanguage 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

C2.9/5.0
Behavior2/5

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. While it mentions the tool returns 'detailed information on how well a particular page is optimized for organic search,' it lacks critical behavioral details: what specific metrics or data are returned, whether this involves external API calls or rate limits, authentication requirements, error handling (beyond a hint in the 'accept_language' parameter description), or performance characteristics. For a tool with 5 parameters and no annotations, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently states the tool's purpose. It's front-loaded with the core function and avoids unnecessary words. However, given the tool's complexity (5 parameters, no output schema) and lack of sibling differentiation, it could benefit from slightly more detail to be fully helpful, keeping it from a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 doesn't explain what the output looks like (e.g., the structure or types of 'detailed information'), how to interpret results, or any dependencies or limitations. With no output schema and rich parameterization, the description should provide more context to guide effective use, but it falls short.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 input schema itself. The description adds no additional parameter information beyond what's already in the schema (e.g., it doesn't explain the 'url' format, when to use 'custom_js', or default behaviors). With high schema coverage, the baseline score is 3, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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'), resource ('page-specific data'), and outcome ('optimized for organic search'). However, it doesn't explicitly distinguish this tool from its many siblings (e.g., 'on_page_content_parsing', 'on_page_lighthouse'), which appear to be related on-page analysis tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 numerous sibling tools like 'on_page_content_parsing' and 'on_page_lighthouse' that likely serve similar on-page analysis purposes, the description fails to indicate what makes this tool unique or when it should be preferred over others. No context, exclusions, or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

on_page_lighthouseD

The OnPage Lighthouse API is based on Google’s open-source Lighthouse project for measuring the quality of web pages and web apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the page to parse
enable_javascriptNoEnable JavaScript rendering
custom_jsNoCustom JavaScript code to execute
custom_user_agentNoCustom User-Agent header
accept_languageNoAccept-Language header value

TDQS

D1.9/5.0
Behavior1/5

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 fails to describe key traits such as whether this is a read-only or mutative operation, potential rate limits, authentication needs, or what the output entails (e.g., performance scores, audits). This omission makes it inadequate for a tool with potential complexity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is appropriately sized and front-loaded, but it lacks structure and could be more informative. While concise, it doesn't earn its place fully by providing actionable details, making it somewhat under-specified rather than efficiently informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (likely involving web performance audits), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., Lighthouse scores, metrics) or behavioral aspects, leaving significant gaps for an agent to understand and use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 input schema. The description adds no additional meaning or context about the parameters beyond what the schema provides, such as explaining how 'enable_javascript' affects the audit or what 'custom_js' is used for. This meets the baseline score of 3 when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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 some context but is vague about the specific action. It doesn't clearly state what the tool does (e.g., run a Lighthouse audit, generate performance reports) or distinguish it from sibling tools like 'on_page_content_parsing' or 'on_page_instant_pages,' making it tautological by restating the name's implication without concrete details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, and with many sibling tools available (e.g., for SEO, backlinks, content analysis), the lack of usage guidelines leaves the agent guessing about its specific application.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
search_engineNosearch engine name, one of: google, yahoo, bing.google
country_iso_codeYesISO 3166-1 alpha-2 country code, for example: US, GB, MT
location_typeNoType 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_nameNoName of location or it`s part.

TDQS

C2.6/5.0
Behavior2/5

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 the tool 'gets list of availible locations,' which implies a read-only operation, but doesn't disclose behavioral traits such as authentication needs, rate limits, pagination, or error handling. The description is minimal and lacks essential context for safe and effective use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and efficient, with no wasted words. However, it contains a typo ('availible') and could be slightly more polished, but overall it's appropriately sized for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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. It doesn't explain what the output looks like (e.g., list format, data structure) or provide context on complexity. For a tool with 4 parameters and no structured output info, more detail is needed to guide the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 4 parameters with descriptions and constraints. The description adds no additional meaning beyond the schema, as it doesn't explain parameter interactions or usage examples. Baseline 3 is appropriate when schema handles parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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.' This clarifies it fetches location data for a specific sibling tool, but the purpose is somewhat vague—it doesn't specify what 'availible locations' means (e.g., search engine locations, geographic regions). It distinguishes from most siblings by focusing on locations, but lacks specificity in verb and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it's for 'serp_organic_live_advanced,' implying usage context, but provides no explicit guidance on when to use this tool versus alternatives (e.g., serp_youtube_locations or other location-related tools in the sibling list). There are no exclusions or prerequisites stated, leaving the agent to infer usage.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
search_engineNosearch engine name, one of: google, yahoo, bing.google
location_nameNofull 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
depthNoparsing depth optional field number of results in SERP
language_codeYessearch engine language code (e.g., 'en')
keywordYesSearch keyword
max_crawl_pagesNopage 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
deviceNodevice type optional field can take the values:desktop, mobile default value: desktopdesktop
people_also_ask_click_depthNoclicks on the corresponding element specify the click depth on the people_also_ask element to get additional people_also_ask_element items;

TDQS

C2.9/5.0
Behavior2/5

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' results, implying a read-only operation, but doesn't clarify if it's a live query (suggesting real-time data), potential rate limits, authentication needs, or error handling. For a tool with 8 parameters and no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'Get organic search results for a keyword in specified search engine.' It's front-loaded with the core purpose, uses clear language, and avoids redundancy. Every word contributes to understanding, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, no output schema), the description is insufficient. It doesn't explain the return format (e.g., what data is included in 'organic search results'), behavioral aspects like real-time vs. cached data, or error conditions. For a tool that likely returns rich SERP data, this leaves critical gaps for an AI agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions 'keyword' and 'specified search engine,' which align with two parameters, but doesn't add meaningful context beyond the schema. With 100% schema description coverage, the schema already documents all parameters thoroughly (e.g., defaults, constraints, formats). The description provides no additional semantics, such as how parameters interact (e.g., 'depth' vs. 'max_crawl_pages'), so it meets the baseline but doesn't enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 organic search results for a keyword in specified search engine.' It specifies the verb ('get'), resource ('organic search results'), and key parameters ('keyword,' 'search engine'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'serp_youtube_organic_live_advanced,' which might cause confusion in tool selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, such as 'serp_youtube_organic_live_advanced' for YouTube searches or other SERP-related tools. This lack of context could lead to incorrect tool selection in complex scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

serp_youtube_locationsA

Utility tool to get list of available locations for: serp_youtube_organic_live_advanced, serp_youtube_video_info_live_advanced, serp_youtube_video_comments_live_advanced, serp_youtube_video_subtitles_live_advanced.

ParametersJSON Schema
NameRequiredDescriptionDefault
country_iso_codeYesISO 3166-1 alpha-2 country code, for example: US, GB, MT
location_typeNoType 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_nameNoName of location or it`s part.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. While it states this is a 'utility tool' that 'gets list of available locations,' it doesn't disclose important behavioral traits like whether this is a read-only operation, what authentication might be required, rate limits, or what format the location list returns. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that clearly communicates the tool's purpose and usage context. It's appropriately sized for a utility tool and front-loads the essential information without any wasted words or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a utility tool with 3 parameters (1 required), 100% schema coverage, and no output schema, the description provides adequate context about what the tool does and which tools it supports. However, it lacks information about return format and behavioral characteristics that would be helpful given the absence of annotations. The description is complete enough for basic understanding but could be more comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters well-documented in the schema itself. The description doesn't add any parameter-specific information beyond what the schema provides. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 list of available locations' for specific YouTube SERP tools. It specifies the verb ('get') and resource ('list of available locations'), but doesn't distinguish it from the similar 'serp_locations' sibling tool, which appears to serve a parallel function for non-YouTube SERP tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists the four specific tools this location utility supports: 'serp_youtube_organic_live_advanced, serp_youtube_video_info_live_advanced, serp_youtube_video_comments_live_advanced, serp_youtube_video_subtitles_live_advanced.' This provides clear guidance on when to use this tool versus alternatives - specifically for YouTube-related SERP tools rather than general 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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesSearch keyword
location_nameYesfull 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_codeYessearch engine language code (e.g., 'en')
deviceNodevice type optional field can take the values:desktop, mobile default value: desktopdesktop
osNodevice 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: androidwindows
block_depthNoparsing depth optional field number of blocks of results in SERP max value: 700

TDQS

C2.9/5.0
Behavior2/5

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 implies live results, but lacks critical details: it doesn't specify if results are real-time or cached, whether there are rate limits, authentication requirements, error handling, or the structure of returned data (since no output schema exists). For a tool with 6 parameters and no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core functionality ('provides top 20 blocks of youtube search engine results for a keyword'). It wastes no words and directly communicates the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 lacks behavioral context (e.g., live vs. cached, rate limits), usage guidelines compared to siblings, and details on output format. While the input schema is thorough, the description alone doesn't provide enough information for an agent to fully understand how to use this tool effectively in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description adds no additional parameter semantics beyond implying keyword-based search. Since the schema handles the heavy lifting, the baseline score of 3 is appropriate—the description doesn't compensate but doesn't need to given the comprehensive schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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'), which is specific and actionable. However, it doesn't explicitly distinguish this tool from sibling tools like 'serp_organic_live_advanced' or 'serp_youtube_video_info_live_advanced', which might offer similar or overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 with sibling tools (e.g., 'serp_organic_live_advanced' for general SERP or other YouTube-specific tools). Without such context, an agent must infer usage based on the tool name and description alone.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesID of the video
location_nameYesfull 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_codeYessearch engine language code (e.g., 'en')
deviceNodevice type optional field can take the values:desktop, mobile default value: desktopdesktop
osNodevice 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: androidwindows
depthNoparsing depth, number of results in SERP, max value: 700

TDQS

D1.9/5.0
Behavior1/5

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 fails to do so—it doesn't indicate whether this is a read-only or mutating operation, what permissions might be required, rate limits, or what the output format looks like (e.g., JSON structure, pagination). The term 'provides data' is too generic, offering no insight into the tool's behavior beyond the basic action implied by the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence ('provides data on the video comments you specify'), which is concise but under-specified—it lacks necessary detail to be truly helpful. While it avoids verbosity, it doesn't front-load critical information or structure content effectively, leaving the agent with insufficient context. It's not wasteful, but it's too minimal to earn a higher score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., comment data format, error handling), behavioral aspects, or usage context. While the schema covers parameters well, the description fails to provide a holistic understanding, making it inadequate for a tool that likely involves data retrieval from an external service like YouTube SERP.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 (e.g., 'video_id', 'location_name' with format details, 'depth' with max value). The description adds no additional semantic context beyond what's in the schema, such as explaining why these parameters matter or how they affect the results. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but the description doesn't compensate or enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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 vague and tautological—it essentially restates the tool name 'serp_youtube_video_comments_live_advanced' without specifying what kind of data (e.g., comment text, metadata, sentiment) or how it's retrieved. It lacks a clear verb-resource distinction and doesn't differentiate from sibling tools like 'serp_youtube_video_info_live_advanced' or 'serp_youtube_video_subtitles_live_advanced', which could 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.

Usage Guidelines1/5

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 any prerequisites, context for use (e.g., for SEO analysis, sentiment tracking), or exclusions. Given the many sibling tools (e.g., 'serp_youtube_organic_live_advanced', 'serp_youtube_video_info_live_advanced'), the absence of comparative guidance is a significant gap, leaving the agent to guess based on the tool name alone.

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_advancedD

provides data on the video you specify

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesID of the video
location_nameYesfull 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_codeYessearch engine language code (e.g., 'en')
deviceNodevice type optional field can take the values:desktop, mobile default value: desktopdesktop
osNodevice 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: androidwindows

TDQS

D1.8/5.0
Behavior1/5

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 it 'provides data' without specifying if it's a read-only operation, requires authentication, has rate limits, or what the output format might be. This leaves critical behavioral aspects undefined, failing to compensate for the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While concise with a single sentence, it is under-specified rather than efficiently structured. The description fails to front-load essential information (e.g., what data, from where) and wastes its brevity on a vague statement that doesn't help the agent understand the tool's purpose or usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It lacks details on the tool's behavior, output format, and differentiation from siblings. Without annotations or output schema, the description should provide more context to guide the agent effectively, but it does not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 (video_id, location_name, etc.) with detailed descriptions. The description adds no additional meaning beyond the schema, such as explaining why these parameters are needed or how they affect results, but the high schema coverage justifies a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

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 (e.g., metadata, analytics, rankings) or from what source (e.g., YouTube SERP). It fails to distinguish this tool from sibling tools like 'serp_youtube_organic_live_advanced' or 'serp_youtube_video_comments_live_advanced', leaving the agent unclear about its unique function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 many sibling tools (e.g., 'serp_youtube_organic_live_advanced', 'serp_youtube_video_comments_live_advanced'), there is no indication of context, prerequisites, or exclusions, making it impossible for an agent to choose appropriately without external knowledge.

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_advancedD

provides data on the video subtitles you specify

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesID of the video
location_nameYesfull 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_codeYessearch engine language code (e.g., 'en')
subtitles_languageNolanguage code of original text (e.g., 'en')
subtitles_translate_languageNolanguage code of translated text (e.g., 'en')
deviceNodevice type optional field can take the values:desktop, mobile default value: desktopdesktop
osNodevice 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: androidwindows

TDQS

D1.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but fails to disclose any behavioral traits. It doesn't mention whether this is a read-only operation, if it requires authentication, rate limits, or what the output looks like (e.g., structured data, raw text). The phrase 'provides data' is too generic to infer behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While concise (one sentence), the description is under-specified and fails to front-load critical information. It doesn't earn its place by adding value; instead, it's overly brief for a complex tool, making it inefficient for agent understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

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 severely incomplete. It doesn't explain the tool's purpose, usage, behavior, or output, leaving major gaps that hinder effective agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 7 parameters with detailed descriptions and constraints. The description adds no additional meaning beyond the schema, but since coverage is high, the baseline score of 3 applies—adequate but no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'provides data on the video subtitles you specify' is vague and tautological—it essentially restates the tool name without specifying what kind of data (e.g., transcript text, timing, availability) or how it's retrieved. It lacks a clear verb-resource combination and doesn't distinguish from sibling tools like 'serp_youtube_video_info_live_advanced' or 'serp_youtube_organic_live_advanced'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 offers no context, prerequisites, or exclusions, leaving the agent to guess based on parameters alone. This is inadequate for a tool with 7 parameters and no annotations.

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.

  1. 34 tool updatesv1.0.0
    • Addedai_optimization_keyword_data_locations_and_languages
    • Addedai_optimization_keyword_data_search_volume
    • Addedai_optimization_llm_mentions_aggregated_metrics
    • Addedai_optimization_llm_mentions_cross_aggregated_metrics
    • Addedai_optimization_llm_mentions_filters
    • Addedai_optimization_llm_mentions_locations_and_languages
    • Addedai_optimization_llm_mentions_search
    • Addedai_optimization_llm_mentions_top_domains
    • Addedai_optimization_llm_mentions_top_pages
    • Addedai_optimization_llm_models
    • Addedai_optimization_llm_response
    • Changeddataforseo_labs_bulk_keyword_difficulty1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_bulk_traffic_estimation2 fields changed
      • addedInput schema / properties / item_types
        Added value: +{
        +  "default": [
        +    "organic"
        +  ],
        +  "description": "display results by item type\nindicates the type of search results included in the response",
        +  "items": {
        +    "enum": [
        +      "organic",
        +      "paid",
        +      "featured_snippet",
        +      "local_pack"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_competitors_domain2 fields changed
      • addedInput schema / properties / item_types
        Added value: +{
        +  "default": [
        +    "organic"
        +  ],
        +  "description": "display results by item type\nindicates the type of search results included in the response",
        +  "items": {
        +    "enum": [
        +      "organic",
        +      "paid",
        +      "featured_snippet",
        +      "local_pack"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_domain_intersection2 fields changed
      • addedInput schema / properties / item_types
        Added value: +{
        +  "default": [
        +    "organic"
        +  ],
        +  "description": "display results by item type\nindicates the type of search results included in the response",
        +  "items": {
        +    "enum": [
        +      "organic",
        +      "paid",
        +      "featured_snippet",
        +      "local_pack"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_domain_rank_overview1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_historical_keyword_data1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_historical_rank_overview1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_historical_serp1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_keyword_ideas1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\n  required field\n  in format \"Country\"\n  example:\n  United Kingdom"New value: +"full name of the location\n  required field\n  only in format \"Country\" (not \"City\" or \"Region\")\n  example:\n  'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_keyword_overview1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_keyword_suggestions1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_keywords_for_site1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_page_intersection2 fields changed
      • addedInput schema / properties / item_types
        Added value: +{
        +  "default": [
        +    "organic"
        +  ],
        +  "description": "display results by item type\nindicates the type of search results included in the response",
        +  "items": {
        +    "enum": [
        +      "organic",
        +      "paid",
        +      "featured_snippet",
        +      "local_pack"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_ranked_keywords2 fields changed
      • addedInput schema / properties / item_types
        Added value: +{
        +  "default": [
        +    "organic"
        +  ],
        +  "description": "display results by item type\nindicates the type of search results included in the response",
        +  "items": {
        +    "enum": [
        +      "organic",
        +      "paid",
        +      "featured_snippet",
        +      "local_pack",
        +      "ai_overview_reference"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_related_keywords1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Addeddataforseo_labs_google_relevant_pages
    • Changeddataforseo_labs_google_serp_competitors3 fields changed
      • changedInput schema / properties / filters / description
        Previous value: -"you can add several filters at once (8 filters maximum)\n        you should set a logical operator and, or between the conditions\n        the following operators are supported:\n        regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like\n        you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters\n        merge operator must be a string and connect two other arrays, availible values: or, and.\n        example:\n        [\"ranked_serp_element.serp_item.rank_group\",\"<=\",10]\n        [[\"ranked_serp_element.serp_item.rank_group\",\"<=\",10],\"or\",[\"ranked_serp_element.serp_item.type\",\"<>\",\"paid\"]]\n        [[\"keyword_data.keyword_info.search_volume\",\"<>\",0],\"and\",[[\"ranked_serp_element.serp_item.type\",\"<>\",\"paid\"],\"or\",[\"ranked_serp_element.serp_item.is_malicious\",\"=\",false]]]"New value: +"you can add several filters at once (8 filters maximum)\nyou should set a logical operator and, or between the conditions\nthe following operators are supported:\nregex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like\nyou can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters\nexample:\n[\"median_position\",\"in\",[1,10]]\n[[\"median_position\",\"in\",[1,10]],\"and\",[\"domain\",\"not_like\",\"%wikipedia.org%\"]]\n\n[[\"domain\",\"not_like\",\"%wikipedia.org%\"],\n\"and\",\n[[\"relevant_serp_items\",\">\",0],\"or\",[\"median_position\",\"in\",[1,10]]]]"
      • addedInput schema / properties / item_types
        Added value: +{
        +  "default": [
        +    "organic"
        +  ],
        +  "description": "display results by item type\nindicates the type of search results included in the response",
        +  "items": {
        +    "enum": [
        +      "organic",
        +      "paid",
        +      "featured_snippet",
        +      "local_pack"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_subdomains4 fields changed
      • addedInput schema / properties / item_types / default
        Added value: +[
        +  "organic"
        +]
      • changedInput schema / properties / item_types / description
        Previous value: -"item types to return\n        optional field\n        default: ['organic']\n        possible values:\n        organic\n        paid"New value: +"display results by item type\nindicates the type of search results included in the response"
      • addedInput schema / properties / item_types / items / enum
        Added value: +[
        +  "organic",
        +  "paid",
        +  "featured_snippet",
        +  "local_pack"
        +]
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changeddataforseo_labs_google_top_searches1 field changed
      • changedInput schema / properties / location_name / description
        Previous value: -"full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom"New value: +"full name of the location\nrequired field\nonly in format \"Country\" (not \"City\" or \"Region\")\nexample:\n'United Kingdom', 'United States', 'Canada'"
    • Changedkeywords_data_google_trends_categories1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Addedon_page_lighthouse
    • Changedserp_locations5 fields changed
      • removedInput schema / properties / country_code
        Removed value: -{
        -  "default": "US",
        -  "description": "country code (e.g., 'US')",
        -  "type": "string"
        -}
      • addedInput schema / properties / country_iso_code
        Added value: +{
        +  "description": "ISO 3166-1 alpha-2 country code, for example: US, GB, MT",
        +  "type": "string"
        +}
      • addedInput schema / properties / location_name
        Added value: +{
        +  "description": "Name of location or it`s part.",
        +  "type": "string"
        +}
      • addedInput schema / properties / location_type
        Added value: +{
        +  "description": "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'",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "country_iso_code"
        +]
    • Changedserp_youtube_locations5 fields changed
      • removedInput schema / properties / country_code
        Removed value: -{
        -  "default": "US",
        -  "description": "country code (e.g., 'US')",
        -  "type": "string"
        -}
      • addedInput schema / properties / country_iso_code
        Added value: +{
        +  "description": "ISO 3166-1 alpha-2 country code, for example: US, GB, MT",
        +  "type": "string"
        +}
      • addedInput schema / properties / location_name
        Added value: +{
        +  "description": "Name of location or it`s part.",
        +  "type": "string"
        +}
      • addedInput schema / properties / location_type
        Added value: +{
        +  "description": "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'",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "country_iso_code"
        +]
  2. 63 tool updates
    • First observedbacklinks_anchors
    • First observedbacklinks_available_filters
    • First observedbacklinks_backlinks
    • First observedbacklinks_bulk_backlinks
    • First observedbacklinks_bulk_new_lost_backlinks
    • First observedbacklinks_bulk_new_lost_referring_domains
    • First observedbacklinks_bulk_pages_summary
    • First observedbacklinks_bulk_ranks
    • First observedbacklinks_bulk_referring_domains
    • First observedbacklinks_bulk_spam_score
    • First observedbacklinks_competitors
    • First observedbacklinks_domain_intersection
    • First observedbacklinks_domain_pages
    • First observedbacklinks_domain_pages_summary
    • First observedbacklinks_page_intersection
    • First observedbacklinks_referring_domains
    • First observedbacklinks_referring_networks
    • First observedbacklinks_summary
    • First observedbacklinks_timeseries_new_lost_summary
    • First observedbacklinks_timeseries_summary
    • First observedbusiness_data_business_listings_search
    • First observedcontent_analysis_phrase_trends
    • First observedcontent_analysis_search
    • First observedcontent_analysis_summary
    • First observeddataforseo_labs_available_filters
    • First observeddataforseo_labs_bulk_keyword_difficulty
    • First observeddataforseo_labs_bulk_traffic_estimation
    • First observeddataforseo_labs_google_competitors_domain
    • First observeddataforseo_labs_google_domain_intersection
    • First observeddataforseo_labs_google_domain_rank_overview
    • First observeddataforseo_labs_google_historical_keyword_data
    • First observeddataforseo_labs_google_historical_rank_overview
    • First observeddataforseo_labs_google_historical_serp
    • First observeddataforseo_labs_google_keyword_ideas
    • First observeddataforseo_labs_google_keyword_overview
    • First observeddataforseo_labs_google_keyword_suggestions
    • First observeddataforseo_labs_google_keywords_for_site
    • First observeddataforseo_labs_google_page_intersection
    • First observeddataforseo_labs_google_ranked_keywords
    • First observeddataforseo_labs_google_related_keywords
    • First observeddataforseo_labs_google_serp_competitors
    • First observeddataforseo_labs_google_subdomains
    • First observeddataforseo_labs_google_top_searches
    • First observeddataforseo_labs_search_intent
    • First observeddomain_analytics_technologies_available_filters
    • First observeddomain_analytics_technologies_domain_technologies
    • First observeddomain_analytics_whois_available_filters
    • First observeddomain_analytics_whois_overview
    • First observedkeywords_data_dataforseo_trends_demography
    • First observedkeywords_data_dataforseo_trends_explore
    • First observedkeywords_data_dataforseo_trends_subregion_interests
    • First observedkeywords_data_google_ads_search_volume
    • First observedkeywords_data_google_trends_categories
    • First observedkeywords_data_google_trends_explore
    • First observedon_page_content_parsing
    • First observedon_page_instant_pages
    • First observedserp_locations
    • First observedserp_organic_live_advanced
    • First observedserp_youtube_locations
    • First observedserp_youtube_organic_live_advanced
    • First observedserp_youtube_video_comments_live_advanced
    • First observedserp_youtube_video_info_live_advanced
    • First observedserp_youtube_video_subtitles_live_advanced

TDQS

C2.7/5.0
Disambiguation2/5

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

Naming Consistency5/5

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

Tool Count2/5

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

Completeness4/5

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A stdio-based server that enables interaction with the DataForSEO API through the Model Context Protocol, allowing users to fetch SEO data including search results, keywords data, backlinks, on-page analysis, and more.
    20
    7
    MIT
  • A
    license
    D
    quality
    D
    maintenance
    Enables LLMs to interact with DataForSEO and other SEO APIs through natural language, allowing for keyword research, SERP analysis, backlink analysis, and local SEO tasks.
    100
    22,898
    82
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Provides AI assistants with access to Semrush SEO API functionality including domain analytics, keyword research, backlink analysis, and competitor insights.
    7
    16
    -

Latest Blog Posts

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/ravinwebsurgeon/seo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server