seo-data-api-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@seo-data-api-mcp-servershow me my top 10 organic keywords"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server
Installation
Prerequisites
Before you begin, please ensure you have the following software and accounts ready:
SE Ranking Account: You will need an active SE Ranking account to generate an API token. If you don’t have one, you can sign up here.
Docker: A platform for developing, shipping, and running applications in containers. If you don’t have it, you can download it from the official Docker website.
Docker Compose Plugin: The Docker Compose plugin is a Docker CLI plugin that provides a command-line interface (CLI) for Docker Compose. To build the Docker image, you need to have Docker Compose installed.
Git: A free and open-source distributed version control system. You can download it from the official Git website.
AI Assistant: You will need either the Claude Desktop App or the Gemini CLI installed and configured on your machine.
Installation Steps
Follow these steps to install the SEO-MCP server on your local machine.
Open your terminal (or Command Prompt/PowerShell on Windows).
Clone the project repository from GitHub. This command downloads the necessary files to your machine.
git clone https://github.com/seranking/seo-data-api-mcp-server.gitNavigate into the new directory in your terminal:
cd seo-data-api-mcp-serverBuild the Docker Image
Make sure you're in the seo-data-api-mcp-server repository directory, and run:
docker compose build
# Check that the image is built and named `se-ranking/seo-data-api-mcp-server`:
docker image lsNote: don't worry about the warnings, this is normal when building the image:
WARN[0000] The "SERANKING_API_TOKEN" variable is not set. Defaulting to a blank string.How to Update SEO-MCP
To ensure you have the latest features and improvements, you should update the tool periodically.
Navigate to your
seo-data-api-mcp-serverdirectory in the terminal.Pull the latest changes from the GitHub repository.
git pull origin mainRelated MCP server: SE Ranking SEO Data API MCP Server
Connect to Claude Desktop
Claude Desktop reads its configuration from claude_desktop_config.json.
Click on the Claude menu and select Settings....
In the Settings window, navigate to the Developer tab in the left sidebar.
Click the Edit Config button to open the configuration file. This action creates a new configuration file if one doesn’t exist or opens your existing configuration.
The file is located at:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%AppData%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Example of Claude Desktop configuration for MCP server
JSON Configuration Template:
{
"mcpServers": {
"seo-data-api-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERANKING_API_TOKEN",
"se-ranking/seo-data-api-mcp-server"
],
"env": {
"SERANKING_API_TOKEN": "<your-api-token-here>"
}
}
}
}You need to change the SERANKING_API_TOKEN, get yours from https://online.seranking.com/admin.api.dashboard.html
After saving claude_desktop_config.json, restart Claude Desktop. You should see the server under MCP Servers/Tools.
To verify the setup, ask Claude:
Do you have access to MCP?It should respond by listingseo-data-api-mcp.

Your setup is complete! You can now run complex SEO queries using natural language.

Connect to Gemini CLI
Open the Gemini CLI settings file, which is typically located at:
~/.gemini/settings.jsonAdd the following JSON configuration, making sure to replace the SERANKING_API_TOKEN placeholder value.
{
"mcpServers": {
"seo-data-api-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERANKING_API_TOKEN",
"se-ranking/seo-data-api-mcp-server"
],
"env": {
"SERANKING_API_TOKEN": "<your-api-token-here>"
}
}
}
}"SERANKING_API_TOKEN": Use your personal API token, which you can generate from the SE Ranking API Dashboard.
Save the configuration file.
To verify the setup, launch the Gemini CLI by running
geminiin your terminal. Once the interface is active, pressCtrl+Tto view the available MCP servers. Ensure seo-data-api-mcp is listed.

Your setup is complete! You can now run complex SEO queries using natural language.

Run as HTTP Server (Node)
In order to run the local Node server, you need to have Node.js 20+ version installed on your machine.
Run the following commands in your terminal:
npm installTo build the project, use the following command:
npm run buildTo start the server use the command:
npm run start-httpThen your HTTP server should be running at: http://0.0.0.0:5000/mcp.
In case you'd like to modify the HOST and PORT, you can do so by creating a .env file in the root directory of the project with the settings you want to override, for example:
HOST=127.0.0.1
PORT=5555Additionally, when you're running the server in the external environments/tools like Replit and similar, you can set the SERANKING_API_TOKEN environment variable in the configuration panel, and the application will use it when you start the server.
Note: If you change the SERANKING_API_TOKEN value when the server is running, you need to restart the server.
Usage Example: Finding Keyword Opportunities
With the configuration complete, you can now use natural language prompts to interact with your SE Ranking data. Here is an example prompt to identify low-hanging keyword opportunities for a domain.
Copy and paste the following into your configured AI assistant:
Use the seo-mcp to identify the Keywords my domain is overlooking and find low-hanging fruit opportunities.
1. Analyze my domain's keyword performance:
- Find keywords my domain has lost (not ranking) using the tool for domainKeywords with pos_change=lost.
- Find keywords where my domain's position has gone down using the tool for domainKeywords with pos_change=down.
2. Conduct a competitive analysis:
- Identify my top 2 competitors by finding all competitors with the tool for domainCompetitors and ordering them by common_keywords DESC.
- Find 30 keywords that these competitors are ranking for but my domain is not. Use the domainKeywordsComparison tool with diff=1, order_field=volume, and order_type=DESC.
3. Identify new keyword opportunities:
- For 10 of the competitor keywords found in the previous step, use the tools for relatedKeywords and similarKeywords to find the top 5 related and similar keywords for each, ordered by volume DESC.
4. Synthesize and Report:
- Create a final report of the findings. In the report, highlight potential low-hanging fruit from the new keyword opportunities by analyzing their CPC and keyword difficulty.
Domain to review: seranking.com
Market: usWhat This Prompt Does
This prompt instructs the model to perform a comprehensive competitive analysis by:
Finding Lost & Declining Keywords: It first identifies keywords for seranking.com that have either been lost from the rankings or have dropped in position.
Identifying Top Competitors: It finds all organic competitors and sorts them to identify the top two based on the number of shared keywords.
Uncovering Competitor-Ranked Keywords: It compares seranking.com against its top competitors to find 30 high-volume keywords that they rank for, but seranking.com does not.
Generating a Final Report: Finally, it synthesizes all of this information into a concise report, highlighting the most promising opportunities for growth.
To send the sample test request, which will verify if your server runs properly and has the correct setup, open another terminal window, and run the following command with your SE Ranking API token provided as an argument:
./test-http-server-curl-request.sh '<your-api-token-here>'For batch MCP Requests testing, you can use this script:
./test-batch-http-server-curl-request.sh '<your-api-token-here>'Troubleshooting
Docker image problems
If you’re having trouble getting the MCP server to connect, here are a few steps to diagnose the issue.
Verifying if the Docker container is running when you run your AI Assistant (Claude or Gemini). If you start a chat with an AI, and your MCP Server is set up properly via JSON config, it should automatically start the Docker container.
To check if it’s running, open your terminal and run:
docker psIf it’s working correctly, you will see an output similar to this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de4e410ef0fd se-ranking/seo-data-api-mcp-server "docker-entrypoint.s…" 9 seconds ago Up 8 seconds musing_bhabhaThis confirms that your AI assistant has successfully started the container, and it’s listening for connections.
If docker ps shows no running containers related to the MCP server, it usually points to a configuration issue:
Incorrect/invalid JSON: Double-check the claude_desktop_config.json or settings.json for any syntax errors like missing commas or brackets. You can validate the JSON here: https://jsonlint.com/.
Incorrect image name: Double-check the claude_desktop_config.json or settings.json for the correct image name
se-ranking/seo-data-api-mcp-server
Docker image running, but MCP server is not visible in Claude Desktop / Gemini CLI
If the docker image is running, but the MCP server is not visible in Claude Desktop, you can investigate the container by:
docker inspect <container-id>For the following example, the container ID is de4e410ef0fd:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de4e410ef0fd se-ranking/seo-data-api-mcp-server "docker-entrypoint.s…" 9 seconds ago Up 8 seconds musing_bhabhaNote: you can shorten the container ID in case no other containers share that prefix, ex. docker inspect de4. When you're running multiple AI chats and/or tools connected to the MCP Servers, there can be multiple containers running, but all with the same IMAGE name.
This will show you the big JSON output, where particularly important is the "Config" section, ex.:
{
"Config": {
"Hostname": "0977c3dc06fb",
"Domainname": "",
"User": "",
"AttachStdin": true,
"AttachStdout": true,
"AttachStderr": true,
"Tty": false,
"OpenStdin": true,
"StdinOnce": true,
"Env": [
"SERANKING_API_TOKEN=8abcdef-6fdd-a981-3ad5-123456",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NODE_VERSION=20.19.5",
"YARN_VERSION=1.22.22",
"NODE_ENV=production"
]
}
}Which shows you if you have the correct environment variables set.
Support
SE Ranking API documentation: https://seranking.com/api/integrations/mcp/.
In case you have any questions or need help, please contact us at api@seranking.com
Available Tools
28 toolsaiSearchOverviewAI Search Overview (SE Ranking)B
Retrieve a high-level overview of a domain's performance in LLM: link presence, average position, AI traffic, and historical historical dynamics (trends over time).
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | The target to analyze for LLM performance. Can be a root domain, subdomain, or a specific URL. | |
| scope | No | Scope of analysis: base_domain (the root domain only), domain (the domain including all subdomains), or url (an exact URL). | domain |
| source | Yes | Alpha-2 country code for the regional prompt database (e.g., us for United States results). | |
| engine | Yes | The LLM to query (e.g., ai-overview, chatgpt, perplexity, gemini, ai-mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It implies a read operation ('retrieve') and mentions historical dynamics, hinting at aggregated time-series data. However, it does not explicitly state constraints like rate limits, authentication needs, or whether the data is cached or real-time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with a front-loaded verb and list of metrics, very concise. Penalized slightly for a typo ('historical historical dynamics'), but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no output schema, the description covers the what (link presence, position, traffic, trends) but not the why/when relative to siblings. Lacks details on return format or pagination, leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds context by naming the output fields but does not elaborate on parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a high-level overview of a domain's LLM performance, listing specific metrics (link presence, average position, AI traffic, historical dynamics). It distinguishes from siblings like aiSearchPromptsByBrand by focusing on summary data, but does not explicitly differentiate from domainAioOverview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as domainAioOverview or aiSearchPromptsByTarget. The description only states what it retrieves, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aiSearchPromptsByBrandAI Search: Get Prompts by Brand (SE Ranking)B
Fetch a paginated list of prompts where the specified brand is mentioned in LLM results. Maps to /v1/ai-search/prompts-by-brand.
| Name | Required | Description | Default |
|---|---|---|---|
| engine | Yes | LLM to query (e.g., 'ai-overview', 'chatgpt', 'perplexity', 'gemini', 'ai-mode'). | |
| brand | Yes | Brand name to search for in LLM snippets. | |
| source | Yes | Alpha-2 country code of the regional prompt database (e.g., 'us'). | |
| sort | No | The field to sort the results by. Options: volume, type, snippet_length. | volume |
| sort_order | No | Sort direction. Default: desc. | desc |
| limit | No | Max prompts per page (1–1000). Default: 100. | |
| offset | No | Starting index for pagination. Default: 0. | |
| filter[volume][from] | No | Specifies the minimum volume of searches to be included in the results. | |
| filter[volume][to] | No | Specifies the maximum volume of searches to be included in the results. | |
| filter[keyword_count][from] | No | Specifies the minimum number of words in prompts. | |
| filter[keyword_count][to] | No | Specifies the maximum number of words in prompts. | |
| filter[characters_count][from] | No | Specifies the minimum prompt length in characters. | |
| filter[characters_count][to] | No | Specifies the maximum prompt length in characters. | |
| filter[multi_keyword_included] | No | A URL-encoded JSON string specifying keywords that must be present in the prompt. For example: filter[multi_keyword_included]=[[{"type":"contains","value":"seo"},{"type":"contains","value":"tools"}],[{"type":"contains","value":"backlinks"}]] | |
| filter[multi_keyword_excluded] | No | A URL-encoded JSON string specifying keywords that must NOT be present in the prompt. For example: filter[multi_keyword_excluded]=[[{"type":"contains","value":"seo"},{"type":"contains","value":"tools"}],[{"type":"contains","value":"backlinks"}]] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. The description only states the action and endpoint, omitting details about authorization, rate limits, error behavior, or what happens when the brand is not found. A simple fetch operation still warrants mentioning pagination nuances or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence efficiently conveys the core purpose and endpoint. No redundant information. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return format, pagination behavior beyond limit/offset, or how to interpret results. Users would need external documentation for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter is already well-documented. The description adds only the endpoint mapping and pagination context ('paginated list'), which is marginal. Given the baseline of 3 for high schema coverage, this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch a paginated list of prompts'), the resource ('prompts where the specified brand is mentioned in LLM results'), and provides the endpoint. This effectively distinguishes it from siblings like 'aiSearchPromptsByTarget' or 'aiSearchOverview'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for brand-specific prompt searches but does not explicitly state when to use this tool versus alternatives (e.g., 'aiSearchPromptsByTarget') or provide context on prerequisites or complementary tools. No when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aiSearchPromptsByTargetAI Search: Get Prompts by Target (SE Ranking)B
Fetch the list of prompts (queries) that refer to or mention a given target (domain/URL) in the AI Search context. Corresponds to SE Ranking’s “Get Prompts by Target” API section.
| Name | Required | Description | Default |
|---|---|---|---|
| engine | Yes | Type of LLM engine (e.g. 'chatgpt', 'perplexity', 'ai-mode', etc.). | |
| target | Yes | The target to retrieve prompts for (domain, host, or URL). | |
| source | Yes | Alpha-2 country code of the regional prompt database (e.g. 'US'). | |
| scope | No | Scope of analysis: base_domain (the root domain only), domain (the domain including all subdomains), or url (an exact URL). | base_domain |
| sort | No | The field to sort the results by. Options: volume, type, snippet_length. | volume |
| sort_order | No | Sort order ('asc' for ascending, 'desc' for descending). Default is 'desc'. | desc |
| limit | No | Maximum number of prompts to return. | |
| offset | No | Offset for pagination (starting index). | |
| filter[volume][from] | No | Specifies the minimum volume of searches to be included in the results. | |
| filter[volume][to] | No | Specifies the maximum volume of searches to be included in the results. | |
| filter[keyword_count][from] | No | Specifies the minimum number of words in prompts. | |
| filter[keyword_count][to] | No | Specifies the maximum number of words in prompts. | |
| filter[characters_count][from] | No | Specifies the minimum prompt length in characters. | |
| filter[characters_count][to] | No | Specifies the maximum prompt length in characters. | |
| filter[multi_keyword_included] | No | A URL-encoded JSON string specifying keywords that must be present in the prompt. For example: filter[multi_keyword_included]=[[{"type":"contains","value":"seo"},{"type":"contains","value":"tools"}],[{"type":"contains","value":"backlinks"}]] | |
| filter[multi_keyword_excluded] | No | A URL-encoded JSON string specifying keywords that must NOT be present in the prompt. For example: filter[multi_keyword_excluded]=[[{"type":"contains","value":"seo"},{"type":"contains","value":"tools"}],[{"type":"contains","value":"backlinks"}]] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, rate limits, authentication requirements, or pagination behavior (though limit/offset parameters exist). The description is minimal and does not compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the purpose and references the API section concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 16 parameters and no output schema, the description fails to mention return values, error handling, or output format. It is insufficient for a complex tool with rich filtering capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 16 parameters, so the description adds no additional meaning. Baseline score of 3 is appropriate as the schema already provides semantic clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a list of prompts that mention a given target (domain/URL). It uses specific verbs ('Fetch') and resource ('prompts that refer to or mention a given target'), and distinguishes from sibling tools like aiSearchOverview and aiSearchPromptsByBrand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., aiSearchPromptsByBrand). Sibling tools are listed but no explicit when-to-use or when-not-to-use instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinksAllBacklinks AllA
Fetch backlinks pointing to a single target with sorting, limits, rank filters, URL/anchor filters, and nofollow filter (v1/backlinks/all)
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| limit | No | Max results to return (1–10,000). Default: 100. | |
| per_domain | No | Number of backlinks per referring domain to return. If omitted, returns all backlinks (may exceed 100). | |
| output | No | Response format. Default: json. | json |
| order_by | No | Sort field: 'date_found' (most recent first), 'domain_inlink_rank', or 'inlink_rank'. | date_found |
| inlink_rank_from | No | Min InLink Rank filter (0–100). | |
| inlink_rank_to | No | Max InLink Rank filter (0–100). | |
| domain_inlink_rank_from | No | Min Domain InLink Rank filter (0–100). | |
| domain_inlink_rank_to | No | Max Domain InLink Rank filter (0–100). | |
| url_from_filter | No | Substring to filter 'url_from' by (ASCII, max 2063 chars). | |
| url_from_filter_mode | No | How to match 'url_from_filter'. Default: contains. | contains |
| url_to_filter | No | Substring to filter 'url_to' by (ASCII, max 2063 chars). | |
| url_to_filter_mode | No | How to match 'url_to_filter'. Default: contains. | contains |
| anchor_filter | No | Substring to filter 'anchor' by (ASCII, max 2063 chars). | |
| anchor_filter_mode | No | How to match 'anchor_filter'. Default: contains. | contains |
| nofollow_filter | No | Backlink type filter: 'nofollow_only' or 'dofollow_only'. If omitted, returns all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It does say 'Fetch', which correctly signals a read-only operation, and 'single target' clarifies the input scope. However, it does not disclose the shape of returned backlink records, pagination behavior, or the 'per_domain' caveat that results may exceed 100 records.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-organized sentence that front-loads the action and resource, then enumerates the filter dimensions in a skimmable list, and ends with the exact endpoint. Every element earns its place and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters and no output schema, the one-line overview is useful but not fully complete. The schema documents all parameters, but the description does not describe the expected result structure, pagination semantics, or behavior when optional filters are omitted. It is adequate for invocation but relies heavily on the schema and agent inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented with enums, defaults, ranges, and meanings. The description adds only a high-level grouping of filters (rank, URL/anchor, nofollow) without providing syntax or interaction details. Baseline 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact operation and resource: 'Fetch backlinks pointing to a single target'. It also lists the distinguishing capabilities (sorting, limits, rank filters, URL/anchor filters, nofollow filter), which clearly separates it from sibling aggregation tools like backlinksSummary or backlinksRefdomains. The endpoint reference 'v1/backlinks/all' removes ambiguity about which API function is being invoked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The feature list implies this is the raw backlinks endpoint, and 'single target' gives some scope context. However, the description never names sibling alternatives or states when not to use it, so an agent must infer the distinction from the tool name and sibling list rather than from explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinksAnchorsBacklinks AnchorsB
Fetch anchor texts of backlinks pointing to a single target with sorting and limit controls (v1/backlinks/anchors)
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| order_by | No | Sort field (descending): 'backlinks' = total backlinks using the anchor; 'refdomains' = total referring domains using the anchor. | backlinks |
| limit | No | Maximum number of results to return (1–10,000). Default: 100. | |
| output | No | Response format. Default: json. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of disclosing behavior. It does indicate a read-only 'Fetch' operation and scopes the request to a single target, but it does not mention authentication expectations, how results are aggregated or grouped, whether pagination exists beyond the limit parameter, or what response shape to expect. These are material gaps for an API tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that names the action, resource, and key controls without unnecessary fluff. The parenthetical endpoint reference is mildly redundant with the tool name but still useful for direct API mapping, so the length and structure are appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters, no annotations, no output schema, and several similar sibling tools. The description explains the core purpose but does not clarify return values, grouping behavior, or how it differs from other backlinks* tools, leaving the definition incomplete for reliable selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters and defaults documented, so the baseline is 3. The description adds little beyond what the schema already provides, though it does reinforce the 'single target' concept and the presence of sorting and limit controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation ('Fetch') and the resource ('anchor texts of backlinks pointing to a single target'), making its purpose immediately understandable. However, it does not explicitly distinguish itself from sibling tools like backlinksAll or backlinksRefdomains, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when anchor-text data for a backlink target is needed, and it notes sorting and limit controls. It does not mention alternatives, exclusions, or comparative conditions, leaving the when-to-use decision somewhat to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinksAuthorityBacklinks AuthorityC
Fetch authority metrics for a target (domain, host or URL) (v1/backlinks/authority)
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to assess authority: root domain, host (subdomain), or full URL. | |
| output | No | Response format. Default: json. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Fetch authority metrics' which conveys a read operation, but does not disclose what metrics are included, whether the data is live or cached, or any response structure. The endpoint path in parentheses adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with the core action front-loaded. It includes useful endpoint information in parentheses without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is insufficient for an agent to fully contextualize the tool: it lacks return value details, usage guidance relative to siblings, and clarity on what 'authority metrics' encompasses. Given the lack of output schema and annotations, this one-liner leaves too much unsaid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both target and output parameters already described in the schema. The description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches authority metrics for a target, with the target types explicitly listed (domain, host, or URL). This is a specific verb-resource pair, though it does not explicitly distinguish itself from siblings like domainOverview or backlinksSummary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many sibling tools. The description only states what the tool does, not when it should be preferred over alternatives like domainOverview or backlinksSummary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinksIndexedPagesBacklinks Indexed PagesB
Fetch site pages that have backlinks, with sorting and limit controls (v1/backlinks/indexed-pages)
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| order_by | No | Sort field (descending): 'backlinks' or 'refdomains'. Default: backlinks. | backlinks |
| limit | No | Maximum number of results to return (1–10,000). Default: 100. | |
| output | No | Response format. Default: json. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only restates the basic operation and mentions sorting/limit controls. It does not say that results are sorted descending, what fields are returned, whether pagination exists, or what the response looks like, leaving the agent to infer behavior from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the action, resource, key controls, and endpoint without filler. It earns its place and stays compact despite the number of parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is rich enough to make the tool minimally invocable, but with no output schema and no annotations, the description should have provided more operational context such as result shape or how this differs from sibling backlink tools. It is adequate for a simple list operation but has clear gaps for an agent deciding among 23 siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: target, mode, limit, output, and order_by all have their own descriptions with enums and defaults. The description's 'sorting and limit controls' merely echoes what the schema already documents, adding no new parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Fetch') and resource ('site pages that have backlinks'), which clearly identifies the operation as a list of indexed pages rather than raw backlink records. The endpoint path adds confirmation. It does not explicitly distinguish itself from siblings like backlinksAll or backlinksSummary, but the word 'pages' gives enough semantic separation for a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of backlinksAll, backlinksRefdomains, backlinksAnchors, or other siblings. The phrase 'with sorting and limit controls' describes features but does not state intended 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.
backlinksRefdomainsBacklinks Referring DomainsB
Fetch referring domains pointing to a single target with sorting and limit controls (v1/backlinks/refdomains)
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| order_by | No | Sort field: 'date_found' (most recent first), 'domain_inlink_rank' (highest first), or 'inlink_rank' (homepage IR highest first). | date_found |
| limit | No | Max results to return (1–10,000). Default: 100. | |
| output | No | Response format. Default: json. | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure. 'Fetch' implies a read operation and 'limit controls' hints at pagination, but the description does not state return format, rate limits, authentication needs, or how sorting behavior manifests in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence naming the action, resource, target requirement, and available controls. There is no filler or redundant elaboration, and the endpoint suffix is compact useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read-only tool with a fully described input schema, the description covers the essentials. However, there is no output schema and no annotations, so the response shape, error behavior, and when-to-use boundaries remain unstated, making the description adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters, their defaults, enums, and constraints. The description only adds the generic phrase 'sorting and limit controls,' which does not meaningfully supplement the schema but does not need to given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Fetch' and clearly identifies the resource ('referring domains') and the target scope, making the core function understandable. It does not explicitly distinguish this from sibling tools like backlinksAll or backlinksAuthority, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as backlinksAll, backlinksSummary, or backlinksAuthority. The only implied use case is needing referring-domain data, but there are no exclusions, prerequisites, or contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinksSummaryBacklinks SummaryB
Fetch extended backlink statistics for one or multiple targets. Optionally builds an analysis prompt comparing your domain vs a competitor for a given keyword (v1/backlinks/summary)
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Single target or an array of targets (root domain, host, or full URL). When omitted, it defaults to [domain, competitor] if both are provided. | |
| mode | No | Scope of analysis: 'domain' (*.example.com/* incl. subdomains), 'host' (www.example.com/* only), or 'url' (single URL). Default: host. | host |
| output | No | Response format. Default: json. | json |
TDQS
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 a read-only fetch action and the notable behavior of optionally building an analysis prompt, which adds value. However, it does not describe output shape, pagination, rate limits, or any other operational constraints, so the disclosure remains incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary action. The second sentence adds the optional analysis-prompt behavior and endpoint context. The parenthetical endpoint is mildly redundant with the tool name, but it does not waste words overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description should explain what 'extended backlink statistics' actually include and how the response is returned. It also fails to differentiate the tool from the many sibling backlink tools, making tool selection unnecessarily difficult for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents mode, output, and target thoroughly. The description adds some context by noting multiple targets and domain-vs-competitor comparison, but it does not materially deepen parameter understanding beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource: 'Fetch extended backlink statistics for one or multiple targets.' It also adds the distinguishing capability of optionally building an analysis prompt comparing a domain against a competitor. It stops short of a 5 because 'extended backlink statistics' is vague relative to sibling tools like backlinksAuthority or backlinksRefdomains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus the many sibling backlink tools. The mention of comparing 'your domain vs a competitor for a given keyword' implies a use case, but no alternatives are named and no exclusion criteria are given, leaving an agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainAdsByDomainDomain Ads by DomainC
Fetch domain ads by domain (v1/domain/ads)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| domain | Yes | The specific domain for which to retrieve its paid ad data. | |
| from | No | The starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”). | |
| to | No | The ending year and month for the data retrieval period, formatted as “YYYY-MM”. | |
| page | No | For paginated results, specifies the page number of domains advertising on this keyword to retrieve. | |
| limit | No | The maximum number of domains (advertising on the keyword) to return per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It implies read-only behavior via 'Fetch' but does not mention pagination, date-range handling, dependence on the source country code, or what the response contains. Not misleading, but very thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and has no filler words; every token contributes. However, the brevity sacrifices valuable context, making it effectively minimal rather than well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a moderate six-parameter schema, the description is too sparse to be contextually complete. It fails to explain what 'domain ads' are, the role of source and date range, or how this tool differs from domainAdsByKeyword, all of which matter for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already documents all parameter meanings. The description's 'by domain' merely maps to the domain parameter and adds no additional semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetch') and resource ('domain ads') scoped by domain, with the endpoint reference adding a small amount of clarity. It is not a tautology because it adds the verb 'Fetch', but it largely mirrors the tool name and does not elaborate on what 'domain ads' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the closely related domainAdsByKeyword or other siblings. There are no exclusions, prerequisites, or specific use cases mentioned, so an agent has to infer suitability entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainAdsByKeywordDomain Ads by KeywordC
Fetch domain ads by keyword (v1/domain/ads)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The specific keyword for which to retrieve paid ad data. | |
| from | No | The starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”). | |
| to | No | The ending year and month for the data retrieval period, formatted as “YYYY-MM”. | |
| page | No | For paginated results, specifies the page number of domains advertising on this keyword to retrieve. | |
| limit | No | The maximum number of domains (advertising on the keyword) to return per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry behavioral disclosure. It does not mention pagination (page/limit), date-range constraints (from/to), the required country source, or the shape of the returned data; it only says 'fetch'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. The endpoint parenthetical adds a small amount of useful context without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters, no annotations, and no output schema, this description is too minimal to fully orient an agent. It lacks usage context, behavioral details, and any indication of what a result contains, though the schema does document parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond the schema, but it does not need to, as each property already has a descriptive text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Fetch'), resource ('domain ads'), and selection criterion ('by keyword'), plus the endpoint. It does not explicitly contrast with sibling domainAdsByDomain, though the keyword qualifier makes the purpose understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as domainAdsByDomain or domainKeywords. The description only states the operation, leaving the agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainAioDiscoverBrandAIO Discover BrandC
Fetch AI Overviews brand names (v1/domain/aio/discover-brand)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The alpha-2 country code for the regional database. Example: us | |
| target | Yes | The domain, subdomain, or URL to analyze. Example: seranking.com | |
| scope | No | The scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). | base_domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states what data is fetched and does not explain return structure, limitations, regional behavior, or any side effects. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It wastes no words and immediately identifies the operation and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema or annotations, the description leaves important context missing: what the returned brand names look like, whether results are paginated, and how this differs from the related AIO sibling tools. The high schema coverage helps with parameters but not with overall call semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters and their meanings. The description adds little beyond naming the endpoint, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Fetch') and resource ('AI Overviews brand names'), and the endpoint string reinforces the purpose. It does not explicitly differentiate from sibling tools like domainAioKeywordsByBrand, but the verb and resource are specific enough for basic identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings. There is no mention of scenarios, prerequisites, or alternative tools, leaving the agent to infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainAioKeywordsByBrandAIO Keywords by BrandC
Fetch AI Overviews domain keywords by brand (v1/domain/aio/keywords-by-brand)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The alpha-2 country code for the regional database. Example: us | |
| brand | Yes | The brand name to search for in AIO snippets. Example: SE Ranking. | |
| scope | No | The scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). | base_domain |
| sort | No | The field to sort the results by. Available values: volume, type, snippet_length. | volume |
| sort_order | No | The order for sorting. Available values: asc, desc. | desc |
| offset | No | The starting position for paginated results. | |
| limit | No | The maximum number of keywords to return per page. | |
| filter[volume][from] | No | Specifies the minimum monthly search volume for keywords to be included. | |
| filter[volume][to] | No | Specifies the maximum monthly search volume for keywords to be included. | |
| filter[difficulty][from] | No | Specifies the minimum keyword difficulty score (typically 0-100) for keywords to be included. | |
| filter[difficulty][to] | No | Specifies the maximum keyword difficulty score for keywords to be included. | |
| filter[keyword_count][from] | No | Specifies the minimum number of words in a keyword phrase. | |
| filter[keyword_count][to] | No | Specifies the maximum number of words in a keyword phrase. | |
| filter[intents] | No | A comma-separated list of search intent codes to filter keywords. | |
| filter[competition][from] | No | Specifies the minimum competition score (typically 0-1 or 0-100, depending on the metric scale) for keywords. | |
| filter[competition][to] | No | Specifies the maximum competition score for keywords. | |
| filter[cpc][from] | No | Specifies the minimum Cost Per Click (CPC) value for keywords. | |
| filter[cpc][to] | No | Specifies the maximum Cost Per Click (CPC) value for keywords. | |
| filter[traffic][from] | No | Specifies the minimum estimated monthly traffic for keywords. | |
| filter[traffic][to] | No | Specifies the maximum estimated monthly traffic for keywords. | |
| filter[position][from] | No | Specifies the minimum ranking position for keywords. | |
| filter[position][to] | No | Specifies the maximum ranking position for keywords. | |
| filter[characters_count][from] | No | Specifies the minimum character length for keyword phrases. | |
| filter[characters_count][to] | No | Specifies the maximum character length for keyword phrases. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Fetch,' which implies a read-only operation, but provides no detail on pagination behavior, how brand matching works, what data is returned, or how filters interact with the results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence and front-loads the core resource. It is not bloated, though it largely restates the title and adds only the endpoint, so it earns a slightly above-average score rather than a perfect one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex 24-parameter tool with no output schema and no annotations, yet the description only gives a one-line summary. Essential context—such as what 'by brand' means for querying, the shape of the response, and how pagination and filters behave—is absent, making the tool under-specified for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents all 24 parameters, including enums and defaults. The description adds no additional parameter context, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch') and the resource ('AI Overviews domain keywords by brand'), plus the endpoint. It is not a tautology and conveys a specific purpose. However, it does not explicitly contrast itself with similar siblings like domainAioKeywordsByTarget or domainAioDiscoverBrand, relying on the phrase 'by brand' to imply the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus its many siblings, no exclusions, and no mention of prerequisites or context. The description only restates what the tool fetches, leaving the agent to infer when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainAioKeywordsByTargetAIO Keywords by TargetC
Fetch AI Overviews domain keywords by target (v1/domain/aio/keywords-by-target)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The alpha-2 country code for the regional database. Example: us | |
| target | Yes | The domain, subdomain, or URL to analyze. Example: seranking.com | |
| scope | No | The scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). | base_domain |
| sort | No | The field to sort the results by. Available values: volume, type, snippet_length. | volume |
| sort_order | No | The order for sorting. Available values: asc, desc. | desc |
| offset | No | The starting position for paginated results. | |
| limit | No | The maximum number of keywords to return per page. | |
| filter[volume][from] | No | Specifies the minimum monthly search volume for keywords to be included. | |
| filter[volume][to] | No | Specifies the maximum monthly search volume for keywords to be included. | |
| filter[difficulty][from] | No | Specifies the minimum keyword difficulty score (typically 0-100) for keywords to be included. | |
| filter[difficulty][to] | No | Specifies the maximum keyword difficulty score for keywords to be included. | |
| filter[keyword_count][from] | No | Specifies the minimum number of words in a keyword phrase. | |
| filter[keyword_count][to] | No | Specifies the maximum number of words in a keyword phrase. | |
| filter[intents] | No | A comma-separated list of search intent codes to filter keywords. | |
| filter[competition][from] | No | Specifies the minimum competition score (typically 0-1 or 0-100, depending on the metric scale) for keywords. | |
| filter[competition][to] | No | Specifies the maximum competition score for keywords. | |
| filter[cpc][from] | No | Specifies the minimum Cost Per Click (CPC) value for keywords. | |
| filter[cpc][to] | No | Specifies the maximum Cost Per Click (CPC) value for keywords. | |
| filter[traffic][from] | No | Specifies the minimum estimated monthly traffic for keywords. | |
| filter[traffic][to] | No | Specifies the maximum estimated monthly traffic for keywords. | |
| filter[position][from] | No | Specifies the minimum ranking position for keywords. | |
| filter[position][to] | No | Specifies the maximum ranking position for keywords. | |
| filter[characters_count][from] | No | Specifies the minimum character length for keyword phrases. | |
| filter[characters_count][to] | No | Specifies the maximum character length for keyword phrases. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'Fetch', which implies read-only behavior. It does not mention pagination, sorting defaults, filtering semantics, output structure, rate limits, or any operational caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words, so it is concise. However, for a 24-parameter API with many sibling tools, it is under-specified rather than helpfully structured; the parenthetical endpoint is useful but the description barely goes beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is rich, but there are no annotations and no output schema, so the description must provide more context. It fails to explain what the results look like, how filters interact, or when this target-based endpoint should be preferred over the many sibling tools, leaving the agent to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 24 parameters with 100% coverage, so the baseline is 3. The description adds little beyond the 'target' hint in the endpoint, and does not clarify the relationship between the required source and target parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Fetch AI Overviews domain keywords by target', and includes the endpoint for reference. It distinguishes itself from brand-based sibling tools via the 'by target' phrasing, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like domainAioKeywordsByBrand, domainAioOverview, or domainKeywords. There are no conditions, exclusions, or hints about which scenario calls for this specific endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainAioOverviewAIO OverviewC
Fetch AI Overviews domain metrics (v1/domain/aio/overview)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The alpha-2 country code for the regional database. Example: us | |
| target | Yes | The domain, subdomain, or URL to analyze. Example: seranking.com | |
| scope | No | The scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). | base_domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Fetch' implies a read operation, but the description does not cover limits, authorization, scope behavior, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, and it front-loads the core action and resource before the endpoint. It could include more guidance, but what is present is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description needs to compensate by explaining what metrics are returned and how this tool relates to similar AIO tools. It does neither, leaving the tool underspecified for an agent operating in a large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics are already fully documented in the schema. The description adds no extra meaning beyond the endpoint and general resource type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and a clear resource ('AI Overviews domain metrics'), so an agent can infer the operation. However, it does not distinguish this tool from the related AIO sibling tools like domainAioDiscoverBrand or domainAioKeywordsByTarget.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the many sibling tools. The description simply states what it fetches, leaving the agent to guess whether this is the right tool for a given task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainCompetitorsDomain CompetitorsC
Fetch domain competitors (v1/domain/competitors)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| domain | Yes | The primary domain for which to find competitors. | |
| type | No | Specifies whether to find competitors in organic search results or paid search (advertising). | organic |
| stats | No | A flag to control the level of detail in the response. If set to “1”, additional statistical parameters are returned for each competitor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the fetch action and endpoint, without explaining the output shape, whether this is a read-only operation, rate limits, or how competitor data is determined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the verb and endpoint, but it is under-specified. It provides little beyond restating the tool name, so its efficiency does not translate into useful guidance for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should explain expected results and usage context. It does neither, leaving an agent unable to anticipate the response or confidently choose this tool among many similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents all four parameters including the 'type' enum, 'stats' flag, 'domain', and 'source'. The description adds no parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Fetch domain competitors' with the endpoint v1/domain/competitors. It is clear about the action, but it does not differentiate itself from sibling tools like domainKeywords, domainAdsByDomain, or domainOverview, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention the organic/paid distinction (even though the schema has a 'type' parameter), nor does it name related tools or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainKeywordsDomain KeywordsC
Fetch domain keywords (v1/domain/keywords)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| domain | Yes | The domain name for which to retrieve keywords. | |
| type | No | Specifies whether to retrieve keywords for organic search traffic or paid search (advertising) traffic. | organic |
| order_field | No | The field by which the returned keyword list should be sorted. | traffic |
| order_type | No | The order of sorting. | desc |
| page | No | For paginated results, specifies the page number to retrieve. | |
| limit | No | The maximum number of keywords to return per page. | |
| cols | No | A comma-separated list of specific response parameter names to include in the output. If omitted, a default set of relevant columns is returned. | |
| pos_change | No | Filters keywords based on changes in their ranking positions compared to the previous period. | |
| filter[volume][from] | No | Specifies the minimum monthly search volume for keywords to be included. | |
| filter[volume][to] | No | Specifies the maximum monthly search volume for keywords to be included. | |
| filter[difficulty][from] | No | Specifies the minimum keyword difficulty score (typically 0-100) for keywords to be included. | |
| filter[difficulty][to] | No | Specifies the maximum keyword difficulty score for keywords to be included. | |
| filter[keyword_count][from] | No | Specifies the minimum number of words in a keyword phrase. | |
| filter[keyword_count][to] | No | Specifies the maximum number of words in a keyword phrase. | |
| filter[intents] | No | A comma-separated list of search intent codes to filter keywords. | |
| filter[competition][from] | No | Specifies the minimum competition score (typically 0-1 or 0-100, depending on the metric scale) for keywords. | |
| filter[competition][to] | No | Specifies the maximum competition score for keywords. | |
| filter[cpc][from] | No | Specifies the minimum Cost Per Click (CPC) value for keywords. | |
| filter[cpc][to] | No | Specifies the maximum Cost Per Click (CPC) value for keywords. | |
| filter[traffic][from] | No | Specifies the minimum estimated monthly traffic for keywords. | |
| filter[traffic][to] | No | Specifies the maximum estimated monthly traffic for keywords. | |
| filter[position][from] | No | Specifies the minimum ranking position for keywords. | |
| filter[position][to] | No | Specifies the maximum ranking position for keywords. | |
| filter[characters_count][from] | No | Specifies the minimum character length for keyword phrases. | |
| filter[characters_count][to] | No | Specifies the maximum character length for keyword phrases. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Fetch' weakly implies a read operation, but the description does not mention pagination behavior, default result sets, sorting, filtering semantics, or what the output contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with no filler or redundancy—and it efficiently includes the raw endpoint. However, given the tool's complexity, the brevity edges toward under-specification rather than ideal structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 26-parameter tool with no output schema, no annotations, and a one-line description, the context is severely lacking. An agent gets no orientation about return values, default behavior, sorting, filters, or how this tool relates to the extensive sibling set, making the definition inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 26 parameters thoroughly. The description itself adds no parameter meaning, but the schema fully compensates, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific resource with the verb 'Fetch' and the endpoint 'v1/domain/keywords', so an agent understands the basic operation. However, it does not differentiate this from sibling tools like domainAdsByKeyword or keywordsSimilar, which also involve domain or keyword retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, and no exclusions or preferred scenarios are mentioned. The description simply identifies the operation without context on how it fits among the many sibling keyword and domain tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainKeywordsComparisonDomain Keywords ComparisonA
Analyzes and compares the keyword rankings of two websites: domain and compare. It can find keywords they have in common or identify a 'keyword gap'—keywords for which the domain ranks, but the compare domain does not.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| domain | Yes | The primary domain for the analysis. For a keyword gap analysis (`diff=1`), this will be the domain that has the keywords. | |
| compare | Yes | The secondary domain for comparison. For a keyword gap analysis (`diff=1`), this will be the domain that is missing the keywords. | |
| type | No | Specifies whether to compare keywords based on organic search traffic or paid search (advertising) traffic. | organic |
| page | No | For paginated results, specifies the page number of keywords to retrieve. | |
| limit | No | The maximum number of keywords to return per page. | |
| cols | No | A comma-separated list of specific response parameter names to include in the output. If omitted, a default set of relevant columns is returned for the comparison. | |
| diff | No | Controls the comparison mode. Use `0` to find keywords common to both domains. Use `1` for a keyword gap analysis to find keywords the `domain` ranks for, but the `compare` domain does not. | |
| order_field | No | Specifies the field by which to sort the results. | keyword |
| order_type | No | Specifies the sort order for the results. | asc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining what happens when invoked. It does convey the core behavior: comparing two domains and returning either common keywords or a directional gap. However, it does not mention whether the operation is read-only, what the default mode is when diff is omitted, or any pagination/ordering behavior—the schema covers those, but the description adds little beyond purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the core comparison front-loaded and the gap definition in the second sentence. It is tight and readable, though 'Analyzes and compares' is slightly generic and the sentence could have started with the specific common-vs-gap behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the tool-selection-critical distinction from siblings and the schema fully documents the 10 parameters, making invocation possible. But with no output schema and no annotations, it leaves the agent to infer return shape, default common-mode behavior, pagination, and ordering implications, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces the roles of domain and compare in the gap analysis, but this largely duplicates the schema descriptions for domain, compare, and diff. It adds no new parameter syntax or format beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Analyzes and compares') and resource ('keyword rankings of two websites'), then defines the two supported modes: common keywords and a keyword gap. It explicitly states the gap direction ('domain ranks, compare does not'), which distinguishes it from the sibling domainKeywordsReverseComparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool—whenever two domains need keyword overlap or gap comparison—and the directional wording helps an agent avoid the reverse-comparison sibling. It stops short of explicitly naming alternatives or stating when not to use it, so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainKeywordsReverseComparisonDomain Keywords Reverse ComparisonC
Compare keywords across domains (v1/domain/keywords/comparison)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| domain | Yes | The primary domain for the comparison. | |
| compare | Yes | The competitor domain to compare against the primary domain. | |
| type | No | Specifies whether to compare keywords based on organic search traffic or paid search (advertising) traffic. | organic |
| page | No | For paginated results, specifies the page number of keywords to retrieve. | |
| limit | No | The maximum number of keywords to return per page. | |
| cols | No | A comma-separated list of specific response parameter names to include in the output. If omitted, a default set of relevant columns is returned for the comparison. | |
| order_field | No | Specifies the field by which to sort the results. | keyword |
| order_type | No | Specifies the sort order for the results. | asc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention whether this is a read-only operation, what output format to expect, how pagination or sorting behave, or what 'reverse' means. The description only restates the operation without disclosing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant content. It is brief, but this brevity comes at the cost of missing important context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 9 parameters, no output schema, no annotations, and a closely related sibling tool (domainKeywordsComparison). The description provides only a minimal phrase and fails to explain the reverse comparison semantics, result behavior, or when to choose this tool, leaving agents under-equipped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds no parameter meaning beyond the schema, but it does not need to because the schema is self-sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Compare keywords across domains.' However, it does not explain what 'Reverse' adds relative to the sibling tool domainKeywordsComparison, so it does not fully distinguish itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus domainKeywordsComparison or any other sibling. The description only implies a general use case and provides no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainOverviewDomain OverviewC
Fetch domain overview (v1/domain/overview)
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain for which to retrieve database data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the operation and endpoint, without explaining response behavior, limitations, or any side-effect/read-only guarantees beyond the implication of 'Fetch'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with the key endpoint included, making it easy to scan. It repeats the tool title somewhat, but the endpoint reference adds useful precision without introducing clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotation coverage, yet the description does not explain what a domain overview contains or how this endpoint differs from the many adjacent overview-related tools. An agent would struggle to know what response to expect or which sibling to choose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single 'domain' parameter, including its own description, so the description does not need to add much. The description adds no parameter-specific meaning, but the schema already handles the semantics, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and names the resource ('domain overview') plus the endpoint (v1/domain/overview), so an agent knows what the tool operates on. However, it does not differentiate this from closely related siblings like domainOverviewDb, domainOverviewWorldwide, or domainOverviewHistory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus the many sibling overview tools. Given the large sibling list with overlapping names, the lack of any selection criteria is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainOverviewDbDomain Overview DBC
Fetch domain overview by database (v1/domain/overview/db)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| domain | Yes | The domain for which to retrieve the keyword statistics. | |
| with_subdomains | No | A flag to determine whether data for subdomains should be included in the analysis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Fetch' implies a read-only operation, but the description does not explain how the regional database selection works, what data is returned, whether authentication is required, or how with_subdomains alters the behavior. The endpoint string adds minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, which is good. However, it is so terse that it borders on under-specification, and the endpoint path largely restates the tool name rather than adding useful structural context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description should explain what 'by database' means, how it differs from sibling tools, and what the response contains. It only names the operation; the schema covers parameters but not the contextual behavior needed for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds little beyond the schema; 'by database' loosely connects to the source parameter, but source is already described as the regional keyword database in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and a resource ('domain overview by database'), and includes the endpoint path, making the core operation clear. However, 'by database' is ambiguous and the description does not explicitly differentiate this tool from sibling tools like domainOverview or domainOverviewWorldwide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as domainOverview, domainOverviewHistory, or domainOverviewWorldwide. The description does not state any conditions, exclusions, or decision criteria, so the agent must infer usage from the endpoint and parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainOverviewHistoryDomain Overview HistoryB
Fetch domain historical overview (v1/domain/overview/history)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| domain | Yes | The domain name for which to retrieve historical performance data. | |
| type | No | Specifies whether to retrieve historical data for organic search traffic or paid search (advertising) traffic. | organic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure burden. It only says 'Fetch domain historical overview' and gives an endpoint; it does not describe what the historical data includes, time ranges, metric units, pagination, or any other runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a front-loaded verb and resource, followed by the endpoint in parentheses. There is no filler or redundant content; every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description alone must provide sufficient context. It explains only the basic action and endpoint, but omits important context such as what metrics are returned, what time range is covered, and how this history tool relates to the broader domainOverview family. Parameter coverage is acceptable due to the schema, but overall context is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents type, domain, and source clearly. The description adds no additional parameter context, but the schema handles the heavy lifting, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Fetch domain historical overview' and includes the endpoint. The word 'historical' helps distinguish it from the sibling domainOverview, but it does not explicitly call out the difference or other related variants like domainOverviewWorldwide, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'historical' implies this tool is for retrieving historical overview data rather than current data, giving some usage signal. However, there is no explicit guidance on when to choose this over the many sibling tools, no exclusions, and no mention of alternatives, leaving the agent to infer the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainOverviewWorldwideDomain Overview WorldwideC
Fetch domain worldwide overview (v1/domain/overview/worldwide)
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name for which to retrieve worldwide statistics. | |
| currency | No | An ISO 4217 currency code to be used for any monetary values (like traffic cost) returned in the response. | USD |
| fields | No | A comma-separated list specifying which data fields or categories to include in the response. This allows for tailoring the response to only the needed information. | price, traffic, keywords |
| show_zones_list | No | A boolean-like value (“1” for true, “0” for false) to determine if the response should include a detailed breakdown of statistics for each individual regional zone (country) in addition to the aggregated worldwide statistics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'Fetch' and names the endpoint. It does not describe whether the operation is read-only, what the response contains, whether pagination or rate limits apply, or how the worldwide breakdown behaves. The description is minimal and leaves the agent without meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words and includes the endpoint path, which is useful. However, the phrase 'domain worldwide overview' largely repeats the tool name and title, so it is not maximally informative per word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters, no output schema, and no annotations, the description is too sparse. It does not explain the meaning of worldwide statistics, what fields like price/traffic/keywords represent in this context, or what the response will look like. An agent would struggle to correctly interpret results or choose this over domainOverview without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema with descriptions and defaults. The tool description adds no parameter-specific meaning, but the baseline of 3 applies because the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch') and a specific resource ('domain worldwide overview'), and includes the exact endpoint path (v1/domain/overview/worldwide), which helps distinguish it from the sibling domainOverview tool. However, it does not explicitly contrast it with domainOverview or other siblings, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as domainOverview, domainOverviewHistory, or domainOverviewDb. The agent is left to infer from the 'worldwide' qualifier alone, which is not sufficient given the large sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywordsExportExport Keywords MetricsC
Bulk retrieve metrics for a list of keywords (v1/keywords/export, POST form-data; source in query)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keywords | Yes | For a single keyword, use one keywords[] parameter. Repeat the keywords[] to analyze multiple keywords. A maximum of 5,000 keywords can be submitted per call. | |
| sort | No | The field by which the returned list of keywords should be sorted. Common sortable fields include volume, cpc, difficulty, competition. | cpc |
| sort_order | No | The order of sorting for the sort field. | desc |
| cols | No | A comma-separated list of specific response parameter names to include in the output for each keyword. If omitted, all available data points are returned. | keyword, volume, cpc, competition, difficulty, history_trend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does mention the HTTP method (POST) and that source is in the query string, which is useful technical context. However, it does not describe response shape, pagination, rate limits, auth requirements, or whether this is a read-only operation, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs in the core action, the endpoint, the HTTP method, and a key transport detail. Every word earns its place, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description should explain what the response looks like and provide more behavioral context. It names the endpoint and action but leaves the agent without enough information to know what to expect back or how the export behaves at scale. With 5 parameters and rich schema coverage, this minimal description is insufficient for full autonomous invocation confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters, including defaults and formats. The description adds a small technical detail by noting 'source in query' and 'POST form-data', but it does not enrich parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: bulk retrieve metrics for a list of keywords. It also includes the endpoint path, giving concrete specificity. It doesn't explicitly differentiate from sibling keyword tools like keywordsSimilar or keywordsLongtail, but the 'bulk retrieve metrics' phrasing makes its core purpose evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as keywordsSimilar or keywordsRelated. It implies use for known keyword lists, but never states scenarios, exclusions, or why this tool should be preferred over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywordsLongtailLongtail KeywordsC
Fetch longtail (low search volume) keywords (v1/keywords/longtail)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| sort | No | The field by which the returned list of keywords should be sorted. | |
| sort_order | No | The order of sorting for the sort field. | |
| filter[volume][from] | No | Minimum monthly search volume. | |
| filter[volume][to] | No | Maximum monthly search volume. | |
| filter[difficulty][from] | No | Minimum keyword difficulty score (0-100). | |
| filter[difficulty][to] | No | Maximum keyword difficulty score (0-100). | |
| filter[cpc][from] | No | Minimum Cost Per Click. | |
| filter[cpc][to] | No | Maximum Cost Per Click. | |
| filter[competition][from] | No | Minimum competition score (0.0-1.0). | |
| filter[competition][to] | No | Maximum competition score (0.0-1.0). | |
| filter[keyword_count][from] | No | Minimum number of words in the keyword. | |
| filter[keyword_count][to] | No | Maximum number of words in the keyword. | |
| filter[characters_count][from] | No | Minimum character length of the keyword. | |
| filter[characters_count][to] | No | Maximum character length of the keyword. | |
| filter[serp_features] | No | Comma-separated list of SERP features to filter by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Fetch', implying a read operation, but does not disclose response format, pagination behavior, rate limits, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the key concept front-loaded. The endpoint string 'v1/keywords/longtail' is somewhat redundant but does not add meaningful clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 19 parameters, no annotations, and no output schema, a one-line description is insufficient. It does not explain what the result contains, how longtail differs operationally from similar tools, or what the agent should expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 19 parameters. The description adds no parameter-level meaning beyond the longtail/low-volume concept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Fetch longtail ... keywords' and clarifies the meaning with '(low search volume)'. It is distinct enough from siblings like keywordsSimilar or keywordsRelated, though it never explicitly differentiates from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool instead of alternatives such as keywordsSimilar or keywordsRelated. No use cases, exclusions, or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywordsQuestionsKeyword QuestionsC
Fetch keyword questions (v1/keywords/questions)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| sort | No | The field by which the returned list of keywords should be sorted. | |
| sort_order | No | The order of sorting for the sort field. | desc |
| history_trend | No | Whether to include historical search volume trend data in the response. | |
| filter[volume][from] | No | Minimum monthly search volume. | |
| filter[volume][to] | No | Maximum monthly search volume. | |
| filter[difficulty][from] | No | Minimum keyword difficulty score (0-100). | |
| filter[difficulty][to] | No | Maximum keyword difficulty score (0-100). | |
| filter[cpc][from] | No | Minimum Cost Per Click. | |
| filter[cpc][to] | No | Maximum Cost Per Click. | |
| filter[competition][from] | No | Minimum competition score (0.0-1.0). | |
| filter[competition][to] | No | Maximum competition score (0.0-1.0). | |
| filter[keyword_count][from] | No | Minimum number of words in the keyword. | |
| filter[keyword_count][to] | No | Maximum number of words in the keyword. | |
| filter[characters_count][from] | No | Minimum character length of the keyword. | |
| filter[characters_count][to] | No | Maximum character length of the keyword. | |
| filter[serp_features] | No | Comma-separated list of SERP features to filter by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only indicates a read operation. It does not mention response format, pagination behavior, meaning of keyword questions, or any caveats such as required auth or API limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient, front-loaded sentence with no filler. It conveys the action and endpoint compactly, though it sacrifices useful context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 20 parameters, no output schema, and no annotations, this single sentence is not enough context. The agent is left to infer what a keyword question is, what the response contains, and how limit/offset pagination behaves.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are already documented in the input schema, so the description does not need to repeat them. The schema covers defaults, enums, and filters, meeting the baseline for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Fetch keyword questions', and exposes the exact endpoint v1/keywords/questions. It is not a tautology and clearly names the operation, though it does not explain how it differs from sibling keyword tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to prefer this tool over alternatives such as keywordsSimilar, keywordsRelated, or keywordsLongtail. The intended use case is only implied by the name and the single verb 'Fetch'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywordsRelatedRelated KeywordsC
Fetch related keywords (v1/keywords/related)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| sort | No | The field by which the returned list of keywords should be sorted. | |
| sort_order | No | The order of sorting for the sort field. | desc |
| history_trend | No | Whether to include historical search volume trend data in the response. | |
| filter[volume][from] | No | Minimum monthly search volume. | |
| filter[volume][to] | No | Maximum monthly search volume. | |
| filter[difficulty][from] | No | Minimum keyword difficulty score (0-100). | |
| filter[difficulty][to] | No | Maximum keyword difficulty score (0-100). | |
| filter[cpc][from] | No | Minimum Cost Per Click. | |
| filter[cpc][to] | No | Maximum Cost Per Click. | |
| filter[competition][from] | No | Minimum competition score (0.0-1.0). | |
| filter[competition][to] | No | Maximum competition score (0.0-1.0). | |
| filter[keyword_count][from] | No | Minimum number of words in the keyword. | |
| filter[keyword_count][to] | No | Maximum number of words in the keyword. | |
| filter[characters_count][from] | No | Minimum character length of the keyword. | |
| filter[characters_count][to] | No | Maximum character length of the keyword. | |
| filter[serp_features] | No | Comma-separated list of SERP features to filter by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, but it only adds 'Fetch' and the endpoint. It does not disclose read-only behavior explicitly, pagination behavior, default sorting, response shape, or any side effects, so the agent is left to assume a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and the essential action is front-loaded. However, it is so terse that it reads more like an endpoint label than a purpose statement, making it concise but not fully appropriately sized for a 20-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 20 parameters, no output schema, and several closely related siblings, yet the description provides none of the extra context needed to invoke it confidently. It omits return structure, pagination expectations, filter semantics, and any differentiation from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the description itself says nothing about parameters. The schema already documents all optional filters and paging fields, and the description adds no extra meaning to the two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Fetch related keywords' tells an agent what the tool produces. It does not, however, distinguish related from the similar-looking keywordsSimilar or keywordsLongtail siblings, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The text provides no guidance on when to choose this over keywordsSimilar, keywordsQuestions, or keywordsExport, and no exclusions are given. The only context is the endpoint string, which does not help an agent decide among the related-keyword siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywordsSimilarSimilar KeywordsC
Fetch similar keywords from SE Ranking Data API (v1/keywords/similar)
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| sort | No | The field by which the returned list of keywords should be sorted. | |
| sort_order | No | The order of sorting for the sort field. | desc |
| history_trend | No | Whether to include historical search volume trend data in the response. | |
| filter[volume][from] | No | Minimum monthly search volume. | |
| filter[volume][to] | No | Maximum monthly search volume. | |
| filter[difficulty][from] | No | Minimum keyword difficulty score (0-100). | |
| filter[difficulty][to] | No | Maximum keyword difficulty score (0-100). | |
| filter[cpc][from] | No | Minimum Cost Per Click. | |
| filter[cpc][to] | No | Maximum Cost Per Click. | |
| filter[competition][from] | No | Minimum competition score (0.0-1.0). | |
| filter[competition][to] | No | Maximum competition score (0.0-1.0). | |
| filter[keyword_count][from] | No | Minimum number of words in the keyword. | |
| filter[keyword_count][to] | No | Maximum number of words in the keyword. | |
| filter[characters_count][from] | No | Minimum character length of the keyword. | |
| filter[characters_count][to] | No | Maximum character length of the keyword. | |
| filter[serp_features] | No | Comma-separated list of SERP features to filter by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says the tool fetches data from the SE Ranking API; it does not mention authentication, rate limits, read-only confirmation, pagination behavior, or response characteristics. This adds little beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and the core action is front-loaded. It is appropriately concise, though the brevity contributes to the lack of depth in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 20 parameters, no output schema, and no annotations, this one-sentence description is insufficient. It does not explain return format, pagination, filter behavior, or how this tool relates to its siblings, leaving significant gaps for an agent to navigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 20 parameters. The description adds no parameter-level semantics beyond identifying the endpoint, which is consistent with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch'), a precise resource ('similar keywords') and the API endpoint path ('v1/keywords/similar'), making the core purpose clear. However, it does not explicitly differentiate this from the sibling 'keywordsRelated', so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings such as keywordsRelated, keywordsLongtail, or keywordsQuestions. There is no context, prerequisite, or exclusion criteria, leaving the agent to infer usage only from the tool name.
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.
28 tool updates
v1.0.0- First observed
aiSearchOverview - First observed
aiSearchPromptsByBrand - First observed
aiSearchPromptsByTarget - First observed
backlinksAll - First observed
backlinksAnchors - First observed
backlinksAuthority - First observed
backlinksIndexedPages - First observed
backlinksRefdomains - First observed
backlinksSummary - First observed
domainAdsByDomain - First observed
domainAdsByKeyword - First observed
domainAioDiscoverBrand - First observed
domainAioKeywordsByBrand - First observed
domainAioKeywordsByTarget - First observed
domainAioOverview - First observed
domainCompetitors - First observed
domainKeywords - First observed
domainKeywordsComparison - First observed
domainKeywordsReverseComparison - First observed
domainOverview - First observed
domainOverviewDb - First observed
domainOverviewHistory - First observed
domainOverviewWorldwide - First observed
keywordsExport - First observed
keywordsLongtail - First observed
keywordsQuestions - First observed
keywordsRelated - First observed
keywordsSimilar
TDQS
Scored across 28 tools
Tools are grouped by clear prefixes (aiSearch, backlinks, domain, keywords), making their purposes generally distinct. However, minor overlap exists within domain overview variants and keyword-related tools, and 'domainKeywordsComparison' vs 'domainKeywordsReverseComparison' may cause confusion.
The naming follows a consistent camelCase pattern with category prefixes. Most tools are well-structured, though a few, like 'domainKeywordsReverseComparison', break the typical verb-noun pattern slightly.
With 28 tools, the set is slightly larger than ideal but still well-scoped for a comprehensive SEO data API covering multiple subdomains. Each tool serves a specific function, and no tool appears redundant.
The toolset covers a wide range of SEO data retrieval tasks, including AI search, backlinks, domain analysis, and keywords. However, it lacks write operations (e.g., create, update) and some advanced backlink analysis tools, leaving minor gaps.
Maintenance
Related MCP Connectors
Query your SEO data in plain language: rankings, audits, backlinks, competitors and AI visibility.
SE Ranking SEO: keywords, backlinks, domains, SERP, audits, rank tracking, AI Search visibility.
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Related MCP Servers
- AlicenseCqualityDmaintenanceConnects AI assistants to SE Ranking's SEO and project management APIs to enable natural language queries for keyword research, backlink analysis, and technical audits. It supports comprehensive tasks including competitive analysis, domain traffic tracking, and AI search visibility monitoring.100Apache 2.0
- FlicenseBqualityDmaintenanceEnables querying the SE Ranking API for SEO data and analytics using natural language.25-
- AlicenseNot gradedqualityDmaintenanceEnables querying Google Search Console and Google Analytics 4 through natural language, with tools for SEO analysis like anomaly detection, cannibalization detection, and opportunity scoring.9 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables SEO analytics via the Semrush Analytics API, allowing AI agents to query Semrush data through natural language.5 npmMIT