SE Ranking MCP Server
The SE Ranking MCP Server connects AI assistants to SE Ranking's SEO data and project management APIs, enabling natural language queries for comprehensive SEO analysis and management.
Keyword Research
Find related, similar, long-tail, and question-based keywords
Export bulk keyword metrics (volume, CPC, difficulty, competition) for up to 5,000 keywords
Filter by intent, SERP features, volume, difficulty, and more
Domain & Competitive Analysis
Get worldwide or country-specific domain traffic overviews and historical data
Analyze domain keywords for organic and paid search
Identify organic/paid competitors, compare keyword gaps between domains
Analyze subdomains, pages, and paid ads
Backlink Analysis
Retrieve backlink lists, referring domains, anchor texts, and authority metrics
Track new/lost backlinks, historical trends, and domain authority distribution
Find referring IPs, subnets, and export large-scale backlink data asynchronously
SERP Analysis
Run SERP queries for any location; retrieve organic results, ads, and featured snippets
Get advanced results including AI Overview, Maps, Reviews, and raw HTML dumps
AI Search Visibility
Analyze brand/domain performance across AI engines (ChatGPT, Perplexity, Gemini, AI Overview, AI Mode)
View share-of-voice leaderboards and retrieve prompts mentioning specific brands
Website Audits
Launch standard (HTML) or advanced (JavaScript-rendered) crawls
Retrieve reports, crawled pages, issues by URL or type, links, and audit history
Manage crawl sources (sitemaps, custom pages), recheck, or delete audits
Project & Rank Tracking Management
Create, update, and delete SEO projects
Manage keywords, search engines, groups, and tags; run position checks
Track competitor positions and view TOP 10/100 results for tracked keywords
Backlink Monitoring (Project API)
Add, import, recheck, and disavow backlinks; organize into groups
Import backlinks from Google Search Console
AI Result Tracker (AIRT)
Configure LLM engines and manage tracked prompts/prompt groups
Retrieve brand mention statistics and full LLM answers for prompts
Analytics & Planning
Access Google Search Console queries and SEO potential estimates
Manage marketing plan tasks and add URL tags to domains/landing pages
Sub-Account Management
Create, update, and delete sub-accounts; share and manage projects across accounts
System & Account Tools
Check Data API credit balance, user profile, and subscription info
Retrieve available search engines, Google regions, languages, and search volume data
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., "@SE Ranking MCP ServerWhat are the top organic keywords for example.com?"
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.
SE Ranking MCP Server
This Model Context Protocol (MCP) server connects AI assistants to SE Ranking's SEO data and project management APIs. It enables natural language queries for:
Keyword research and competitive analysis
Backlink analysis and monitoring
Domain traffic and ranking insights
Website audits and technical SEO
AI search visibility tracking
Project and rank tracking management
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.
Git: A free and open-source distributed version control system. You can download it from the official Git website.
AI Assistant: You will need an MCP-compatible client, such as Claude Desktop or the Gemini CLI.
Related MCP server: DataForSEO MCP Server
API Tokens
This MCP server supports two types of API access:
Token | Environment Variable | Format | Purpose |
Data API |
| UUID (e.g., | Access to keyword research, domain analysis, backlinks data, SERP analysis, and website audits. Tools prefixed with |
Project API |
| 40-char hex (e.g., | Access to project management, rank tracking, backlink monitoring, and account management. Tools prefixed with |
Get your tokens from: https://online.seranking.com/admin.api.dashboard.html
You can use one or both tokens depending on which tools you need. If you only use Data API tools, you can omit PROJECT_API_TOKEN, and vice versa.
Rate Limits
API | Default Rate Limit |
Data API | 10 requests per second |
Project API | 5 requests per second |
Rate limits are customizable. Contact api@seranking.com to request adjustments.
Installation
Choose the installation method that best fits your needs:
Option 1: Docker (Recommended) - Best for standard usage, stability, and ease of updates. Use this if you just want to run the tool without managing dependencies.
Option 2: Local Node.js Server (For Developers) - Best for development, debugging, or environments where Docker isn't available (like Replit). Use this if you need to modify the code or run a custom setup.
Option 1: Docker (Recommended)
Open your terminal (or Command Prompt/PowerShell on Windows).
Clone the project repository from GitHub:
git clone https://github.com/seranking/seo-data-api-mcp-server.gitNavigate into the new directory:
cd seo-data-api-mcp-serverBuild the Docker Image:
docker build -t se-ranking/seo-data-api-mcp-server .
# Check that the image is built and named `se-ranking/seo-data-api-mcp-server`:
docker image lsHow to Update SEO-MCP (Docker)
To ensure you have the latest features, pull the latest changes and rebuild:
git pull origin main
docker build -t se-ranking/seo-data-api-mcp-server .Option 2: Local Node.js Server (For Developers)
In order to run the local Node server, you need to have Node.js 20+ version installed on your machine.
Install dependencies:
npm installBuild the project:
npm run buildStart the server:
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 running in external environments like Replit, you can set the DATA_API_TOKEN and PROJECT_API_TOKEN environment variables in the configuration panel.
Note: If you change the API token values when the server is running, you need to restart the server.
Verifying the HTTP Server
To send a sample test request and verify your setup:
./test-http-server-curl-request.sh '<your-api-token-here>'For batch MCP Requests testing:
./test-batch-http-server-curl-request.sh '<your-api-token-here>'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",
"DATA_API_TOKEN",
"-e",
"PROJECT_API_TOKEN",
"se-ranking/seo-data-api-mcp-server"
],
"env": {
"DATA_API_TOKEN": "<your-data-api-token-here>",
"PROJECT_API_TOKEN": "<your-project-api-token-here>"
}
}
}
}Replace the
DATA_API_TOKENandPROJECT_API_TOKENplaceholder values with your tokens (see API Tokens section).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 API token placeholder values.
{
"mcpServers": {
"seo-data-api-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATA_API_TOKEN",
"-e",
"PROJECT_API_TOKEN",
"se-ranking/seo-data-api-mcp-server"
],
"env": {
"DATA_API_TOKEN": "<your-data-api-token-here>",
"PROJECT_API_TOKEN": "<your-project-api-token-here>"
}
}
}
}Replace the DATA_API_TOKEN and PROJECT_API_TOKEN placeholder values with your tokens (see API Tokens section).
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.

Available Tools
Data API Tools
Module | Tool Name | Description |
account |
| Get current Data API credit balance and plan details. |
account |
| Get information about the current Data API subscription. |
SERP |
| Retrieves the raw HTML dump of a completed SERP task as a ZIP file (returned as an MCP embedded resource, |
SERP |
| Retrieves a list of available locations for SERP analysis. |
SERP |
| Runs a SERP query and returns results. Creates task, polls until complete, and returns organic/ads/featured snippets (standard) or all SERP types including AI Overview, Maps, Reviews (advanced). |
SERP |
| Retrieves the status or advanced results of a specific SERP task. |
SERP |
| Retrieves the status or standard results of a specific SERP task. Returns organic, ads, and featured_snippet types only. |
SERP |
| Retrieves a list of all SERP tasks added to the queue in the last 24 hours. |
ai search |
| Identifies and returns the brand name associated with a given target domain, subdomain, or URL. |
ai search |
| Retrieves a high-level overview of a domain's performance in AI search engines. |
ai search |
| Returns the AI Overview visibility leaderboard for a market — which domains appear most often in AI-search answers for tracked prompts. |
ai search |
| Retrieves a list of prompts where the specified brand is mentioned in AI search results. |
ai search |
| Retrieves a list of prompts (queries) that mention the specified target in AI search results. |
backlinks |
| Retrieves large-scale backlinks asynchronously, returning a task ID to check status later. |
backlinks |
| Retrieves a comprehensive list of backlinks for the specified target, with extensive filtering and sorting options. |
backlinks |
| Retrieves a list of anchor texts for backlinks pointing to the specified target. |
backlinks |
| Fetch authority metrics for a target (domain, host or URL). |
backlinks |
| Returns the total number of backlinks for the target. Supports batch requests. |
backlinks |
| Checks the status of an asynchronous backlinks export task. Returns download URL when complete. |
backlinks |
| Fetch site pages that have backlinks, with sorting and limit controls. |
backlinks |
| Returns key statistics for a target (backlinks count, referring domains, etc.). Supports batch requests. |
backlinks |
| Returns all backlinks pointing to a target using cursor-based pagination for large datasets. |
backlinks |
| Retrieves a list of referring domains pointing to the specified target. |
backlinks |
| Retrieves a summary of backlink metrics for one or multiple targets. |
backlinks |
| Returns live backlinks count for every day within the specified date range. |
backlinks |
| Returns distribution of Domain InLink Rank of all domains referencing a target. |
backlinks |
| Returns the domain InLink Rank (Domain Authority) of the target page's root domain. |
backlinks |
| Returns the historical time-series of domain InLink Rank for a target domain. |
backlinks |
| Returns count of (newly) found or lost backlinks for every day in the date range. |
backlinks |
| Returns count of referring domains found or lost in the date range, by day. |
backlinks |
| Returns the InLink Rank (Page Authority) for a target URL. |
backlinks |
| Returns historical values of InLink Rank for a specific target page. |
backlinks |
| Returns IPv4 addresses that belong to backlinks pointing to a target. |
backlinks |
| Returns the number of unique IPs linking to a target. |
backlinks |
| Returns the number of unique subnets/C-blocks linking to a target. |
backlinks |
| Returns the number of unique domains linking to a target. Supports batch requests. |
backlinks |
| Returns a list of backlinks found or lost within the specified date range. |
backlinks |
| Returns referring domains found or lost in the specified date range. |
domain analysis |
| Retrieves paid ads for a specific domain. |
domain analysis |
| Retrieves paid ads for a specific keyword. |
domain analysis |
| Retrieves up to 500 organic or paid competitors for a target domain, sorted by shared keyword count. |
domain analysis |
| Retrieves keywords for which a domain ranks in organic or paid search. |
domain analysis |
| Compares keyword rankings of two websites. Find common keywords or keyword gaps. |
domain analysis |
| Fetch domain overview by database. |
domain analysis |
| Retrieves historical data for domain traffic and keyword rankings. |
domain analysis |
| Retrieves an aggregated worldwide overview of domain metrics. |
domain analysis |
| Retrieves a list of individual pages ranking within a specified domain. |
domain analysis |
| Retrieves a list of subdomains for a domain with search performance metrics. |
domain analysis |
| Retrieves worldwide overview of organic and paid traffic metrics for a specific URL. |
keyword research |
| Retrieves metrics for a bulk list of keywords. |
keyword research |
| Retrieves question-based keywords containing the seed keyword. |
keyword research |
| Retrieves long-tail variations for the seed keyword. |
keyword research |
| Retrieves keywords semantically related to the seed keyword. |
keyword research |
| Retrieves keywords similar to the seed keyword. |
website audit |
| Launches an advanced website audit that renders JavaScript. Suitable for SPAs. |
website audit |
| Launches a standard website audit that crawls HTML. Suitable for static sites. |
website audit |
| Permanently deletes a website audit report and all associated data. |
website audit |
| Retrieves a historical snapshot of a specific audit run. |
website audit |
| Retrieves URLs affected by a specific issue within an audit. |
website audit |
| Retrieves the full detailed report for a completed website audit. |
website audit |
| Checks the real-time status of a specific website audit. |
website audit |
| Returns all URLs found during an audit. |
website audit |
| Returns every hyperlink discovered during the audit. |
website audit |
| Retrieves all issues found on a specific page within an audit. |
website audit |
| Retrieves all website audits associated with your account. |
website audit |
| Launches a new crawl of a previously completed audit. |
website audit |
| Changes the title of an existing website audit report. |
Project API Tools
Module | Tool Name | Description |
account |
| Get information about the currently logged in user. |
AIRT — brands |
| Get the brand name configured for an AI Result Tracker site. |
AIRT — brands |
| Set the brand name for an AI Result Tracker site. |
AIRT — llm engines |
| Add an LLM engine (e.g. ChatGPT, Perplexity, Google AI Overview, Gemini) for an AIRT site. |
AIRT — llm engines |
| Remove an LLM engine from an AIRT site. |
AIRT — llm engines |
| Get configuration of a specific LLM engine. |
AIRT — llm engines |
| Get AIRT engine statistics (prompt hits, brand mentions) for a site. |
AIRT — llm engines |
| Get real-time status of LLM answer generation for an AIRT site. |
AIRT — llm engines |
| List all LLM engines configured for an AIRT site. |
AIRT — llm engines |
| Partial update of an LLM engine (region_name, lang_code). |
AIRT — prompts |
| Add a batch of tracked prompts to an AIRT prompt group. |
AIRT — prompts |
| Delete specific tracked prompts. |
AIRT — prompts |
| Get the full LLM answer captured for a specific tracked prompt. |
AIRT — prompts |
| Get ranking statistics (brand mentions, competitor mentions) for tracked prompts. |
AIRT — prompts |
| List tracked prompts for an AIRT site, optionally filtered by prompt group. |
AIRT — prompt groups |
| Reorder prompt groups within an AIRT site. |
AIRT — prompt groups |
| Create a new prompt group for an AIRT site. |
AIRT — prompt groups |
| Delete all prompts inside a specified prompt group. |
AIRT — prompt groups |
| Delete a prompt group. |
AIRT — prompt groups |
| List all prompt groups for an AIRT site. |
AIRT — prompt groups |
| Move prompts from one group to another. |
AIRT — prompt groups |
| Move selected prompts into a specified group. |
AIRT — prompt groups |
| Rename a prompt group. |
analytics |
| Get popular queries from Google Search Console for a website. |
analytics |
| Assess potential traffic volume, traffic cost, and potential customers for a website. |
backlink checker |
| Add a list of URLs to the disavowed backlinks list. |
backlink checker |
| Add a single backlink to the backlink monitor for a website. |
backlink checker |
| Create a new group for organizing backlinks. |
backlink checker |
| Delete a backlink group. |
backlink checker |
| Remove a backlink from the disavowed backlinks list. |
backlink checker |
| Delete a list of backlinks from the backlink monitor. |
backlink checker |
| Get the status of a backlink import from Google Search Console. |
backlink checker |
| Get backlink statistics for a website. |
backlink checker |
| Import a list of backlinks to the backlink monitor. |
backlink checker |
| Get a list and count of backlink groups for a website. |
backlink checker |
| Get a list and count of disavowed backlinks for a website. |
backlink checker |
| Get a list of backlinks from the backlink monitor. |
backlink checker |
| Move backlinks from one group to another. |
backlink checker |
| Run an index or status check for a list of backlinks. |
backlink checker |
| Change the name of a backlink group. |
backlink checker |
| Start a backlink import from Google Search Console. |
backlink checker |
| Update settings for automatic backlink import from GSC. |
competitors |
| Add a competitor website to a project for position tracking. |
competitors |
| Remove a competitor website from a project. |
competitors |
| Get data on sites ranked in TOP 10 for tracked queries (14-day history). |
competitors |
| Get statistics on competitor keyword positions. |
competitors |
| Get TOP 10 results for tracked keywords in a project. |
competitors |
| Get top 100 results for tracked keywords in a project. |
competitors |
| Get a list of all competitors added to a project with statistics. |
keyword groups |
| Add a group for project keywords. |
keyword groups |
| Delete a project keyword group. |
keyword groups |
| Get a list of keyword groups for a project. |
keyword groups |
| Transfer project keywords from one group to another. |
keyword groups |
| Update the name of a project keyword group. |
marketing plan |
| Add a new task to the marketing plan for a website. |
marketing plan |
| Delete a task from the marketing plan. |
marketing plan |
| Get all marketing plan sections, items, and notes for a website. |
marketing plan |
| Set the completion status of a marketing plan task. |
marketing plan |
| Update an existing marketing plan task. |
project groups |
| Add a new project group to a user account. |
project groups |
| Delete a project group. |
project groups |
| Get a list of all project groups from a user account. |
project groups |
| Transfer projects from one group to another. |
project groups |
| Rename a project group. |
project management |
| Add new keywords to a project. |
project management |
| Add a new search engine to a project. |
project management |
| Add a new project to the user account. |
project management |
| Delete keywords from a project. |
project management |
| Delete a project from the user account. |
project management |
| Delete a search engine from a project. |
project management |
| Get total number of top and bottom advertisements by day. |
project management |
| Returns standard comparison dates available for reporting. |
project management |
| Get daily visibility / average-position / keywords-in-top-N time-series for a project, suitable for charts. |
project management |
| Get the list of dates on which position checks were run for a project. |
project management |
| Get keyword ranking statistics for a specified time period. |
project management |
| Get a list of search engines employed by a project. |
project management |
| Get a project's summary statistics. |
project management |
| Get a list of keywords with target pages for a project. |
project management |
| Get a list of all user projects. |
project management |
| Run a ranking position check for keywords or entire project. |
project management |
| Manually set position for a project's keyword. |
project management |
| Update keyword settings (target URL, tags, group) for a project keyword. |
project management |
| Change/update project settings. |
project management |
| Update an existing search engine in a project. |
sub-accounts |
| Create a new sub-account. |
sub-accounts |
| Delete a user sub-account. |
sub-accounts |
| Get extended information about a sub-account. |
sub-accounts |
| Get website IDs that belong to a sub-account. |
sub-accounts |
| Get website IDs shared with a sub-account. |
sub-accounts |
| Get a list of all sub-accounts of the current user. |
sub-accounts |
| Share one or more websites with a sub-account. |
sub-accounts |
| Edit sub-account settings, limits, and permissions. |
system |
| Get the list of all available regions supported by Google. |
system |
| Get the list of all available search engines. |
system |
| Get a complete list of possible languages for Google search engine. |
system |
| Get search volume data for a region and keyword list (max 10 keywords). |
system |
| Get regions where SE Ranking can run keyword search volume checks. |
url tags |
| Add a tag to the site and attach it to a link and/or domain. |
url tags |
| Delete a tag. |
url tags |
| Get a list of landing page tags added to domains and/or links. |
url tags |
| Add tags to a domain and/or link, replacing previously added tags. |
website audit |
| Launch a website audit for a domain with full settings (crawl sources, limits, thresholds, schedule, |
website audit |
| List all website audits for the account with pagination, search, and date filters. |
website audit |
| Real-time status of a specific audit (queued, processing, finished, cancelled, expired). |
website audit |
| Full detailed report for a completed audit — health score, domain properties, section-by-section breakdown. |
website audit |
| Paginated list of all URLs found during the audit. |
website audit |
| Paginated list of URLs affected by a specific issue within an audit. |
website audit |
| All issues (errors, warnings, notices) found on a specific page within an audit. |
website audit |
| Every hyperlink discovered during the audit, with filtering. |
website audit |
| Historical snapshot of a specific audit run by date. |
website audit |
| Change an audit's title (backward-compatible |
website audit |
| Read current settings for an existing audit — required before partial updates and for modifying |
website audit |
| Partial-update an audit's settings (title, settings object, schedule, disabled_issues). |
website audit |
| Reset all audit settings to defaults. Does not remove sitemaps / source-pages lists. |
website audit |
| List sitemap URLs configured as crawl sources for an audit. |
website audit |
| Add a sitemap URL as a crawl source. Auto-enables |
website audit |
| Remove a sitemap from an audit's crawl sources. |
website audit |
| List uploaded custom-page URL lists used as a crawl source. |
website audit |
| Upload a custom list of pages (one URL per line) to crawl. Auto-enables |
website audit |
| Remove an uploaded source-pages list from an audit. |
website audit |
| Launch a new crawl of a previously completed audit with the same settings. |
website audit |
| Permanently delete an audit and all associated data. |
Available Prompts
Prompt Name | Arguments | Description |
|
| Create two SERP tasks for the query in two locations and compare top 10 organic domains, overlap, and unique competitors. |
|
| Fetch backlinks for competitors with a minimum Domain Trust, compare against your domain, and find opportunities. |
|
| Analyze a domain's global/country organic traffic, top competitors by shared keywords, and provide strategic recommendations. |
|
| Pull related/similar keywords for a market, clean/deduplicate, and cluster them by intent/theme with volume and H1/H2 ideas. |
|
| Estimate share of voice in AI search (e.g. ChatGPT, Perplexity) vs competitors, listing winning topics and gap-closing actions. |
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 getDomainKeywords with pos_change=lost.
- Find keywords where my domain's position has gone down using the tool for getDomainKeywords with pos_change=down.
2. Conduct a competitive analysis:
- Identify my top 2 competitors by finding all competitors with the tool for getDomainCompetitors and ordering them by common_keywords DESC.
- Find 30 keywords that these competitors are ranking for but my domain is not. Use the getDomainKeywordsComparison 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 getRelatedKeywords and getSimilarKeywords 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.
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": [
"DATA_API_TOKEN=80cfee7d-xxxx-xxxx-xxxx-fc8500816bb3",
"PROJECT_API_TOKEN=253a73adxxxxxxxxxxxxxx340aa0a939",
"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.
Contributing
Prerequisites
Node.js 20+
npm
Running Tests
# Run all tests (compiles TypeScript first)
npm test
# Run only E2E tests
npm run test:e2e
# Run tests in watch mode
npm run test:watchEnvironment Variables for Testing
Create a .env file in the project root with the following variables:
Variable | Required | Description |
| Yes | API token for Data API tools |
| Yes | API token for Project API tools |
| No | Set to |
| No | Set to |
E2E Tests
E2E tests make real API calls to SE Ranking services. They are disabled by default to avoid unnecessary API usage during development.
When
E2E_ENABLED=falseor unset, E2E tests are skippedSet
E2E_ENABLED=trueto run the full test suite with live API callsEnsure you have valid API tokens before enabling E2E tests
Other Development Commands
# Lint code
npm run lint
npm run lint:fix
# Format code
npm run format
npm run format:check
# Type check
npm run typecheckSupport
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
100 toolsDATA_createAdvancedAuditCreate Advanced AuditA
Data Tool: Launches an advanced website audit that renders JavaScript before analyzing the page. Suitable for Single-Page Applications (SPAs) or dynamic content.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Custom title for the audit report. Maximum 300 characters. | |
| domain | Yes | Domain to be audited (e.g., domain.com). | |
| settings | No | Object containing specific audit settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses JS rendering but lacks details on side effects, duration, or resource creation beyond 'launches.'
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, efficient and front-loaded. Could benefit from slight expansion but is appropriately concise.
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 a complex nested settings object and no output schema, the description is minimal. It covers core differentiator but leaves out guidance on settings and return values.
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; description adds no extra meaning 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?
Description clearly states 'launches an advanced website audit that renders JavaScript' and specifies suitability for SPAs or dynamic content, distinguishing it from standard audit 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?
Explicitly mentions when to use (SPAs/dynamic content requiring JS rendering), implying when not to use (e.g., when standard audit suffices). Does not explicitly name alternatives but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_createStandardAuditCreate Standard AuditA
Data Tool: Launches a standard website audit that crawls the HTML of a website. Suitable for most static and server-side rendered sites.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Custom title for the audit report. Maximum 300 characters. | |
| domain | Yes | Domain to be audited (e.g., domain.com). | |
| settings | No | Object containing specific audit settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'crawls HTML', lacking details on destructive nature, rate limits, authentication, or what happens to the environment. The name 'create' suggests mutation, but no confirmation.
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, clear and to the point. The prefix 'Data Tool:' is unnecessary but not harmful. It could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 3 parameters and a nested settings object with many fields, and no output schema, the description is too minimal. It does not cover what the audit report looks like, required steps, or expected outcomes.
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 baseline is 3. The description adds no extra meaning to parameters beyond the schema. It does not explain how settings affect the audit, which could be valuable for a nested object with many fields.
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 it launches a standard website audit that crawls HTML. It distinguishes from the sibling 'DATA_createAdvancedAudit' by noting suitability for static and server-side rendered sites, implying the advanced version is for dynamic sites.
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 guidance on when to use this tool ('Suitable for most static and server-side rendered sites'), implying not for dynamic sites. It does not explicitly mention alternatives but the sibling name creates context. A clearer when-not-to-use would improve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_deleteAuditDelete AuditA
Data Tool: Permanently deletes a specified website audit report and all of its associated data.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Unique identifier of the audit to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses critical behavioral traits: the action is permanent ('permanently deletes') and affects all associated data. This gives the agent a clear understanding of the tool's destructiveness. A score of 4 is warranted as it almost fully compensates for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded with 'Data Tool' for categorization and wastes no words, making it optimally sized for an AI 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?
For a simple delete tool with one parameter and no output schema, the description adequately explains the action and its scope. It could mention the need to call listAudits first or confirm the audit_id, but the given information is sufficient for a basic understanding.
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 covers 100% of the single parameter with a clear description. The tool description adds no additional parameter information, which is acceptable given the high schema coverage, earning a 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 the verb 'deletes' and the resource 'website audit report and all of its associated data', making the purpose unambiguous. It distinguishes itself from sibling tools, many of which are get/export operations or other delete actions on different entities.
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 vs alternatives, no prerequisites (like listing audits to get the audit_id), and no note about irreversibility. Users are left to infer usage context on their own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_exportBacklinksDataExport Backlinks DataB
Data Tool: Retrieves large-scale backlinks asynchronously, returning a task ID to check status later.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| target | Yes | Aim of the request: root domain, host, or URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes async behavior and task ID, but lacks details on rate limits, data volume limits, or how to use the task ID (e.g., referencing DATA_getBacklinksExportStatus). No annotations exist, so the description carries full burden.
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 14 words, front-loaded purpose, zero redundancy.
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?
Missing critical context for an async tool: no mention of status-checking endpoint (DATA_getBacklinksExportStatus) or how to handle the task ID. Incomplete for its complexity.
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 50% (only 'target' described). The description adds no parameter information beyond the schema. Enum values for 'mode' are not explained, and 'target' remains vague. Compensation is insufficient.
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 it retrieves large-scale backlinks asynchronously and returns a task ID. This specifies the verb and resource, distinguishing it from synchronous siblings, but lacks explicit 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?
No guidance on when to use this tool versus alternative backlink tools (e.g., DATA_getAllBacklinks). The description does not mention prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_exportKeywordsExport Keywords MetricsC
Data Tool: Retrieves metrics for a bulk list of keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 |
| sort | No | The field by which the returned list of keywords should be sorted. Common sortable fields include volume, cpc, difficulty, competition. | cpc |
| 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_order | No | The order of sorting for the sort field. | desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavioral traits. It only states 'Retrieves metrics' but does not clarify if it is read-only, whether it modifies data, or any other side effects. There is no mention of rate limits, cost, or idempotency.
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 which is concise but omits potentially useful context. It could be more structured, e.g., with a brief note on what metrics are included or how to use the parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description lacks completeness. It does not describe the return format, pagination, or error conditions. The schema covers parameter details, but the description fails to synthesize a complete picture for the 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 coverage is 100%, so the description adds minimal value beyond the schema. While the description labels it as 'metrics for a bulk list of keywords,' it does not elaborate on parameter meanings or provide examples. 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 it retrieves metrics for a bulk list of keywords. The title 'Export Keywords Metrics' aligns well. However, it could better differentiate from sibling tools like DATA_getDomainKeywords which retrieves keywords for a domain rather than metrics on a provided list.
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 such as DATA_getDomainKeywords or DATA_getRelatedKeywords. The description does not mention prerequisites or contexts where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAiDiscoverBrandAI Search Discover BrandA
Data Tool: Identifies and returns the brand name associated with a given target domain, subdomain, or URL. Useful for determining what brand name to use in other AI search queries.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | The scope of the analysis. Can be base_domain (aggregate by registrable domain, includes all subdomains), domain (exact host only, no subdomain aggregation), or url (exact URL including path and query). | domain |
| source | Yes | Alpha-2 country code for the regional prompt database (e.g., us for United States results). | |
| target | Yes | The target to analyze. Can be a root domain, subdomain, or a specific URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It implies a read-only operation by saying 'Identifies and returns,' which is appropriate. However, it does not explicitly state that no changes are made, nor does it disclose potential dependencies or limits, leaving some uncertainty.
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 only two sentences, front-loading the core action and resource. Every word contributes meaning without redundancy, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description is mostly adequate. However, it does not specify the output format (e.g., returns a string), which is a minor gap. It mentions usefulness for AI search queries, which helps contextual completeness.
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 covers all three parameters with descriptions, resulting in high schema coverage. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Identifies and returns the brand name associated with a given target domain, subdomain, or URL.' It uses a specific verb ('Identifies and returns') and resource ('brand name'). However, it does not explicitly differentiate from sibling tools like DATA_getAiPromptsByBrand, though the distinction is implicit.
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 notes the tool is 'Useful for determining what brand name to use in other AI search queries,' providing a context for use. However, it lacks explicit guidance on when not to use it or mention of alternatives, such as directly using domain knowledge or other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAiOverviewAI Search Overview (SE Ranking)A
Data Tool: Retrieves a high-level overview of a domain's performance in AI search engines. Returns aggregated data if no engine is specified, or engine-specific data if an engine is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Brand name to search for. If omitted, uses the internally determined brand for the domain. | |
| scope | No | The scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). | base_domain |
| engine | No | The LLM to query (e.g., ai-overview, chatgpt, perplexity, gemini, ai-mode). If omitted, returns aggregated data across all engines. | |
| source | Yes | Alpha-2 country code for the regional prompt database (e.g., us for United States results). | |
| target | Yes | The target to analyze for LLM performance. Can be a root domain, subdomain, or a specific URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral transparency. It only states it retrieves data, but omits any details about rate limits, authentication requirements, error handling, or whether it is a read-only 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 concise with two sentences, no redundant information, and front-loads the core purpose effectively.
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 lacks details about the return value format, making it somewhat incomplete given no output schema. It does not cover potential errors or limits, which may be important 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 all parameters. The description adds some value by explaining the aggregated vs engine-specific behavior for the engine parameter, but does not enhance meaning for other parameters 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 clearly states the verb 'retrieves' and the resource 'a high-level overview of a domain's performance in AI search engines'. It distinguishes between aggregated and engine-specific data, setting it apart from related tools like DATA_getAiOverviewLeaderboard.
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 clear context on when to use the tool: returns aggregated data if engine is omitted, or engine-specific data if provided. However, it does not explicitly state when not to use it or mention alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAiOverviewLeaderboardAI Search Comparison & Leaderboard (SE Ranking)A
Data Tool: Compare multiple domains/brands in AI search engines (ChatGPT, Perplexity, Gemini, AI Overview, AI Mode). Use this for AI search comparison, competitor analysis, and visibility benchmarking. Returns brand presence, link presence, share of voice rankings, and leaderboard for each domain across AI engines.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | The scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). Default: base_domain. | |
| source | Yes | Alpha-2 country code for the regional prompt database (e.g., us for United States). | |
| engines | Yes | Array of AI engines to include in the analysis. Options: 'ai-overview', 'ai-mode', 'chatgpt', 'perplexity', 'gemini'. | |
| primary | Yes | The primary target to analyze. Object with target (domain/subdomain/URL) and brand name. | |
| competitors | Yes | Array of competitor targets to compare against. Each object has target and brand. Maximum 10 competitors. |
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. The description only states that it 'Returns brand presence, link presence, share of voice rankings, and leaderboard' but does not disclose potential side effects, authorization requirements, rate limits, or whether it is read-only. Given the absence of annotations, more behavioral detail is needed.
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 consists of two concise sentences that front-load the tool's primary function and outputs. Every sentence adds value, with no redundancy or 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?
Given the tool's complexity (5 parameters with nested objects, no output schema, and a unique AI focus among siblings), the description adequately covers what the tool does and the kind of data it returns. It does not include return format details, but the absence of an output schema means the agent must rely on the description. The description could be slightly more complete regarding the exact data structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the input schema already provides detailed descriptions for all 5 parameters. The description does not add significant value beyond the schema for parameters; it merely rephrases the purpose. Hence 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 tool's purpose: 'Compare multiple domains/brands in AI search engines'. It specifies the resources (ChatGPT, Perplexity, Gemini, AI Overview, AI Mode) and the outputs (brand presence, link presence, share of voice rankings, leaderboard). This distinguishes it from sibling tools that focus on audits, backlinks, or keywords.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the usage context: 'Use this for AI search comparison, competitor analysis, and visibility benchmarking.' This helps the agent determine when to invoke this tool. However, it does not mention when not to use it or suggest alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAiPromptsByBrandAI Search: Get Prompts by Brand (SE Ranking)B
Data Tool: Retrieves a list of prompts where the specified brand is mentioned in AI search results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | The field to sort the results by. Options: volume, type, snippet_length. | volume |
| brand | Yes | Brand name to search for in LLM snippets. | |
| limit | No | Max prompts per page (1–1000). Default: 100. | |
| engine | Yes | LLM to query (e.g., 'ai-overview', 'chatgpt', 'perplexity', 'gemini', 'ai-mode'). | |
| offset | No | Starting index for pagination. Default: 0. | |
| source | Yes | Alpha-2 country code of the regional prompt database (e.g., 'us'). | |
| sort_order | No | Sort direction. Default: desc. | desc |
| filter_volume_to | No | Specifies the maximum volume of searches to be included in the results. | |
| filter_volume_from | No | Specifies the minimum volume of searches to be included in the results. | |
| filter_keyword_count_to | No | Specifies the maximum number of words in prompts. | |
| filter_keyword_count_from | No | Specifies the minimum number of words in prompts. | |
| filter_characters_count_to | No | Specifies the maximum prompt length in characters. | |
| filter_characters_count_from | No | Specifies the minimum prompt length in characters. | |
| 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"}]] | |
| 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"}]] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states retrieval, but fails to mention pagination behavior, rate limits, authentication needs, or data source characteristics. This is insufficient for a tool with 15 parameters and high complexity.
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, clear sentence without unnecessary words. It is appropriately sized but could be slightly improved with additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 15 parameters, no output schema, and no annotations, the description is too minimal. It does not explain typical use cases, how filters interact, or what the response structure looks like. The complex filter parameters (e.g., filter_multi_keyword_included) lack any contextual guidance in the description.
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 explained. The tool description does not add any additional meaning beyond what the schema provides. Baseline is 3 since schema covers parameters well.
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 prompts where a specified brand is mentioned in AI search results. It uses a specific verb ('Retrieves') and resource ('list of prompts'), and the brand parameter distinguishes it from the sibling DATA_getAiPromptsByTarget.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as DATA_getAiPromptsByTarget. The description does not specify prerequisites, data freshness, or when not to use it. Usage is only implied by the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAiPromptsByTargetAI Search: Get Prompts by Target (SE Ranking)C
Data Tool: Retrieves a list of prompts (queries) that mention the specified target in AI search results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | The field to sort the results by. Options: volume, type, snippet_length. | volume |
| limit | No | Maximum number of prompts to return. | |
| scope | No | The scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). | base_domain |
| engine | Yes | Type of LLM engine (e.g. 'chatgpt', 'perplexity', 'ai-mode', etc.). | |
| offset | No | Offset for pagination (starting index). | |
| source | Yes | Alpha-2 country code of the regional prompt database (e.g. 'US'). | |
| target | Yes | The target to retrieve prompts for (domain, host, or URL). | |
| sort_order | No | Sort order ('asc' for ascending, 'desc' for descending). Default is 'desc'. | desc |
| filter_volume_to | No | Specifies the maximum volume of searches to be included in the results. | |
| filter_volume_from | No | Specifies the minimum volume of searches to be included in the results. | |
| filter_keyword_count_to | No | Specifies the maximum number of words in prompts. | |
| filter_keyword_count_from | No | Specifies the minimum number of words in prompts. | |
| filter_characters_count_to | No | Specifies the maximum prompt length in characters. | |
| filter_characters_count_from | No | Specifies the minimum prompt length in characters. | |
| 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"}]] | |
| 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"}]] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It states the tool retrieves data (implying read-only) but does not disclose any behavioral traits such as authentication requirements, rate limits, or what happens if the target is not found.
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 of 18 words, efficiently conveying the core purpose with no extraneous information. It is front-loaded and 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?
Despite the tool having 16 parameters, no output schema, and complex filtering/sorting features, the description provides minimal context. It does not mention pagination, volume, filtering capabilities, or the nature of the returned data, leaving the agent dependent solely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already provides detailed descriptions for all 16 parameters. The description adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieves a list of prompts') and the resource ('that mention the specified target in AI search results'). It distinguishes from the sibling 'DATA_getAiPromptsByBrand' by using 'target' instead of 'brand', though it could explicitly call out the difference.
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 like 'DATA_getAiPromptsByBrand' or 'DATA_getAiOverview'. No mention of prerequisites or context for the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAllBacklinksBacklinks AllC
Data Tool: Retrieves a comprehensive list of backlinks for the specified target, with extensive filtering and sorting options.
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| order_by | No | Sort field: 'date_found' (most recent first), 'first.domain_inlink_rank', or 'first.inlink_rank'. | date_found |
| per_domain | No | Number of backlinks per referring domain to return. If omitted, returns all backlinks (may exceed 100). | |
| anchor_filter | No | Substring to filter 'anchor' by (ASCII, max 2063 chars). | |
| url_to_filter | No | Substring to filter 'url_to' by (ASCII, max 2063 chars). | |
| inlink_rank_to | No | Max InLink Rank filter (0–100). | |
| nofollow_filter | No | Backlink type filter: 'nofollow_only' or 'dofollow_only'. If omitted, returns all. | |
| url_from_filter | No | Substring to filter 'url_from' by (ASCII, max 2063 chars). | |
| inlink_rank_from | No | Min InLink Rank filter (0–100). | |
| anchor_filter_mode | No | How to match 'anchor_filter'. Default: contains. | contains |
| url_to_filter_mode | No | How to match 'url_to_filter'. Default: contains. | contains |
| url_from_filter_mode | No | How to match 'url_from_filter'. Default: contains. | contains |
| domain_inlink_rank_to | No | Max Domain InLink Rank filter (0–100). | |
| domain_inlink_rank_from | No | Min Domain InLink Rank filter (0–100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose any behavioral traits such as read-only nature, rate limits, or pagination behavior. The phrase 'comprehensive list' is vague and does not clarify if all backlinks are returned or limited (though limit parameter is present).
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 very concise at one sentence (16 words). However, it starts with 'Data Tool:' which is redundant and wastes space. It is front-loaded with the core action, but could be slightly more efficient without the prefix.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 17 parameters and many siblings, the description is too terse. It does not explain the return value format (though output param handles it), typical use cases, or how to effectively leverage the filters. For such complex tools, more context is needed for an AI agent to use it correctly.
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 extra meaning beyond stating 'extensive filtering and sorting options,' which is generic. The individual parameter descriptions in the schema are detailed, so the description provides negligible additional value.
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?
Description clearly states the tool retrieves a comprehensive list of backlinks with filtering/sorting. The verb 'retrieves' and resource 'backlinks' are specific. However, it does not explicitly distinguish from siblings like DATA_getBacklinksRaw or DATA_getBacklinksCount, which might return similar data, so it misses 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 on when to use this tool vs alternatives. There is no mention of prerequisites, when not to use it, or what scenarios are best suited for this tool. For instance, if a user only needs backlinks count, a sibling tool might be more efficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAuditHistoryGet Audit HistoryB
Data Tool: Retrieves a historical snapshot of a specific audit run, providing the full context of that audit.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Specific date of the historical audit to retrieve (YYYY-MM-DD). | |
| audit_id | Yes | Unique identifier of the audit. |
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 describes a read operation ('retrieves') but does not explicitly state it is read-only, nor does it mention any behavioral traits such as authentication needs, rate limits, or potential side effects. The description is insufficient for an AI agent to understand the tool's safety profile.
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 has two sentences but includes the redundant prefix 'Data Tool:' which adds no value since the tool name already indicates it is a data tool. It is not overly verbose but could be more concise.
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 lacks an output schema and does not explain what 'full context' entails. For a tool with two parameters and many siblings, it leaves the agent uncertain about the return value and scope. More detail is needed for completeness.
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 parameters ('date' and 'audit_id') clearly described in the schema. The description adds no additional meaning beyond what the schema provides, so it meets the baseline expectation.
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 historical snapshot of an audit run, specifying the verb 'retrieves' and the resource 'historical snapshot of a specific audit run'. This distinguishes it from sibling tools like DATA_listAudits which lists audits, and other audit-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention when not to use it. It lacks explicit context for selection among many sibling tools that deal with audits and data retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAuditPagesByIssueGet Audit Pages By IssueC
Data Tool: Retrieves a paginated list of all URLs affected by a specific issue within a given audit.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Unique code for the issue (e.g., title_duplicate). | |
| limit | No | Number of URLs to return in the list. | |
| offset | No | Starting position (offset) for the list of URLs. | |
| audit_id | Yes | Unique identifier of the audit report. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It mentions pagination but lacks information on read-only nature, authorization requirements, rate limits, or data freshness. The description is minimal.
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, though it includes an unnecessary 'Data Tool:' prefix. It conveys the main purpose efficiently.
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?
No output schema is provided, and the description does not clarify the return format beyond 'list of URLs'. With siblings covering many similar tools, more detail about pagination and expected response would help.
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 adds no extra meaning beyond the schema, which already describes each parameter adequately.
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 paginated list of URLs affected by a specific issue within an audit. It uses a specific verb and resource, and differentiates from sibling DATA_getIssuesByUrl which does the opposite. However, the 'Data Tool:' prefix is redundant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like DATA_getIssuesByUrl or other audit tools. The description only states what the tool does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAuditReportGet Audit ReportA
Data Tool: Retrieves the full, detailed report for a completed website audit. Includes health score, domain properties, and broken down checks.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Unique identifier of the audit for which to retrieve the report. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the report contents but does not mention prerequisites (audit must be completed), side effects (none, read-only), or authorization needs. The agent cannot infer that this is a non-destructive read operation beyond the 'get' naming convention.
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 concise sentences, front-loading the purpose and immediately listing what the report includes. No redundant or vague language.
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 simple retrieval with one parameter and no output schema, the description is fairly complete. However, it lacks error handling guidance (e.g., invalid audit_id) and does not differentiate from other audit-related get tools despite the sibling list. Adequate but with room for improvement.
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% for the single required parameter audit_id. The description adds context that the audit must be completed, which is not in the schema description. This adds minor value, meeting 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 clearly states the tool retrieves the full, detailed report for a completed website audit, listing included contents (health score, domain properties, broken down checks). This specific verb-resource combination distinguishes it from siblings like DATA_getAuditStatus or DATA_listAudits.
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 should be used after an audit is completed, but does not explicitly state when to use this versus alternatives like getAuditStatus or getAuditHistory. With many audit-related siblings, guidance on when to use this tool is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getAuditStatusGet Audit StatusA
Data Tool: Checks the real-time status of a specific website audit, whether it’s queued, currently processing, or already finished.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Unique identifier of the audit to check. |
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 describes the behavior (checking status) and real-time nature, but does not explicitly state that it is read-only or mention any permissions or side effects. It is adequate but not thorough.
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 that front-loads the tool type ('Data Tool') and purpose. It contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is complete. It explains the purpose, the input, and the expected output states without needing additional details.
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% for the single parameter 'audit_id'. The description adds minimal extra meaning beyond the schema's 'Unique identifier of the audit to check.' The phrase 'specific website audit' is implied by the schema. 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 tool checks the real-time status of a website audit, specifying possible states (queued, processing, finished). This distinguishes it from sibling tools like create, delete, or analytical tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest related tools for different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksAnchorsBacklinks AnchorsB
Data Tool: Retrieves a list of anchor texts for backlinks pointing to the specified target, with sorting and limit options.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| limit | No | Maximum number of results to return (1–10,000). Default: 100. | |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| order_by | No | Sort field (descending): 'backlinks' = total backlinks using the anchor; 'refdomains' = total referring domains using the anchor. | backlinks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It labels the tool as 'Data Tool' but does not disclose behavioral traits such as read-only status, authentication requirements, rate limits, or any side effects. The description is insufficient for an agent to understand operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 17 words, concise and front-loaded with the core action. However, it lacks any structural formatting (e.g., bullet points) and does not emphasize key 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?
With 5 parameters, high schema coverage, no output schema, and no annotations, the description provides adequate but incomplete context. It omits information about output format (though schema defines 'output'), pagination limits, and potential errors. The lack of return value description is a gap.
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 each parameter is already documented. The tool description restates 'sorting and limit options' but adds no new meaning beyond the schema. 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 tool retrieves anchor texts for backlinks to a specified target, with sorting and limit options. This is a specific verb-resource combination ('retrieves anchor texts') that distinguishes it from sibling tools like getAllBacklinks which return full backlinks data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when anchor text data is needed, but does not provide explicit guidance on when to prefer this over similar tools (e.g., getBacklinksRaw, getAllBacklinks). No exclusions or alternative tool recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksAuthorityBacklinks AuthorityB
Data Tool: Fetch authority metrics for a target (domain, host or URL) (v1/backlinks/authority)
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Response format. Default: json. | json |
| target | Yes | Target to assess authority: root domain, host (subdomain), or full URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full responsibility for behavioral disclosure. It only states 'Fetch authority metrics' without specifying which metrics are returned (e.g., domain authority score, page authority score, etc.), nor does it explain authentication, rate limits, or response structure. The absence of an output schema worsens the gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. However, it could be more informative without sacrificing conciseness, e.g., by noting what authority metrics include. Still, it avoids redundancy and 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?
Given the lack of output schema and the large set of sibling tools, the description fails to fully equip the agent. It does not explain return values, contrast with similar tools (getDomainAuthority, getPageAuthority), or provide usage examples, leaving the agent underinformed for correct 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 coverage is 100%, so the description adds no new meaning beyond the schema descriptions. The parameter descriptions in the schema are adequate ('Target to assess authority...', 'Response format. Default: json.'). At baseline 3, no extra value is provided by the tool description.
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 'Fetch', the resource 'authority metrics', and the scope 'target (domain, host or URL)'. It distinguishes from sibling tools like getDomainAuthority or getPageAuthority by emphasizing its applicability to any target format, including root domain, subdomain, or full URL.
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 related siblings such as getDomainAuthority or getPageAuthority. The description does not mention any prerequisites, exclusions, or alternative tools, leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksCountGet Total Backlinks CountA
Data Tool: Returns the total number of backlinks for the target. Supports batch requests.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or URL. Can be a single string or an array. |
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 discloses batch request support but does not mention whether the operation is read-only, rate limits, or authentication needs. Basic transparency but could be improved.
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 very concise: two sentences that clearly state the purpose and the batch capability. No unnecessary words; front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters, all well-described in schema, but no output schema exists. The description does not clarify what the return value looks like (e.g., a count number). For a simple tool, this is adequate but not fully 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?
All parameters are described in the input schema (100% coverage). The description adds no new meaning beyond 'supports batch requests', which is already implied by the target schema allowing arrays. Baseline score 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?
Description clearly states the tool returns the total number of backlinks for a target and supports batch requests. The name directly corresponds to the function. Among siblings like getBacklinksAnchors or getBacklinksSummary, this tool is uniquely identified by 'count'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'supports batch requests' but offers no guidance on when to use this tool versus alternatives (e.g., getBacklinksSummary). No exclusions or recommended contexts are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksExportStatusGet Backlinks Export StatusA
Data Tool: Checks the status of an asynchronous backlinks export task. Returns task status (queued_for_processing, processing, complete) and download URL when complete.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID returned from the exportBacklinksData method (e.g., "1_878619"). |
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 discloses the async nature and possible statuses, but omits details on error handling, authentication, or rate 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?
Two sentences, no filler, front-loaded with purpose.
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 simple status check with one parameter, the description covers input and output adequately, though it does not address potential edge cases like expiration of the download URL.
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 already describes the parameter with 100% coverage, and the description adds value by specifying the source of the task ID (from exportBacklinksData method).
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 checks the status of an asynchronous backlinks export task, specifying the exact purpose and distinguishing it from siblings like other data retrieval or audit tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a follow-up to an export call, but does not explicitly state when to use it versus alternatives or provide when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksIndexedPagesBacklinks Indexed PagesB
Data Tool: Fetch site pages that have backlinks, with sorting and limit controls (v1/backlinks/indexed-pages)
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| limit | No | Maximum number of results to return (1–10,000). Default: 100. | |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| order_by | No | Sort field (descending): 'backlinks' or 'refdomains'. Default: backlinks. | backlinks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions sorting and limit controls (already in schema) but omits details like pagination behavior, whether results are exhaustive, rate limits, or permission requirements. The description adds minimal value beyond the input 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 sentence that is direct and to the point. Every word adds value: it identifies the tool category ('Data Tool'), the action ('Fetch'), the resource, and key features (sorting and limit controls). No unnecessary 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?
Given there is no output schema, the description should clarify what the output contains. It does not describe the return format (e.g., list of URLs with counts) or error handling. The tool's role is clear, but for a data retrieval tool, the lack of output details leaves a gap.
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 detailed parameter descriptions, so baseline is 3. The description adds the phrase 'with sorting and limit controls' but does not provide extra meaning beyond what the schema already offers. No examples or typical usage are included.
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 'site pages that have backlinks' with sorting and limit controls, specifying the verb 'Fetch' and resource 'site pages with backlinks'. This distinctly differentiates it from siblings like DATA_getAllBacklinks (which returns backlinks, not pages) and other backlink tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, recommended scenarios, or when not to use it. The only context is the tool name and description, which requires the agent to infer usage from its function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksMetricsGet Backlink MetricsC
Data Tool: Returns key statistics for a target, such as the number of backlinks, referring domains, etc. Supports batch requests.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or URL. Can be a single string or an array of strings for batch processing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full behavioral burden. It mentions batch requests but does not disclose whether the tool is read-only, destructive, or has rate limits. The term 'Data Tool' weakly implies read-only, but it's not explicit.
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, front-loaded with the core purpose ('Returns key statistics'). No fluff. Could be slightly more structured but overall concise.
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?
No output schema exists, so the description should explain return values. It mentions 'key statistics' but does not list them, leaving ambiguity. For a tool with 3 parameters and batch support, more detail on output structure is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all parameters with descriptions, achieving 100% coverage. The description adds the concept of batch requests via 'target' array, which goes beyond the schema. Baseline 3 is appropriate as the description adds marginal value.
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 returns key statistics like backlinks count and referring domains, with batch support. The verb 'returns' and resource 'key statistics' are specific. However, it does not differentiate from sibling tools like DATA_getBacklinksCount or DATA_getBacklinksSummary, which may overlap.
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 explicit guidance on when to use this tool versus alternatives such as getBacklinksCount (just count) or getBacklinksRefDomains (only ref domains). The description implies it's for summary stats but lacks when-not and alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksRawFetch Backlinks in BatchesA
Data Tool: Returns all backlinks pointing to a target using cursor-based pagination for large datasets.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| next | No | Cursor for the next page of results. Do NOT include for the first request. | |
| limit | No | Max results per page (1-100,000). Default: 10,000. | |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or URL. | |
| order_by | No | Sort field: 'date_found' (most recent), 'first.domain_inlink_rank', or 'first.inlink_rank'. | date_found |
| per_domain | No | Number of backlinks per referring domain to return. If omitted, returns all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses cursor-based pagination and returns all backlinks but lacks details on side effects, rate limits, or authentication. For a read-only data tool, this is adequate but not rich.
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 that is front-loaded with the tool's purpose and pagination mechanism. Every word contributes value; no redundancy.
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 7 parameters and no output schema, the description could provide more guidance on pagination flow or response structure. It is adequate for a simple listing but lacks completeness for complex iteration.
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. The description adds context by mentioning cursor-based pagination related to the 'next' parameter, but otherwise does not add significant meaning 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 clearly states the tool returns all backlinks pointing to a target using cursor-based pagination. It specifies the resource (backlinks) and action (returns), and distinguishes from sibling tools like DATA_getBacklinksCount or DATA_getBacklinksAnchors.
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 large datasets via pagination but does not explicitly provide guidance on when to use this tool versus alternatives like DATA_getAllBacklinks or other backlinks tools. No when-not-to-use or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksRefDomainsBacklinks Referring DomainsB
Data Tool: Retrieves a list of referring domains pointing to the specified target, with options for sorting and limiting results.
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or full URL. | |
| order_by | No | Sort field: 'date_found' (most recent first), 'domain_inlink_rank' (highest first), or 'inlink_rank' (homepage IR highest first). | date_found |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only mentions retrieval with sorting/limiting, but omits read-only nature, pagination, rate limits, or output structure.
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 of 21 words, front-loaded with 'Data Tool:' (slightly redundant). No wasted words, but could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description underspecifies what the tool returns and lacks context on output format or behaviors beyond basic retrieval.
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?
Input schema has 100% coverage with descriptions for all 5 parameters. Description adds no extra meaning beyond stating 'options for sorting and limiting results,' which is already implied.
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?
Describes a specific verb ('Retrieves') and resource ('list of referring domains pointing to the specified target'), clearly distinguishing this from sibling tools that handle backlinks, anchors, or audits.
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 like DATA_getAllBacklinks or DATA_getBacklinksAnchors. Missing context such as prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getBacklinksSummaryBacklinks SummaryC
Data Tool: Retrieves a summary of backlink metrics for one or multiple targets (domains, subdomains, or URLs).
| Name | Required | Description | Default |
|---|---|---|---|
| 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 |
| 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'retrieves a summary' without specifying what metrics are included, whether it is read-only, or any other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded with the tool category and purpose. It is concise but could include more 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?
Given the large number of sibling backlink tools and the lack of output schema, the description is incomplete. It does not specify what the summary contains or how it differs from similar 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 coverage is 100% with descriptions for all parameters. The description adds no additional meaning beyond the schema, so baseline 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 it retrieves a summary of backlink metrics for targets, but does not differentiate from sibling tools like DATA_getBacklinksMetrics or DATA_getBacklinksCount.
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 other backlink tools. The description does not provide context for appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getCrawledPagesGet Crawled PagesB
Data Tool: Returns a paginated list of all URLs found during an audit, providing a complete sitemap as discovered by the crawler.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of pages to return in the list. | |
| offset | No | Starting position for the list of pages. | |
| audit_id | Yes | Unique identifier of the audit report. |
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. It mentions pagination but does not disclose sort order, rate limits, error handling for invalid audit_id, or whether the list includes metadata like crawl dates. This leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is mostly concise but includes the redundant prefix 'Data Tool:'. It could be streamlined without losing meaning.
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 simple list tool, the description covers the core purpose. However, it does not mention output format, ordering of results, or pagination details beyond 'paginated list'. Minor gaps given the tool's simplicity.
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 clear descriptions for each parameter. The description does not add extra context beyond what the schema provides, such as explaining how limit and offset work together or default behaviors. 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 tool returns a paginated list of all URLs found during an audit, providing a complete sitemap. It uses a specific verb ('Returns') and resource ('crawled pages'), and distinguishes it from sibling tools like getAuditReport or getAuditPagesByIssue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as getAuditPagesByIssue or getAuditReport. There is no mention of prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getCumulativeBacklinksHistoryGet Cumulative Backlinks HistoryA
Data Tool: Returns a number of live backlinks for every day within the specified date range for the specified target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| target | Yes | Aim of the request: only full page URL is supported. | |
| date_to | No | End date in YYYY-MM-DD format (inclusive range). | |
| date_from | No | Start date in YYYY-MM-DD format (inclusive range). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It explains the output (daily backlink counts) but omits details such as rate limits, pagination, data freshness, or any constraints on the target parameter beyond what is in 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 sentence that front-loads the core purpose. Every word contributes meaning, and there is no redundant or verbose content.
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, the description adequately explains the return value format (daily counts). However, it does not address potential edge cases like empty date ranges or unsupported targets, but given the overall simplicity it is mostly sufficient.
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 75%, with descriptions for target, date_to, and date_from. The description adds no new parameter-level context beyond the schema. It does not explain the 'mode' parameter or its interaction with 'target', leaving some ambiguity.
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 returns a number of live backlinks for every day within a specified date range for a specified target. It uses specific verbs and resources, distinguishing it from related tools like DATA_getBacklinksCount that may return aggregated counts.
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 its many siblings, nor does it mention prerequisites, limitations, or alternative tools. This is a critical gap 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.
DATA_getDistributionOfDomainAuthorityGet Distribution of Domain AuthorityA
Data Tool: Returns information about the distribution of Domain InLink Rank (Domain Authority) of all the domains that reference a specific target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| target | Yes | Aim of the request: root domain, host, or URL. | |
| histogramMode | No | Mode of aggregation: domain (unique domains) or host (unique hosts). | host |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states what the tool returns without disclosing behavioral traits such as data retrieval limits, error handling, or side effects.
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 that front-loads the core purpose without extraneous words, earning its place with clear value.
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 output schema, the description provides basic understanding but lacks details about the return format or example usage, leaving some gaps for the 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 67%, so some parameters ('target', 'histogramMode') are described but 'mode' lacks description. The tool description does not add meaning beyond the schema, resulting in adequate but not enhanced parameter 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 verb 'Returns information' and the resource 'distribution of Domain InLink Rank (Domain Authority)'. It specifies the scope 'of all the domains that reference a specific target', distinguishing it from similar tools like DATA_getDomainAuthority.
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 retrieving distribution data but provides no explicit guidance on when to use this tool versus siblings, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainAdsByDomainDomain Ads by DomainB
Data Tool: Retrieves paid ads for a specific domain.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | The ending year and month for the data retrieval period, formatted as “YYYY-MM”. | |
| from | No | The starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”). | |
| 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. | |
| domain | Yes | The specific domain for which to retrieve its paid ad data. | |
| source | Yes | Alpha-2 country code of the regional keyword database. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits like pagination, data range, or rate limits. It only states the basic retrieval action.
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?
One sentence efficiently states the purpose with no wasted words, though it could include more context without harming 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 6 parameters, no output schema, and no annotations, the description is too sparse. It does not explain return format, pagination details, or data range constraints, leaving significant gaps for the 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 fully documents parameters. The description adds no new information beyond what is already in the schema, meeting baseline expectations.
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 paid ads for a specific domain, using a specific verb and resource, distinguishing it from siblings like getDomainAdsByKeyword.
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, no mention of when not to use, and no exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainAdsByKeywordDomain Ads by KeywordB
Data Tool: Retrieves paid ads for a specific keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | The ending year and month for the data retrieval period, formatted as “YYYY-MM”. | |
| from | No | The starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”). | |
| 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. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The specific keyword for which to retrieve paid ad data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only says 'retrieves', implying a read operation, but omits details like pagination, data scope, auth needs, or whether it's destructive. The schema reveals pagination but the description adds no value.
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 front-loading the core purpose. No filler words; every word 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?
Given 6 parameters, no output schema, and no annotations, the description is too minimal. It lacks details on output format, date range behavior, pagination, and interpretation of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 6 parameters. The tool description adds no extra 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 states the verb 'retrieves' and the resource 'paid ads', scoped to 'a specific keyword'. This clearly distinguishes it from siblings like getDomainAdsByDomain which is by domain.
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 (e.g., getDomainAdsByDomain). The description does not mention exclusions, prerequisites, or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainAuthorityGet Domain AuthorityB
Data Tool: Returns information about the domain InLink Rank (Domain Authority) of the target page’s root domain.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Aim of the request: root domain, host, or URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits such as data freshness, rate limits, or whether the tool is read-only. It only restates the basic 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?
Single sentence, no filler, directly to the point. Could be slightly more informative without losing 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?
No output schema, so the description should hint at the return structure. It does not. Also lacks explanation of 'InLink Rank' or 'Domain Authority'. Minimal context given.
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 one parameter 'target'. The description adds some context by listing acceptable inputs (root domain, host, or URL) but does not clarify how different input types are handled. 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 it returns information about the domain InLink Rank (Domain Authority) for the root domain of a target page. It uses a specific verb and resource, and distinguishes from siblings like DATA_getPageAuthority and DATA_getDomainAuthorityHistory.
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. Sibling tools exist for page authority and history, but the description does not mention when to prefer this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainAuthorityHistogramGet Domain Authority HistogramB
Data Tool: Returns a bucketed histogram of Domain InLink Rank (Domain Authority) for referring domains linking to the target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| target | Yes | Aim of the request: domain, host, or URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It indicates it returns a histogram (read-like operation) but does not disclose behavioral traits like whether it is read-only, any rate limits, or side effects. The name suggests get, but no explicit confirmation.
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, directly stating the core function. No extraneous 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?
Missing output schema and limited parameter documentation. Does not describe histogram details (buckets, range, return format). Incomplete for an agent to fully understand the result.
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 50%, with 'target' documented but 'mode' only described by enum values. The description does not explain what 'mode' or 'target' control beyond the schema's minimal description. It fails to compensate for the schema gap.
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 returns a histogram of Domain Authority for referring domains linking to the target. It uses specific verbs ('Returns') and resource ('bucketed histogram'), and distinguishes from sibling tools like DATA_getDomainAuthority and DATA_getDistributionOfDomainAuthority by specifying 'histogram'.
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 DATA_getDomainAuthority or DATA_getDistributionOfDomainAuthority. No context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainAuthorityHistoryGet Domain Authority HistoryA
Data Tool: Returns historical Domain InLink Rank (Domain Authority) values for a target domain. The target is always resolved to its PLD (pay-level domain) regardless of whether a root domain, host, or URL is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Domain, host, or URL (PLD is extracted). | |
| date_to | No | End date in YYYY-MM-DD format. | |
| date_from | No | Start date in YYYY-MM-DD format. | |
| granularity | No | Granularity at which to return data: by_day, by_week, or by_month. | by_day |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the target is resolved to PLD, which is a behavioral trait. No annotations exist, so the description carries the burden. However, it does not mention data freshness, rate limits, or what happens if no history is available.
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, no redundant information. Clearly describes core functionality and key behavioral detail. Efficient and 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?
While the tool has 4 parameters with good schema coverage, the description does not mention return format, ordering, bounds, or pagination. With no output schema, more detail about the returned data structure would improve completeness.
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 baseline is 3. The description adds minimal value beyond schema, only clarifying PLD resolution which is already implied in the schema's description 'PLD is extracted'. No additional context for date range or granularity.
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 it returns historical Domain InLink Rank values for a target domain and explains PLD resolution. This distinguishes it from siblings like getDomainAuthority (current) and getPageAuthorityHistory (page-level).
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 use for historical authority data but does not explicitly specify when to use this tool versus alternatives like getDomainAuthority for current values or getPageAuthorityHistory for page history. No when-not-to-use or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainCompetitorsDomain CompetitorsB
Data Tool: Retrieves a list of organic or paid competitors for a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| domain | Yes | The primary domain for which to find competitors. | |
| source | Yes | Alpha-2 country code of the regional keyword database. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states basic functionality. It does not disclose behavioral traits such as read-only nature, rate limits, data freshness, or side effects. The agent lacks essential 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. However, it could be slightly more structured by front-loading key aspects like the tool's category or adding a brief note on parameter usage.
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 4 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the response format, pagination, or limitations, leaving the agent with significant ambiguity about how to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal value: it mentions 'organic or paid' which aligns with the type parameter, but does not clarify semantics of stats, domain, or source beyond what the schema already defines.
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 specifies the action ('retrieves a list'), the resource ('competitors for a domain'), and distinguishes between organic and paid types. This effectively differentiates it from sibling tools like getDomainKeywords or getDomainAdsByDomain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any context on selecting between organic and paid modes. The description does not address prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainKeywordsDomain KeywordsB
Data Tool: Retrieves a list of keywords for which a domain ranks in organic or paid search.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Exact URL for which to retrieve keyword rankings. | |
| 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. | |
| page | No | For paginated results, specifies the page number to retrieve. | |
| type | No | Specifies whether to retrieve keywords for organic search traffic or paid search (advertising) traffic. | organic |
| limit | No | The maximum number of keywords to return per page. | |
| domain | Yes | The domain name for which to retrieve keywords. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| filter_url | No | JSON string to filter keywords by ranking URL. | |
| order_type | No | The order of sorting. | desc |
| pos_change | No | Filters keywords based on changes in their ranking positions compared to the previous period. | |
| order_field | No | The field by which the returned keyword list should be sorted. | traffic |
| filter_cpc_to | No | Specifies the maximum Cost Per Click (CPC) value for keywords. | |
| filter_intents | No | A comma-separated list of search intent codes to filter keywords. | |
| filter_keyword | No | JSON string specifying keyword text to match. | |
| filter_cpc_from | No | Specifies the minimum Cost Per Click (CPC) value for keywords. | |
| filter_price_to | No | Maximum keyword price value. | |
| with_subdomains | No | If set to true, includes keywords ranking for the specified domain or URL and all its subdomains. | |
| filter_volume_to | No | Specifies the maximum monthly search volume for keywords to be included. | |
| filter_price_from | No | Minimum keyword price value. | |
| filter_traffic_to | No | Specifies the maximum estimated monthly traffic for keywords. | |
| filter_position_to | No | Specifies the maximum ranking position for keywords. | |
| filter_volume_from | No | Specifies the minimum monthly search volume for keywords to be included. | |
| filter_traffic_from | No | Specifies the minimum estimated monthly traffic for keywords. | |
| filter_difficulty_to | No | Specifies the maximum keyword difficulty score for keywords to be included. | |
| filter_position_from | No | Specifies the minimum ranking position for keywords. | |
| filter_serp_features | No | Comma-separated list of SERP feature codes to include (e.g., featured_snippet,local_pack,sitelinks). | |
| filter_competition_to | No | Specifies the maximum competition score for keywords. | |
| filter_difficulty_from | No | Specifies the minimum keyword difficulty score (typically 0-100) for keywords to be included. | |
| filter_competition_from | No | Specifies the minimum competition score (typically 0-1 or 0-100, depending on the metric scale) for keywords. | |
| filter_keyword_count_to | No | Specifies the maximum number of words in a keyword phrase. | |
| filter_keyword_count_from | No | Specifies the minimum number of words in a keyword phrase. | |
| filter_traffic_percent_to | No | Maximum traffic share percentage for keywords. | |
| filter_characters_count_to | No | Specifies the maximum character length for keyword phrases. | |
| filter_traffic_percent_from | No | Minimum traffic share percentage for keywords. | |
| filter_characters_count_from | No | Specifies the minimum character length for keyword phrases. | |
| filter_multi_keyword_excluded | No | JSON string specifying keyword text that must be excluded. | |
| filter_multi_keyword_included | No | JSON string specifying keyword text that must be included. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states it retrieves data, without mentioning if it is read-only, pagination behavior, or any side effects. The description is insufficient for a data 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 concise sentence that front-loads the core purpose. No unnecessary 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?
Despite 37 parameters and no output schema, the description does not mention return format, pagination, or key usage notes. Users would need to infer behavior from the schema alone.
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 adds no additional meaning beyond the schema; all parameter details are in the input schema itself.
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 keywords for a domain, specifying both organic and paid search. It uses a specific verb and resource, distinguishing it from sibling tools like DATA_getDomainKeywordsComparison.
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 retrieving domain keywords but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainKeywordsComparisonDomain Keywords ComparisonA
Data Tool: Analyzes and compares the keyword rankings of two websites: domain and compare. It can find keywords they have in common (diff=0) or identify a 'keyword gap' (diff=1)—keywords for which the domain ranks, but the compare domain does not. To find keywords the compare domain has but domain misses, swap the values of domain and compare.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The primary full URL for the analysis. If provided, `domain` is ignored. Required if `domain` is not provided. | |
| 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. `0` = Common keywords (intersection): keywords both domains rank for. `1` = Keyword gap (difference): keywords the `domain` ranks for, but `compare` does not. | |
| page | No | For paginated results, specifies the page number of keywords to retrieve. | |
| type | No | Specifies whether to compare keywords based on organic search traffic or paid search (advertising) traffic. | organic |
| limit | No | The maximum number of keywords to return per page. | |
| domain | No | The primary domain for the analysis. For a keyword gap analysis (`diff=1`), this will be the domain that HAS the keywords. Required if `url` is not provided. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| compare | Yes | The secondary domain or full URL for comparison. Must match the type of the primary parameter (`domain` or `url`). For a keyword gap analysis (`diff=1`), this will be the entity that is MISSING the keywords. | |
| order_type | No | Specifies the sort order for the results. | asc |
| order_field | No | Specifies the field by which to sort the results. | keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses the comparison logic and diff modes but lacks details on pagination, rate limits, data freshness, or whether the tool is read-only. The description is honest but incomplete for behavioral expectations.
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 concise sentences with clear front-loading of purpose. Every sentence adds value, no redundancy. Well-structured for quick parsing.
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 11 parameters and no output schema, the description explains the core functionality and usage well. It covers the main use cases but could be slightly more complete by mentioning pagination or return format, though those are in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value for 'domain' and 'compare' by explaining their roles in the gap analysis, but it does not elaborate on other parameters like 'cols' or 'order_field' beyond what the schema provides.
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 it analyzes and compares keyword rankings of two domains, with explicit modes for common keywords and keyword gap. The swapping advice clarifies how to get the reverse gap, distinguishing it from single-domain tools like DATA_getDomainKeywords.
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 explains when to use diff=0 vs diff=1 and provides a workaround for the reverse gap. It does not explicitly compare to sibling tools like DATA_getDomainCompetitors, but the context is clear enough for an agent to select this tool for pairwise comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainOverviewDatabasesDomain Overview DBC
Data Tool: Fetch domain overview by database (v1/domain/overview/db)
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Specific URL to analyze instead of the root domain. If provided, the domain parameter is ignored. | |
| domain | Yes | The domain for which to retrieve the keyword statistics. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| 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?
With no annotations provided, the description carries full responsibility for behavioral transparency. It only states it's a data tool that fetches data, implying a read operation, but does not explicitly confirm read-only nature, side effects, permissions, or rate limits. This is insufficient for safe use.
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, which is concise. However, it includes the redundant prefix 'Data Tool:' and lacks structured information. It could be more informative without being longer.
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 4 parameters and no output schema, the description is extremely brief. It does not explain what 'domain overview by database' entails, how the parameters interact (e.g., url vs domain), or what the return format looks like. This leaves significant gaps 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 input schema adequately documents all parameters. The description adds no additional meaning beyond what the schema provides, resulting in a 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 the action ('Fetch domain overview by database') and includes the API endpoint. However, it does not distinguish this tool from similar siblings like DATA_getDomainOverviewWorldwide or DATA_getDomainOverviewHistory, leaving ambiguity about what 'by database' specifically 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 alternatives. The description lacks any context about appropriate usage scenarios, prerequisites, or when to choose other domain overview tools from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainOverviewHistoryDomain Overview HistoryB
Data Tool: Retrieves historical data for domain traffic and keyword rankings.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Specific URL to analyze instead of the root domain. If provided, the domain parameter is ignored. | |
| type | No | Specifies whether to retrieve historical data for organic search traffic or paid search (advertising) traffic. | organic |
| domain | Yes | The domain name for which to retrieve historical performance data. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| 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 exist, so description must disclose behavioral traits. It states it retrieves data but does not mention rate limits, data freshness, or whether it is read-only. Adequate but lacks depth.
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 is concise and front-loaded with the tool's purpose. However, it could benefit from a brief structured breakdown 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?
No output schema, and description does not explain return values or format. For a data retrieval tool, describing the output structure would aid completeness.
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. Description adds no extra meaning beyond the schema, so 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 it retrieves historical data for domain traffic and keyword rankings, which aligns with the tool name and distinguishes it from sibling tools focused on audits, backlinks, or other data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like DATA_getDomainKeywords or DATA_getDomainOverviewWorldwide. No when-to-use or when-not-to-use context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getDomainOverviewWorldwideDomain Overview WorldwideC
Data Tool: Retrieves an aggregated worldwide overview of domain metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name for which to retrieve worldwide statistics. | |
| 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 |
| currency | No | An ISO 4217 currency code to be used for any monetary values (like traffic cost) returned in the response. | USD |
| 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?
No annotations are present, and the description does not disclose behavioral traits such as read-only status, authentication requirements, rate limits, or side effects. The phrase 'Data Tool' weakly implies read-only, but this is insufficient for transparency.
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 is concise and directly states the tool's purpose. It is appropriately sized without unnecessary 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 very minimal. There is no output schema, and the description does not explain what the response contains (e.g., structure, data fields). Given the tool's four parameters, more context is needed for complete understanding.
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 fully explains each parameter. The description adds no further clarification beyond what is already in the schema, which meets the baseline but does not exceed it.
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 an aggregated worldwide overview of domain metrics. It is specific with verb and resource but does not differentiate from sibling tools like DATA_getDomainOverviewDatabases or DATA_getDomainOverviewHistory, though the name provides some 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?
No guidance is provided on when to use this tool versus alternatives. The description lacks any mention of context, prerequisites, or scenarios for which this tool is best suited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getFoundLinksGet Found LinksB
Data Tool: Returns a paginated list of every hyperlink discovered across the entire site during the audit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of links to return in the list. | |
| filter | No | Array of filter objects to build complex queries. | |
| offset | No | Starting position for the list of links. | |
| audit_id | Yes | Unique identifier of the audit. | |
| page_type | No | Filters links by type. | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavioral traits. It only states it returns a paginated list but does not disclose pagination behavior, data freshness, rate limits, or that this is a read-only operation. The description lacks sufficient detail for an agent to understand side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded. It contains no fluff and succinctly conveys the core purpose.
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 5 parameters (including a nested filter array) and no output schema, the description should cover return structure, pagination details, and filter usage. It only mentions 'paginated list' without explaining offset/limit. The description is incomplete for an agent to effectively invoke the tool without additional schema parsing.
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. The description does not add extra meaning beyond what's in the schema. For instance, the filter array is complex but the description doesn't explain how to build filters. The description remains at baseline because it doesn't compensate for schema descriptions.
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 is clear: 'Returns a paginated list of every hyperlink discovered across the entire site during the audit.' It uses a specific verb ('Returns') and resource ('paginated list of hyperlinks') and distinguishes from sibling tools by focusing on hyperlinks found during an audit, not other link types.
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 (e.g., other getBacklinks tools). The description only states what it does, not when to use it or when to avoid it. For example, it doesn't clarify if this is for internal links only or all links, nor does it mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getIssuesByUrlGet Issues By URLA
Data Tool: Retrieves a detailed list of all issues (errors, warnings, and notices) that were found on a single, specific page within an audit.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Full page URL. Either url or url_id must be provided. | |
| url_id | No | Unique identifier of the page. Either url_id or url must be provided. | |
| audit_id | Yes | Unique identifier of the audit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It indicates the tool returns a 'detailed list' but does not specify output format, pagination, or required prior context (e.g., audit must be complete). The scope (single page) is clear, but other behavioral traits like data freshness or rate limits are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose without extraneous information. It is front-loaded and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters fully documented in the schema and no output schema, the description adequately explains the input context and output type. It lacks details on output structure but is sufficient for a retrieval tool. Sibling tools are numerous, but the purpose is distinct enough.
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% for all three parameters (url, url_id, audit_id). The description does not add any additional meaning beyond what the schema already provides about the parameters. 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 tool retrieves a detailed list of all issues (errors, warnings, notices) for a single page within an audit. It uses specific verb 'retrieves' and resource 'issues', distinctly different from sibling tools like getAuditReport or getAuditPagesByIssue.
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 a single page but does not explicitly state when to use this tool versus alternatives such as getAuditPagesByIssue or getCrawledPages. No guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getKeywordQuestionsKeyword QuestionsB
Data Tool: Retrieves a list of question-based keywords containing the seed keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | The field by which the returned list of keywords should be sorted. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| sort_order | No | The order of sorting for the sort field. | desc |
| filter_cpc_to | No | Maximum Cost Per Click. | |
| history_trend | No | Whether to include historical search volume trend data in the response. | |
| filter_intents | No | Comma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local. | |
| filter_cpc_from | No | Minimum Cost Per Click. | |
| filter_volume_to | No | Maximum monthly search volume. | |
| filter_volume_from | No | Minimum monthly search volume. | |
| filter_difficulty_to | No | Maximum keyword difficulty score (0-100). | |
| filter_serp_features | No | Comma-separated list of SERP features to filter by. | |
| filter_competition_to | No | Maximum competition score (0.0-1.0). | |
| filter_difficulty_from | No | Minimum keyword difficulty score (0-100). | |
| filter_competition_from | No | Minimum competition score (0.0-1.0). | |
| filter_keyword_count_to | No | Maximum number of words in the keyword. | |
| filter_keyword_count_from | No | Minimum number of words in the keyword. | |
| filter_characters_count_to | No | Maximum character length of the keyword. | |
| filter_characters_count_from | No | Minimum character length of the keyword. | |
| filter_multi_keyword_excluded | No | Comma-separated list of words that must NOT appear in the keyword. | |
| filter_multi_keyword_included | No | Comma-separated list of words that MUST appear in the keyword (AND logic). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and description does not mention pagination, rate limits, or other behavioral traits. Minimal disclosure beyond the basic 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?
Single sentence is concise but lacks structure (e.g., no mention of pagination). Still, every word adds value and it is not verbose.
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 23 parameters and no output schema, the description is too minimal. It does not explain return format, pagination behavior, or how 'question-based' is defined, leaving the agent underinformed.
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 baseline is 3. Description adds value by specifying 'question-based' filtering, which is not captured in parameter descriptions. This helps the agent understand result set 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 clearly states it retrieves question-based keywords containing the seed keyword, distinguishing it from sibling tools like DATA_getSimilarKeywords which do not specify question-based filtering.
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 such as DATA_getSimilarKeywords or DATA_getLongTailKeywords. The description just states function without contextual selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getLongTailKeywordsLongtail KeywordsC
Data Tool: Retrieves a list of long-tail variations for the seed keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | The field by which the returned list of keywords should be sorted. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| sort_order | No | The order of sorting for the sort field. | |
| filter_cpc_to | No | Maximum Cost Per Click. | |
| filter_intents | No | Comma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local. | |
| filter_cpc_from | No | Minimum Cost Per Click. | |
| filter_volume_to | No | Maximum monthly search volume. | |
| filter_volume_from | No | Minimum monthly search volume. | |
| filter_difficulty_to | No | Maximum keyword difficulty score (0-100). | |
| filter_serp_features | No | Comma-separated list of SERP features to filter by. | |
| filter_competition_to | No | Maximum competition score (0.0-1.0). | |
| filter_difficulty_from | No | Minimum keyword difficulty score (0-100). | |
| filter_competition_from | No | Minimum competition score (0.0-1.0). | |
| filter_keyword_count_to | No | Maximum number of words in the keyword. | |
| filter_keyword_count_from | No | Minimum number of words in the keyword. | |
| filter_characters_count_to | No | Maximum character length of the keyword. | |
| filter_characters_count_from | No | Minimum character length of the keyword. | |
| filter_multi_keyword_excluded | No | Comma-separated list of words that must NOT appear in the keyword. | |
| filter_multi_keyword_included | No | Comma-separated list of words that MUST appear in the keyword (AND logic). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states retrieval but omits traits like read-only nature, permissions, or rate 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 a single efficient sentence with no waste. It could be more structured but is appropriately sized for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (22 parameters, no output schema, no annotations), the description is insufficient. It does not explain return format, pagination, or filtering behavior.
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%, meeting baseline. The description adds no parameter-specific meaning beyond what the schema already provides.
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 it retrieves long-tail variations for a seed keyword, using a specific verb and resource. However, it does not distinguish itself from siblings like getRelatedKeywords or getSimilarKeywords.
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. No exclusions or context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getNewLostBacklinksCountGet Daily New and Lost Backlinks CountB
Data Tool: Returns a number of (newly) found or lost backlinks for every day within the specified date range.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or URL. | |
| date_to | No | End date in YYYY-MM-DD format (inclusive). Default: today. | |
| dofollow | No | Attribute: 'dofollow', 'nofollow', 'undefined', or empty (all). | |
| url_from | No | Filter by referring page URL (domain/subdomain). | |
| date_from | No | Start date in YYYY-MM-DD format (inclusive). Default: yesterday. | |
| link_type | No | Type: 'href', 'redirect', or empty (all). | |
| anchor_type | No | Anchor type: 'text', 'image', 'undefined', or empty (all). | |
| new_lost_type | No | Indicates whether to count 'new', 'lost', or both (empty). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says returns count, but does not disclose read-only nature, side effects, or any behavioral traits. For a data retrieval tool, minimal disclosure.
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, concise and front-loaded. No unnecessary 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?
With 10 parameters, no output schema, and no annotations, the description is too minimal. Does not explain return format (e.g., array of objects), default date behavior, or how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The tool description adds no extra semantics beyond what is already in the schema, so 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?
Description clearly states it returns daily counts of new or lost backlinks within a date range. This distinguishes it from siblings like DATA_getBacklinksCount (total count) and DATA_listNewLostBacklinks (list, not count).
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 like DATA_getBacklinksCount or DATA_listNewLostBacklinks. The description lacks context for selecting this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getNewLostRefDomainsCountGet New and Lost Referring Domains CountA
Data Tool: Returns the number of referring domains, at least one backlink from which was newly found or lost in the specified date range, broken down by day.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| target | Yes | Aim of the request: root domain, host, or URL. | |
| date_to | No | End date in YYYY-MM-DD format. | |
| date_from | No | Start date in YYYY-MM-DD format. | |
| new_lost_type | No | Indicates whether the count of new or lost refdomain should be returned. Empty returns both. |
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 discloses the daily breakdown but does not mention data freshness, rate limits, pagination, or behavior when no data is available. For a read operation, this is minimal.
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 is concise and front-loaded with the key action. No unnecessary words, and every part contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (5 parameters, no output schema), the description adequately covers the purpose and output structure (daily breakdown). It could detail output format more, but it is sufficient for agent selection.
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 high (80%), and the schema already provides clear parameter descriptions. The tool description adds no extra meaning beyond the schema, 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 clearly states the tool returns the number of referring domains that are newly found or lost in a date range, broken down by day. This distinguishes it from sibling tools like DATA_getNewLostBacklinksCount (counts backlinks) and DATA_listNewLostReferringDomains (lists domains).
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 lacks explicit guidance on when to use this tool versus alternatives. It implies usage for quick counts of new/lost referring domains, but does not mention exclusions or conditions where other tools might be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getPageAuthorityGet Page AuthorityB
Data Tool: Returns information about the InLink Rank (Page Authority) for a target URL.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Aim of the request: root domain, host, or URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description bears full responsibility for disclosing behavioral traits. It only states 'Returns information' without specifying whether the operation is read-only, if authentication is needed, rate limits, or any side effects. This is insufficient for a data retrieval 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 brief at two sentences, with the first sentence ('Data Tool:') being redundant. The core information is front-loaded, but the filler slightly detracts from conciseness. Overall, it 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?
Given the tool's simplicity (single parameter) and lack of output schema, the description should clarify what the return value includes. It mentions 'InLink Rank (Page Authority)' but does not specify other possible fields or format. This is adequate but not thorough.
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 adds no additional meaning beyond the schema's parameter description; in fact, it says 'target URL' but the schema allows root domain or host, causing slight ambiguity. No value added beyond 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 clearly states the tool returns information about InLink Rank (Page Authority) for a target URL, using a specific verb and resource. It distinguishes from sibling tools like DATA_getDomainAuthority (domain-level) and DATA_getPageAuthorityHistory (history), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as DATA_getDomainAuthority or DATA_getPageAuthorityHistory. The description lacks context on prerequisites, when not to use it, or which scenarios it suits best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getPageAuthorityHistoryGet Page Authority HistoryC
Data Tool: Returns information about the historical values of InLink Rank for a specific target page.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Aim of the request: only full page URL is supported. | |
| date_to | No | End date in YYYY-MM-DD format. | |
| date_from | No | Start date in YYYY-MM-DD format. | |
| granularity | No | Granularity at which to return data. | by_day |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It states returns historical values but does not disclose potential behavioral traits such as data retention limits, rate limits, error handling for invalid targets, or whether it requires authentication. The description is too sparse to inform an agent about operational aspects.
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, very concise, but arguably too brief. It front-loads the core purpose but omits important details that would improve usefulness without adding significant length. The conciseness is acceptable but not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description should at least hint at the output structure (e.g., 'returns time series of InLink Rank scores'). As is, it only says 'information about the historical values,' which is vague. Tool has 4 parameters and is one of many similar data tools, making this incompleteness a gap for correct 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?
With 100% schema description coverage, the baseline is 3. The description does not add additional context beyond the schema; it only restates that the tool returns historical values. No parameter-specific guidance is provided, but the schema itself is sufficient for basic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns historical InLink Rank values for a target page. Verb 'returns information' is specific, and 'historical values of InLink Rank' distinguishes it from sibling tools like DATA_getPageAuthority (current value) and DATA_getDomainAuthorityHistory (domain-level). Could more explicitly contrast with similar siblings, but purpose is clear.
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 like DATA_getPageAuthority or DATA_getDomainAuthorityHistory. No mention of prerequisites or typical use cases. The tool's applicability is implied only by its name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getReferringIpsGet Referring IPsC
Data Tool: Returns information about IPv4 addresses that belong to backlinks that point to a target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| limit | No | ||
| target | Yes | Aim of the request: root domain, host, or URL. | |
| order_by | No | backlinks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only says 'Returns information', omitting details like whether it's read-only, permission needs, or rate 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 a single sentence, not verbose, but lacks structure and front-loading of key information. It is adequate but not optimized.
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 4 parameters and no output schema, the description should clarify defaults, limits, and output format. It fails to do so, leaving gaps 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 low (25%), yet the description adds no meaning to parameters beyond the schema. It does not explain mode, limit, or order_by.
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 it returns information about IPv4 addresses belonging to backlinks pointing to a target, distinguishing it from sibling tools like DATA_getAllBacklinks or DATA_getBacklinksRefDomains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, or any prerequisites. The description simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getReferringIpsCountGet Referring IPs CountB
Data Tool: Returns the number of unique IPs linking to a target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| target | Yes | Aim of the request: root domain, host, or URL. Use array for batching multiple targets via POST. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits beyond the function. Does not mention side effects, rate limits, 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?
One clear sentence, front-loaded. No waste, but could benefit from brief elaboration on parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple count tool, it covers the basic purpose. However, lacks details on parameter usage and expected input format, which could confuse 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 coverage is 50% (only 'target' has a brief description). The tool description adds no meaning beyond the schema. Mode parameter not explained despite being an enum with default.
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?
Description clearly states it returns the number of unique IPs linking to a target. This distinguishes it from sibling tools like DATA_getReferringIps (which returns actual IPs) and DATA_getReferringSubnetsCount.
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. For example, when to use count vs enumerating IPs, or prerequisites like specifying mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getReferringSubnetsCountGet Referring Subnets CountB
Data Tool: Returns the number of unique subnets/C-blocks linking to a target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| target | Yes | Aim of the request: root domain, host, or URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It lacks details on authentication, rate limits, error handling, data freshness, or behavior for invalid targets. The only behavioral hint is 'unique subnets/C-blocks', but overall transparency is very low.
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 that is efficient and front-loads the purpose. While concise, it could include additional contextual hints without losing brevity, but currently it wastes no 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 tool is simple with few parameters, so completeness is less critical. However, no output schema is provided and the description does not hint at the return format (e.g., integer count, object). Basic completeness for a trivial tool, but could be more explicit.
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 50% (target has description, mode does not but enum values clarify). The description adds no parameter information beyond the schema. Baseline score of 3 is appropriate as the schema already provides reasonable 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 returns the number of unique subnets/C-blocks linking to a target, distinguishing it from sibling count tools like DATA_getBacklinksCount or DATA_getRefDomainsCount by specifying the resource type (subnets/C-blocks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as DATA_getRefDomainsCount or DATA_getBacklinksRefDomains. The description does not mention any prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getRelatedKeywordsRelated KeywordsC
Data Tool: Retrieves a list of keywords semantically related to the seed keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | The field by which the returned list of keywords should be sorted. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| sort_order | No | The order of sorting for the sort field. | desc |
| filter_cpc_to | No | Maximum Cost Per Click. | |
| history_trend | No | Whether to include historical search volume trend data in the response. | |
| filter_intents | No | Comma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local. | |
| filter_cpc_from | No | Minimum Cost Per Click. | |
| filter_volume_to | No | Maximum monthly search volume. | |
| filter_volume_from | No | Minimum monthly search volume. | |
| filter_difficulty_to | No | Maximum keyword difficulty score (0-100). | |
| filter_serp_features | No | Comma-separated list of SERP features to filter by. | |
| filter_competition_to | No | Maximum competition score (0.0-1.0). | |
| filter_difficulty_from | No | Minimum keyword difficulty score (0-100). | |
| filter_competition_from | No | Minimum competition score (0.0-1.0). | |
| filter_keyword_count_to | No | Maximum number of words in the keyword. | |
| filter_keyword_count_from | No | Minimum number of words in the keyword. | |
| filter_characters_count_to | No | Maximum character length of the keyword. | |
| filter_characters_count_from | No | Minimum character length of the keyword. | |
| filter_multi_keyword_excluded | No | Comma-separated list of words that must NOT appear in the keyword. | |
| filter_multi_keyword_included | No | Comma-separated list of words that MUST appear in the keyword (AND logic). |
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 like pagination, sorting, or the extensive filtering capabilities implied by the schema. The agent is left uninformed about these important aspects.
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?
Very concise single sentence, but it could include more useful information without becoming overly long. The front-loaded structure is good.
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 23 parameters and no output schema, the description is far too sparse. It fails to mention the rich filtering, sorting, and pagination options, leaving the agent with an incomplete picture of the tool's 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the parameter descriptions already provide.
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 it retrieves semantically related keywords for a seed keyword. While it doesn't explicitly differentiate from sibling tools like DATA_getSimilarKeywords, the mention of 'semantically related' provides enough specificity.
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 DATA_getSimilarKeywords or DATA_getDomainKeywords. The description lacks context on typical use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getSerpHtmlDumpGet SERP HTML DumpA
Data Tool: Retrieves the raw HTML dump of a completed SERP task as a ZIP file. Returns binary ZIP data containing the SERP HTML page(s). Useful for debugging, archiving, or parsing the actual SERP page content.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The unique ID of the query task from the Add SERP tasks method. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description is the sole source. It discloses that the task must be completed and returns binary ZIP data, but lacks details on error handling, permissions, or side effects. Adequate but not rich.
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?
Three concise sentences with front-loaded action: first sentence states purpose, second describes output, third gives use cases. No unnecessary 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?
For a simple retrieval tool with one parameter and no output schema, the description covers purpose, output, and usage context. Could add error conditions or data format notes, but sufficient for its complexity.
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 already provides 100% coverage for task_id description, but the tool description adds context that the task must be completed, which is meaningful beyond what schema states.
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?
Description uses specific verb 'Retrieves' and resource 'raw HTML dump of a completed SERP task as a ZIP file', clearly distinguishing from sibling tools like getSerpResults which return parsed data. It also states the output type and use cases.
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?
Mentions usefulness for debugging, archiving, or parsing, but does not explicitly state when not to use or compare with alternatives like getSerpResults. Guidance is implied but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getSerpLocationsSERP locationsB
Data Tool: Retrieves available locations for SERP analysis. After getting a location_id, use 'getSerpResults' to run SERP queries.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Query | |
| country_code | Yes | Alpha-2 country code for the regional prompt database (e.g., us for United States results). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as rate limits, auth requirements, or data freshness. As a simple retrieval tool, some transparency is still expected beyond the basic 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 clear front-loading of tool category and purpose. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (2 parameters, no output schema), the description provides adequate context for basic usage. However, it lacks details on output structure or potential limitations.
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 descriptions cover 100% of parameters (q and country_code), so the description adds limited semantic value. It mentions the output includes location_id, but does not elaborate on additional fields or response format.
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?
Description clearly states 'retrieves available locations for SERP analysis' and distinguishes from sibling tools by referencing getSerpResults. However, it could be more specific about what a location represents.
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?
Provides context that the tool should be used to get a location_id before running SERP queries with getSerpResults, but does not explicitly exclude other use cases or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getSerpResultsGet SERP resultsA
Data Tool: Runs a SERP query and returns results. Creates task, polls every 5 seconds until complete (5 min timeout), and returns organic/ads/featured snippets (standard) or all SERP types including AI Overview, Maps, Reviews (advanced). Supports progress notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Tag | |
| query | Yes | List of queries | |
| device | No | Device type | desktop |
| location_id | Yes | Location ID from SERP locations method | |
| max_wait_ms | No | Maximum wait time in milliseconds (default: 300000 = 5 minutes) | |
| result_type | No | Result type: 'standard' for organic/ads/featured_snippet, 'advanced' for all SERP types (costs 10 credits) | standard |
| language_code | Yes | Language code | |
| search_engine | No | Search engine | |
| poll_interval_ms | No | Polling interval in milliseconds (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral transparency burden. It discloses task creation, polling interval (5s), timeout (5 min), result types, and progress notifications. This provides sufficient behavioral insight for an agent.
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 three sentences, front-loads the purpose, and avoids unnecessary details. Every sentence serves a clear function: stating what it does, how it works, and what it returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and the presence of 9 parameters, the description adequately covers core behavior but omits details about the return structure or parameter relationships (e.g., language_code, location_id). It is moderately 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 baseline is 3. The description does not add significant new meaning beyond the schema's parameter descriptions. For example, 'result_type' is explained the same in both places.
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 it runs a SERP query and returns results, specifying organic/ads/featured snippets for standard and all types for advanced. It distinguishes the tool from siblings like DATA_getSerpHtmlDump or DATA_getSerpTasks by mentioning task creation and polling.
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?
While it describes the result types, it does not provide explicit guidance on when to use this tool versus other SERP-related siblings (e.g., getSerpHtmlDump, getSerpTaskResults). The usage context is implied but not contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getSerpTaskAdvancedResultsGet SERP task status and advanced resultsA
Data Tool: Retrieves the status or advanced results of a specific SERP task. Note that SERP tasks usually take 60 seconds to finish. If the task is still running, returns {"status": "processing"}. If complete, returns the full JSON results including "items". Returns ALL SERP item types (Maps, Reviews, AI Overview, etc.). Costs 10 credits for the 1st call.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The unique ID of the query task from the Add SERP tasks method. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers key behaviors: status vs. full JSON return, cost of 10 credits for first call, and inclusion of all SERP item types. Lacks error handling details but adequate for a simple poll 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?
Two sentences, front-loaded with purpose, then timing, status, content, and cost. Every sentence adds value with no redundancy.
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 simple 1-param tool with no output schema, the description covers return types, timing, cost, and scope. Minor gap: no mention of error responses (e.g., invalid task_id), but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for task_id. The description does not add significant meaning beyond what the schema 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 status or advanced results of a specific SERP task, returning status or full JSON. It also specifies it returns all SERP item types, distinguishing it from siblings like DATA_getSerpTaskResults.
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?
Provides context that tasks take ~60 seconds and returns processing status, but does not explicitly state when not to use (e.g., for non-advanced results) or compare to alternatives like DATA_getSerpTaskResults or DATA_getSerpHtmlDump.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getSerpTaskResultsGet SERP task status and resultsA
Data Tool: Retrieves the status or standard results of a specific SERP task. Note that SERP tasks usually take 60 seconds to finish. If the task is still running, returns {"status": "processing"}. If complete, returns the full JSON results including "items". This endpoint provides results for the following SERP item types only: organic, ads, and featured_snippet. For AI Overview, Maps, Reviews, Sitelinks, Videos, Images, Top Ads, etc., use 'getSerpTaskAdvancedResults'.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The unique ID of the query task from the Add SERP tasks method. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses return behavior (processing vs. full results), typical timing, and item type scope. Lacks details on error handling or authentication, but adequate for simple 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?
Two-sentence description: first states purpose, second explains behavior and alternatives. Front-loaded and 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?
Complete for a simple tool with one param and no output schema. Covers what to expect, timing, limitations, and alternative.
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?
Single parameter task_id is fully described in schema (100% coverage). Description adds no extra parameter info; 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 explicitly states it retrieves status/standard results of a SERP task and distinguishes from siblings by specifying limited item types and naming the alternative tool for other types.
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?
Provides clear when-to-use (for standard SERP results), when-not (for other item types), and explicitly names the alternative 'getSerpTaskAdvancedResults'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getSerpTasksList SERP tasksA
Data Tool: Retrieves a list of all SERP tasks added to the queue in the last 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral details such as whether the tool is read-only, what statuses are included, pagination, or rate limits, leaving agents with 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?
Single sentence, no redundancy, directly conveys the purpose; front-loaded with 'Data Tool' prefix is unnecessary but not detrimental.
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 simple parameterless tool with no output schema, the description is minimally complete, covering the basic function, though it could hint at related tools for clarity.
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?
Zero parameters mean schema coverage is 100%; per guidelines, baseline 4 applies, and the description adds no further parameter information (none needed).
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 list of all SERP tasks added in the last 24 hours, with a specific verb and scope, distinguishing it from sibling tools like DATA_getSerpResults.
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 explicit guidance on when to use or not use this tool versus alternatives, but the implied context is listing recent tasks; lacks direction for users needing task results or history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getSimilarKeywordsSimilar KeywordsC
Data Tool: Retrieves a list of keywords similar to the seed keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | The field by which the returned list of keywords should be sorted. | |
| limit | No | Maximum number of keywords to return per page. | |
| offset | No | Starting offset for pagination. | |
| source | Yes | Alpha-2 country code of the regional keyword database. | |
| keyword | Yes | The seed keyword for which to find similar keywords. | |
| sort_order | No | The order of sorting for the sort field. | desc |
| filter_cpc_to | No | Maximum Cost Per Click. | |
| history_trend | No | Whether to include historical search volume trend data in the response. | |
| filter_intents | No | Comma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local. | |
| filter_cpc_from | No | Minimum Cost Per Click. | |
| filter_volume_to | No | Maximum monthly search volume. | |
| filter_volume_from | No | Minimum monthly search volume. | |
| filter_difficulty_to | No | Maximum keyword difficulty score (0-100). | |
| filter_serp_features | No | Comma-separated list of SERP features to filter by. | |
| filter_competition_to | No | Maximum competition score (0.0-1.0). | |
| filter_difficulty_from | No | Minimum keyword difficulty score (0-100). | |
| filter_competition_from | No | Minimum competition score (0.0-1.0). | |
| filter_keyword_count_to | No | Maximum number of words in the keyword. | |
| filter_keyword_count_from | No | Minimum number of words in the keyword. | |
| filter_characters_count_to | No | Maximum character length of the keyword. | |
| filter_characters_count_from | No | Minimum character length of the keyword. | |
| filter_multi_keyword_excluded | No | Comma-separated list of words that must NOT appear in the keyword. | |
| filter_multi_keyword_included | No | Comma-separated list of words that MUST appear in the keyword (AND logic). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description should disclose behavioral traits; it only states basic purpose, omitting pagination, return format, or mutation status.
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 is concise but too brief for a tool with 23 parameters; could benefit from structured details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (many parameters, no output schema), the description lacks information about response format, pagination behavior, or 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?
Schema coverage is 100%, so description adds no additional meaning beyond what's already in the parameter descriptions.
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?
Description clearly states it retrieves similar keywords from a seed keyword, but does not differentiate from sibling tools like getRelatedKeywords or getLongTailKeywords.
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; lacks context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_getTotalRefDomainsCountGet Total Referring Domains CountC
Data Tool: Returns the number of unique domains linking to a target. Supports batch requests.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or URL. Can be a single string or an array. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Only mentions batch support; does not disclose read-only nature, rate limits, authentication needs, or any side effects.
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 concise sentences with no fluff. Could be slightly more structured but effective for short description.
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 output schema, description lacks explanation of return values or behavior for edge cases. Schema covers parameters well, but overall completeness is adequate but not rich.
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 baseline is 3. Description adds 'Supports batch requests' which hints at array targets described in schema, but does not add significant new meaning beyond 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?
Description clearly states verb 'Returns' and resource 'number of unique domains linking to a target', and mentions batch support. However, it does not explicitly distinguish from sibling tools like DATA_getBacklinksRefDomains, which may have a similar purpose.
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. No exclusions or context provided beyond the basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_listAuditsList AuditsB
Data Tool: Retrieves a list of all website audits associated with your account, providing key details and statistics for each.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of audits to return in the list. | |
| offset | No | Starting position (offset) for the list of audits. | |
| search | No | Filters the list by a search term matching the audit’s title or URL. | |
| date_end | No | End date for filtering audits (YYYY-MM-DD). | |
| date_start | No | Start date for filtering audits (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states it provides 'key details and statistics' without clarifying if it's read-only, pagination behavior, or rate limits. For a read operation, agents benefit from explicit safety hints.
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 conveying purpose efficiently. No redundant words, though could be slightly more structured. Still earns a 4 for minimal fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should clarify return format. Only vaguely mentions 'key details and statistics'. With 5 optional parameters, lacks completeness on pagination, defaults, and response structure.
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 each parameter having a description. The description adds 'key details and statistics' but does not enhance parameter meaning beyond 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 clearly states the verb 'retrieves a list', resource 'website audits', and scope 'all associated with your account'. It distinguishes from sibling tools like create, delete, or get single audit by specifying listing all audits.
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 like getAuditReport or getAuditHistory. Implied usage for listing, but no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_listNewLostBacklinksList New and Lost BacklinksB
Data Tool: Returns a list of backlinks (newly) found or lost within the specified date range for the specified target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Scope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host. | host |
| limit | No | Max results (1-10,000). Default: 100. | |
| output | No | Response format. Default: json. | json |
| target | Yes | Target to analyze: root domain, host (subdomain), or URL. | |
| date_to | No | End date in YYYY-MM-DD format (inclusive). Default: today. | |
| dofollow | No | Attribute: 'dofollow', 'nofollow', 'undefined', or empty (all). | |
| order_by | No | Sort by: 'new_lost_date' (recency), 'domain_inlink_rank', or 'inlink_rank'. | new_lost_date |
| url_from | No | Filter by referring page URL (domain/subdomain). | |
| date_from | No | Start date in YYYY-MM-DD format (inclusive). Default: yesterday. | |
| link_type | No | Type: 'href' (standard), 'redirect', or empty (all). | |
| anchor_type | No | Anchor type: 'text', 'image', 'undefined', or empty (all). | |
| new_lost_type | No | Filter: 'new', 'lost', or empty (both). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It states the tool returns a list, but lacks details on pagination, rate limits, authentication requirements, or what happens if no results. The behavior beyond basic functionality is opaque.
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, which is concise but arguably under-specified for a tool with 12 parameters. It is front-loaded with 'Data Tool:' which is redundant. It earns a 3 for being efficient but lacking necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, no output schema), the description is insufficient. It does not explain the meaning of 'new or lost' relative to a baseline, nor does it mention prerequisites such as the target needing prior analysis. The description is not complete enough 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for each parameter. It does not clarify how parameters interact or provide additional context.
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 it returns a list of backlinks that are new or lost within a date range for a target. It distinguishes itself from sibling tools like DATA_getAllBacklinks (all backlinks) and DATA_getNewLostBacklinksCount (count only) by specifying 'list of backlinks' and 'new or lost'.
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 obtaining new or lost backlinks but does not provide explicit guidance on when to use this tool versus alternatives (e.g., count tool, referring domains tool). No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_listNewLostReferringDomainsList New and Lost Referring DomainsB
Data Tool: Returns a list of referring domains, at least one backlink from which was (newly) found or lost in the specified date range for the specified target.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | host | |
| limit | No | ||
| target | Yes | Aim of the request: root domain, host, or URL. | |
| date_to | No | End date in YYYY-MM-DD format. | |
| order_by | No | new_lost_date | |
| date_from | No | Start date in YYYY-MM-DD format. | |
| new_lost_type | No | Indicates whether the refdomain is new or lost. Empty returns both. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral disclosure. It only states the basic function, missing details on pagination, sorting, limit behavior, or whether new_lost_type filters. The description does not add significant behavioral context beyond 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 sentence that front-loads 'Data Tool:' and states the core function concisely. It is efficient but could be structured with separate usage hints for better clarity.
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 7 parameters, no output schema, and no annotations, the description is incomplete. It lacks details on ordering, filtering, limit behavior, and return format, which are important for an agent to use the tool correctly.
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 57% (4/7 parameters have descriptions), but the tool description does not elaborate on any parameter meanings beyond what the schema provides. For example, it doesn't explain mode or order_by options. The description adds minimal semantic value.
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 returns a list of referring domains with a specific condition (newly found or lost) in a date range. It distinguishes from siblings like DATA_getNewLostRefDomainsCount and DATA_listNewLostBacklinks by specifying 'list' and 'referring domains'.
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 explicit guidance on when to use this tool versus alternatives like count or backlinks tools. Usage is implied by the description of returning a list, but no when-not or alternative mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_recheckAuditRecheck AuditA
Data Tool: Launches a new crawl of a previously completed audit, using the same settings.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type of the audit to recheck (Standard or Advanced). | |
| audit_id | Yes | Unique identifier of the audit to recheck. |
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 mentions launching a new crawl, implying a mutation, but does not disclose potential side effects like data overwriting or the impact on previous audit results. The behavior is somewhat transparent but could benefit from more detail.
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, clear sentence that immediately identifies the tool as a data tool and states its core function. No 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?
Given the tool has two simple parameters and no output schema, the description is fairly complete. It could mention what happens to the existing audit data, but the core action is clear. The context of sibling tools is not conflicting.
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 schema already documents parameters. The description adds no additional meaning beyond what the schema provides, stating only that the tool uses the same settings without elaborating on parameter roles.
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 it launches a new crawl on a previously completed audit using the same settings. It distinguishes from sibling tools like DATA_createAdvancedAudit and DATA_createStandardAudit by focusing on rechecking existing audits.
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 re-running an audit with the same parameters, but does not explicitly state when not to use it or mention alternative tools. However, the context of sibling create tools makes it reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DATA_updateAuditTitleUpdate Audit TitleC
Data Tool: Changes the title of an existing website audit report.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | New title for the audit report. | |
| audit_id | Yes | Unique identifier of the audit to update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that it changes the title, but does not mention side effects (e.g., does it overwrite the previous title permanently? Is there a revision history?), idempotency, or what happens if the audit does not exist.
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 redundant 'Data Tool:' prefix, making it efficient but lacking structure. It could be improved by removing the prefix and adding bullet points or formatting for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is incomplete. It does not explain the return value, validation rules (e.g., title length beyond schema maxLength), or error conditions, leaving the agent with significant gaps for correct 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 coverage is 100% with descriptions for both parameters, so the description adds little beyond what the schema already provides. It offers no additional formatting, constraints, or examples, resulting in a 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 the verb 'changes' and the resource 'title of an existing website audit report'. It is straightforward and distinguishes the tool from sibling read and delete tools, though it does not explicitly highlight that it updates an existing audit rather than creates a new one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when an audit must exist or what prerequisites are needed. The description lacks any context about appropriate usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_addCompetitorAdd CompetitorA
Project Tool: Requires a project ID (site_id). Add a competitor website to a project for position tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Competitor website URL | |
| name | No | Competitor website name (if not specified, the URL will be used) | |
| site_id | Yes | Unique project ID | |
| subdomain_match | No | Take subdomains into account (1 – yes , 0 – no) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only says 'Add' without details on mutation effects, idempotency, rate limits, or error conditions. This leaves significant gaps for an agent.
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 concise sentences with front-loaded key information. No redundant 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?
With 4 parameters and no output schema, the description is brief. It lacks details on return values, error handling, or side effects. Adequate for a simple add operation but could be more 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 schema already explains all parameters. The description adds minimal value beyond context (site_id requirement, purpose). 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 adds a competitor website to a project for position tracking. It identifies the required resource (project ID) and differentiates from siblings like PROJECT_listCompetitors and PROJECT_deleteCompetitor.
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 context on when to use (adding a competitor for position tracking) and mentions the required site_id. However, it does not explicitly state when not to use or compare with alternatives like PROJECT_addKeywords.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_addKeywordsAdd KeywordsC
Project Tool: Requires a project ID. Add new keywords to a project.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID | |
| keywords | Yes | List of keywords to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'Add new keywords' with no details on mutability, idempotency, permission requirements, error handling, or effects on existing data. The mention of 'new' implies no overwrite, but this is not explicit.
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?
Only two sentences, no redundancy beyond the first sentence which repeats the requirement already in schema. Could be shorter, but it is fairly concise and front-loaded with purpose.
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 output schema and no annotations, the description lacks completeness. It does not explain return format, potential errors, or behavior under edge cases (e.g., duplicate keywords). For a write tool with two required parameters, more context is needed for reliable agent 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 schema covers 100% of parameters with descriptions. The description adds no extra meaning beyond the schema, and there is a minor mismatch: description says 'project ID' but schema parameter is 'site_id'. This could cause confusion but the baseline of 3 is appropriate since schema already defines 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 clearly states the verb ('Add') and resource ('keywords to a project'), matching the title and name. However, it lacks differentiation from sibling tools like PROJECT_deleteKeywords or PROJECT_addCompetitor, which would help an agent distinguish similar operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites beyond requiring a project ID (which is already in the schema). The description does not mention when not to use it, such as if keywords already exist or if the project is not accessible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_addSearchEngineAdd Search Engine to ProjectC
Project Tool: Add a new search engine to a project.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | Company phone number for Google Maps SERPs | |
| site_id | Yes | Unique website ID | |
| lang_code | No | Language code | |
| merge_map | No | Take Google Maps SERPs into account. 0 – don’t take into account, 1 – take into account, 2 – take into account and display separately. | |
| region_id | No | Region ID (refer to getSerpLocations) | |
| region_name | No | Geographical name (region / city) in English. Only for Google | |
| paid_results | No | Track rankings in Google Ads (1 – yes, 0 – no) | |
| business_name | No | Business name for Google Maps SERPs | |
| featured_snippet | No | Take Featured snippet into account (1 – take into account, 0 – don’t take into account) | |
| search_engine_id | Yes | Search engine ID (refer to getAvailableSearchEngines) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose any behavioral traits (e.g., whether it overwrites existing search engines, required permissions, side effects). The agent has no clue about the tool's behavior beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, omitting critical information. While brevity can be good, here it under-specifies the tool's purpose and usage, making it inefficient for decision-making.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters and no output schema or annotations, the description is severely incomplete. It does not explain the process, return values, or interaction with related 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 baseline is 3. The description adds no additional meaning to parameters beyond what the schema already provides.
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 'Add' and resource 'search engine' targeted at 'project'. However, it does not differentiate from sibling tools like PROJECT_updateSearchEngine or PROJECT_deleteSearchEngine, which share similar context.
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 PROJECT_updateSearchEngine or PROJECT_deleteSearchEngine. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_createKeywordGroupCreate Keyword GroupC
Project Tool: Requires a project ID. Add a group for project keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the project keyword group to be added | |
| site_id | Yes | ID of the project to which a keyword group will be added |
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. It only states it adds a group, but does not disclose whether the operation is destructive, whether duplicates are allowed, 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 very concise with two sentences. It front-loads the requirement and purpose, with no unnecessary 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?
Given that there is no output schema and the tool is a creation operation, the description lacks details about success/error responses, side effects, or relationships to other tools like PROJECT_addKeywords.
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% and both parameters have clear descriptions in the schema. The tool description does not add any additional meaning beyond what the schema already provides.
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 is used to 'add a group for project keywords', which matches the name. It distinguishes from siblings like PROJECT_listKeywordGroups and PROJECT_updateKeywordGroup by specifying the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Requires a project ID', which is a prerequisite, but does not provide any guidance on when to use this tool versus alternatives, nor does it specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_createProjectCreate ProjectC
Project Tool: Requires a project ID. Add a new project to the user account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL | |
| depth | No | Ranking position collection depth (100, 200), 100 by default | |
| title | Yes | Project name | |
| check_day | No | Day of week (1-7) for weekly checks, or day of month (1-31) for monthly checks | |
| exact_url | No | Exact URL? (0 or 1), 0 by default | |
| is_active | No | Project status 1 – active, 0 – delayed | |
| check_freq | No | Position check frequency ('check_daily','check_1in3','check_weekly', 'check_monthly', 'manual'), check_daily set by default | |
| auto_reports | No | Weekly report? (0 or 1), 1 by default | |
| disable_audit | No | 0 by default, 1 if you want to skip website audit | |
| site_group_id | No | ID of the group where a new project will be added | |
| subdomain_match | No | Take subdomains in SERPs into account? (0 or 1), 0 by default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'adds a new project,' implying a create operation, but does not mention side effects (e.g., does it overwrite existing projects?), error conditions, or permissions. Significant gaps remain.
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 short but includes an unnecessary and inaccurate first sentence ('Requires a project ID') that wastes space and misleads. The second sentence is concise but the overall structure is not efficient due to the misleading statement.
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 11 parameters with many enums and no output schema, yet the description fails to explain return values, side effects, or constraints like grouping (site_group_id). Given the complexity, the description is insufficiently 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 all parameters are documented in the schema. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate as the description does not detract but adds no value.
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 'Add a new project to the user account,' which clearly indicates the tool's purpose. However, the first sentence 'Project Tool: Requires a project ID' is confusing and potentially misleading because the input schema does not require a project ID. This detracts from clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like PROJECT_updateProject or PROJECT_listProjects. The description lacks context about prerequisites or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_createProjectGroupCreate Project GroupC
Project Tool: Requires a project ID. Add a new project group to a user account.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the project group to be added |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must bear full responsibility. It claims 'Requires a project ID' but the schema lacks such a parameter, indicating a misleading statement. No disclosure of side effects, permissions, or typical behavior beyond the basic action.
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 short (two sentences) but contains filler ('Project Tool:') and a misleading claim. It could be more direct and accurate, though not overly verbose.
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, no annotations, and a simple tool, the description should explain what a project group is, the relationship to projects, and return value. It fails to do so, and the contradiction between 'requires project ID' and the schema leaves agents uncertain.
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% (one parameter with description). The description only repeats 'name of the project group' without adding formatting, constraints, or examples. Baseline score applies as description adds no extra value.
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 'Add a new project group to a user account', which clearly identifies the action and resource. However, it adds 'Requires a project ID' which is not reflected in the input schema (only 'name' is required), creating confusion. This inconsistency reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like PROJECT_deleteProjectGroup or PROJECT_updateProjectGroup. The description does not mention context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_deleteCompetitorDelete CompetitorC
Project Tool: Requires a competitor ID. Remove a competitor website from a user project.
| Name | Required | Description | Default |
|---|---|---|---|
| competitor_id | Yes | Incorrect competitor id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must cover behavioral aspects. It only states the action without mentioning destructiveness, reversibility, or required permissions. The description is insufficient for an AI agent to understand the implications of invoking this 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 sentence, but includes the redundant 'Project Tool:' prefix. It is concise but not optimally structured; it could be more direct.
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, output schema, or complex parameters, the description is too sparse. It does not mention return values, success/failure indications, or side effects. For a delete operation, more context is needed to properly guide an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The main description says 'Requires a competitor ID', but the schema's parameter description is 'Incorrect competitor id', which is confusing and likely an error. This undermines clarity. Although schema coverage is 100%, the description adds minimal meaningful value 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 clearly states the action (remove) and the object (competitor website from user project). It is specific enough to distinguish from sibling tools like addCompetitor or getCompetitorPositions, but could be more explicit about the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The only hint is 'Requires a competitor ID', but there is no explanation of prerequisites or when deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_deleteKeywordGroupDelete Keyword GroupC
Project Tool: Requires a project ID. Delete a project keyword group.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ID of the keyword group to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. 'Delete' implies mutation and potential destruction, but the description does not disclose whether the operation is irreversible, if it requires specific permissions, or if it affects related data like keywords within the group.
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 very short, but includes the redundant phrase 'Project Tool:' which is unnecessary given the title and tool name. The sentence is otherwise clear but could be more concise.
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 destructive operation with no output schema and no annotations, the description should at least mention irreversibility or success criteria. The current description is minimal and does not provide enough context for an agent to understand the full implications.
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 has 100% coverage for the group_id parameter, so the description adds no new information about the parameter. The mention of 'Requires a project ID' is not relevant to the actual parameter and could be misleading.
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 'Delete a project keyword group' which is clear about the action and resource. However, it also says 'Requires a project ID,' which is misleading because the schema only requires a group_id, not a project ID. This reduces clarity.
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 sibling tools like PROJECT_deleteCompetitor or PROJECT_moveKeywordsToGroup. There is no mention of prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_deleteKeywordsDelete KeywordsC
Project Tool: Requires a project ID. Delete keywords from a project.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID | |
| keywords_ids | Yes | IDs of keywords to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears the full burden of behavioral disclosure. It fails to disclose whether the deletion is irreversible, whether it affects other resources, or any required permissions. The phrase 'Delete keywords from a project' implies mutation but offers no warnings or side-effect details. This is a severe gap for a destructive 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 very concise at 12 words across two sentences. It is front-loaded with 'Project Tool:' which is somewhat redundant given the namespace, but overall it is efficient. Every part serves a purpose, though it could be slightly expanded for clarity.
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 output schema and no annotations, the description is incomplete. It lacks details on return behavior (e.g., success message, count of deleted items), irreversibility, batch processing limits, and the meaning of 'project ID' versus 'site_id'. For a destructive tool, more context is needed for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds minimal value: it mentions a 'project ID' but the parameter is 'site_id' (integer), creating confusion. It does not explain the relationship between 'project ID' and 'site_id', nor does it clarify that 'keywords_ids' are the IDs of keywords to delete (already covered by 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 clearly states 'Delete keywords from a project,' which matches the tool's name and title. The verb 'Delete' is specific and distinguishes it from sibling tools like PROJECT_addKeywords or PROJECT_listKeywords. However, the mention of 'project ID' is slightly inconsistent with the parameter 'site_id' in the input schema, causing minor ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as PROJECT_deleteKeywordGroup or PROJECT_deleteCompetitor. There is no mention of prerequisites (e.g., the project must exist, keywords must be present) or when not to use it. This lack of context makes it harder for an AI agent to decide appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_deleteProjectDelete ProjectC
Project Tool: Requires a project ID. Delete a project from the user account.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique site ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only says 'Delete a project' but omits critical details: whether deletion is permanent, what related data (e.g., keywords, competitors) is affected, or if any permissions are needed. This is inadequate for a destructive 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 extremely concise with one short sentence, front-loading the core action. Every word is necessary, and there is no redundancy.
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 simple delete tool with one parameter and no output schema, the description is still incomplete. It lacks information about return values, irreversibility, and side effects. Given the absence of annotations, more context is needed for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single required parameter 'site_id', and the schema already describes it as 'Unique site ID to delete'. The description adds 'Requires a project ID' but doesn't provide additional meaning beyond the schema. Baseline score 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 name and description clearly state the tool deletes a project. It distinguishes from sibling delete tools like PROJECT_deleteKeywordGroup by the resource type. However, it doesn't explicitly differentiate from other project-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (requires a project ID) but provides no guidance on when to use this tool versus alternatives like PROJECT_deleteProjectGroup or when not to use it. No exclusions or contextual hints are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_deleteProjectGroupDelete Project GroupC
Project Tool: Requires a project ID. Delete a project group.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ID of the project group to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose whether deletion is permanent, reversible, or has dependencies (e.g., if the group contains projects). Lacks critical behavioral context for a destructive 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 short but includes an inaccurate statement about requiring a project ID. It could be more concise and accurate, e.g., 'Delete a project group by group_id.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description should provide more context such as return value, error handling, or prerequisites. It feels incomplete for a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with group_id clearly described. The description adds no extra meaning beyond the schema, 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 states 'Delete a project group,' which clearly indicates the verb and resource. However, the claim 'Requires a project ID' is misleading because the input schema only includes group_id, not project_id, causing confusion.
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 sibling tools like PROJECT_deleteKeywordGroup or PROJECT_deleteSearchEngine. There is no mention of prerequisites or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_deleteSearchEngineDelete Search EngineB
Project Tool: Delete a search engine from a project.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID | |
| site_engine_id | Yes | Unique search engine ID within the project to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any side effects, permissions needed, or whether the deletion is irreversible. It only states the action without 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, direct sentence with no wasted words. It is appropriately concise, though it could be slightly more informative.
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 delete operation with no output schema, the description should mention return values or success indicators. It lacks completeness in guiding the agent on expected outcomes.
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 clear descriptions for both parameters. The tool description adds no additional meaning beyond the schema, so 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 'Delete' and the resource 'search engine from a project', distinguishing it from sibling tools like PROJECT_addSearchEngine or PROJECT_updateSearchEngine.
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, prerequisites, or alternatives. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getAdsStatsGet Ads StatsB
Project Tool: Requires a project ID. Get total number of top and bottom advertisements by day.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | End date (YYYY-MM-DD) | |
| site_id | Yes | Unique website ID | |
| date_from | No | Start date (YYYY-MM-DD) | |
| keywords_ids | No | Filter by keyword IDs | |
| site_engine_ids | No | Filter by search engine IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It merely states the output (total number of top/bottom ads by day) but omits critical details such as authentication needs, rate limits, read-only nature, or return format. The agent cannot infer safety or side effects.
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, consisting of two short sentences with no unnecessary words. It front-loads the project ID requirement and then states the purpose. However, it could be more structured by briefly listing the core parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and no output schema, the description is too brief. It fails to explain what 'top' and 'bottom' advertisements mean, how date filtering works, or the effect of keyword/site engine filters. The agent has insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no parameter-specific details beyond what the schema already provides. The relation between 'project ID' and 'site_id' is unclear, and no additional constraints or formats are explained.
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 specifies the tool's action: it retrieves the total number of top and bottom advertisements aggregated by day. The verb 'Get' and resource 'ads stats' are explicit, and the scope ('by day') distinguishes it from other PROJECT_ tools like 'getKeywordStats' or 'getSummary'.
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 states a requirement for a project ID but uses 'site_id' in the schema, creating inconsistency. It provides no guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites beyond the vague project ID requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getAllCompetitorsMetricsGet All Competitors MetricsB
Project Tool: Requires a project ID (site_id). Get data on the sites that were ranked in the TOP 10 for each of the tracked queries. The history is stored for 14 days.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date when the list of sites from the TOP 10 was received (yyyy-mm-dd) | |
| tags | No | Array of tags | |
| site_id | Yes | Unique project ID | |
| group_id | No | Keyword group ID. If not specified, data for all keyword groups will be returned. | |
| site_engine_id | Yes | The ID of the search_engine specified in the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description adds some behavioral context by stating history is stored for 14 days, but does not disclose read-only nature, auth requirements, or other side effects.
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 front-loaded prerequisite and clear action. No 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?
No output schema exists, but description fails to describe what data is returned (metrics), pagination, or grouping. Leaves agent guessing about output format.
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 schema already fully describes parameters. The description adds minimal value by only mentioning site_id, thus 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 tool retrieves data on sites ranked in TOP 10 for tracked queries, but does not explicitly differentiate from similar sibling tools like PROJECT_getCompetitorTop10.
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 only notes a prerequisite (requires site_id) but provides no guidance on when to use this tool versus alternatives, nor any when-not-to-use or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getAvailableRegionsGet Available RegionsA
Project Tool: Get the list of all available regions supported by Google search engine.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 idempotency, data freshness, or side effects. For a read-only tool, it should at least hint at stability or caching 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 no extraneous words. It is front-loaded and efficiently conveys the tool's purpose.
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 parameters and no output schema, the description is sufficient. It lacks details about the output format or whether the list is comprehensive, but for its simplicity, it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description adds no parameter information, which is acceptable as there are none to describe. Baseline for 0 parameters is 4.
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 'Get' and the resource 'available regions' supported by 'Google search engine'. It distinguishes from sibling tool PROJECT_getAvailableSearchEngines, which retrieves search engines rather than regions.
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 when a list of regions is needed, but provides no guidance on when not to use it or alternatives. For a simple listing tool, this is adequate but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getAvailableSearchEnginesGet Available Search EnginesB
Project Tool: Get the list of all available search engines supported by the system.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits such as whether it's read-only, authentication needs, or rate limits. It only states it gets a list, lacking transparency about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. Every word is relevant and 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 the tool's simplicity (0 params, no output schema), the description is minimal but fails to describe the return format or structure. An agent would guess the output is a list, but specifics are missing.
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?
No parameters exist, so baseline 4 applies. The description superficially adds no parameter info, but none is needed since schema coverage is 100%.
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 it lists all supported search engines, but does not differentiate from the sibling PROJECT_getSearchEngines, which may cause confusion. The name includes 'Available' but the description could be more explicit about its global scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like PROJECT_getSearchEngines. No context about prerequisites or typical use cases is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getCompetitorPositionsGet Competitor PositionsC
Project Tool: Requires a competitor ID. Get statistics on the positions of competitor keywords that were added to the project.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | Time period end date (yyyy-mm-dd) | |
| date_from | No | Time period start date (yyyy-mm-dd) | |
| competitor_id | Yes | Competitor ID | |
| site_engine_id | No | Search engine ID. If not specified, data for all search engines will be returned. | |
| with_serp_features | No | Google SERP features found in keyword search results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must inform about behavioral traits. It only says 'Get statistics on the positions', omitting details like whether data is aggregated, how filtering works (date, engine), mutability (likely read-only), or response structure. The lack of output schema exacerbates this gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) and includes a prefix for context. However, the first sentence ('Project Tool: Requires a competitor ID') is redundant with the required parameter in the schema, making it slightly less concise.
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 5 parameters (including optional filters like date range and SERP features) and no output schema, the description is too sparse. It does not explain what 'statistics' are returned or how filtering works, leaving the agent with significant uncertainty for 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 coverage is 100% with descriptions for all 5 parameters. The description adds minor context ('competitor keywords that were added to the project') not fully captured in schema descriptions, raising the value slightly. 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 it retrieves statistics on competitor keyword positions within a project, which distinguishes it from siblings like PROJECT_getCompetitorTop10 (likely top positions only) and PROJECT_getAllCompetitorsMetrics (metrics for all competitors). However, it could more explicitly define 'statistics' and the scope (e.g., date range, search engine).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires a competitor ID') but provides no guidance on when to use this tool versus alternatives like PROJECT_getCompetitorTop10 or PROJECT_getCompetitorTop100. There is no explicit 'when not to use' or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getCompetitorTop10Get Competitor Top 10C
Project Tool: Requires a project ID (site_id). Get a list of the TOP 10 results for the keywords that are tracked in a project.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date of getting a list of sites from the TOP 10 (yyyy-mm-dd) | |
| site_id | Yes | Unique project ID | |
| keyword_id | Yes | The ID of the query added to the project | |
| site_engine_id | Yes | The ID of the search_engine specified in the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states the basic operation. It does not disclose data freshness, pagination, rate limits, or read-only nature, leaving behavioral traits opaque.
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 very short (one sentence) and includes a key requirement. It is efficient but could integrate more detail without sacrificing 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?
No output schema is provided, and the description does not clarify what 'TOP 10 results' entails (e.g., positions, domains). For a tool with four required parameters, the description is minimally adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. The description adds no extra meaning beyond the schema, such as explaining 'keyword_id' as a query ID. 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 it returns a list of TOP 10 results for tracked keywords in a project, with a specific verb and resource. It distinguishes from siblings like PROJECT_getCompetitorTop100 and PROJECT_getCompetitorPositions, but could be more precise about the nature of the results.
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 PROJECT_getCompetitorTop100 or PROJECT_getCompetitorPositions. The description only notes that it is a project tool requiring a site_id, missing explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getCompetitorTop100Get Competitor Top 100C
Project Tool: Requires a project ID (site_id). Get a list of the top 100 results for the keywords that are tracked in a project.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Maximum position (0..100) | |
| date | Yes | Date (yyyy-mm-dd) | |
| site_id | Yes | Unique project ID | |
| keyword_id | Yes | The ID of the keyword added to the project | |
| site_engine_id | Yes | Search engine ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavior. It only states the basic function without disclosing traits like read-only nature, pagination, error conditions, or performance. The description is insufficient for a no-annotation 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 sentence but includes a redundant note about requiring a project ID (already in schema). It is front-loaded with 'Project Tool' but could be more concise. No severe bloat, but room for improvement.
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 output schema, the description should explain return format or pagination. It does not. The tool retrieves results for multiple keywords but the description is vague about structure. Incomplete for agent to infer full behavior.
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. However, the description introduces ambiguity by suggesting a fixed 'top 100' while the 'top' parameter allows configuration (0..100). It adds no extra meaning beyond the schema and slightly misleads about the default behavior.
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 top 100 results for tracked keywords in a project, with a specific verb 'Get' and resource 'list of top 100 results'. It distinguishes from sibling PROJECT_getCompetitorTop10 by specifying the count (100 vs 10).
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 only mentions a prerequisite (requires project ID) but provides no guidance on when to use this tool versus alternatives like PROJECT_getCompetitorTop10 or other SERP tools. No exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getHistoricalDatesGet Historical DatesB
Project Tool: Returns standard comparison dates (e.g., yesterday, last month, etc.) available for reporting.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID | |
| site_engine_id | Yes | Search engine ID filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and the description lacks behavioral details such as whether it is read-only, any authentication needs, or what happens on errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose, but could benefit from more structured information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description does not explain return format or example values, leaving the agent uncertain about what to expect.
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 covers parameters with descriptions, and the description adds no additional meaning beyond that. 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 clearly states it returns standard comparison dates like yesterday and last month, which is specific and distinguishes it from sibling tools that return other types of data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any mention of prerequisites or excluded cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getKeywordStatsGet Keyword StatsC
Project Tool: Requires a project ID. Get keyword ranking statistics for a specified time period.
| Name | Required | Description | Default |
|---|---|---|---|
| in_top | No | Filter by top position (e.g. 10 for TOP 10) | |
| date_to | No | End date (YYYY-MM-DD) | |
| site_id | Yes | Unique website ID | |
| date_from | No | Start date (YYYY-MM-DD) | |
| site_engine_id | No | Search engine ID filter | |
| with_landing_pages | No | Include URL info (1) | |
| with_serp_features | No | Include SERP features (1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description bears full burden of behavioral disclosure. It only implies read-only operation ('Get') but gives no details on safety, authentication needs, rate limits, or side effects.
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 concise sentences with front-loaded prerequisite and clear action. No fluff or redundancy.
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 7 parameters and no output schema, description omits return values, aggregation details, pagination, or what 'keyword ranking statistics' includes. Incomplete 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?
Schema has 100% parameter description coverage, so the description adds minimal new meaning. 'Specified time period' loosely aligns with date params but doesn't clarify format or usage beyond 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?
Description clearly states verb (Get) and resource (keyword ranking statistics) and specifies time period. However, it doesn't differentiate from many sibling tools that also retrieve data, limiting distinctiveness.
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, no mention of prerequisites beyond 'Requires a project ID' (which is not in params), and no when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getSearchEnginesGet Search EnginesC
Project Tool: Requires a project ID. Get a list of search engines employed by a project.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details beyond stating it is a 'get' operation. Without annotations, it does not disclose read-only nature, authorization needs, error handling, or the relationship between project ID and site_id. The agent is left to infer safety and side effects.
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 very concise at two sentences, with key information front-loaded ('Project Tool: Requires a project ID.'). Every word serves a purpose, though the project ID reference may be slightly misleading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter, no output schema, and no annotations, the description is incomplete. It fails to explain the return format, clarify the project vs site_id discrepancy, or provide sufficient context for proper invocation. The agent may misinterpret the required input.
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% and the parameter description 'Unique website ID' is provided. The description adds a redundant statement about requiring a project ID but does not clarify the mismatch with site_id. Baseline score of 3 applies as the description adds minimal value over 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 clearly states it retrieves a list of search engines employed by a project, using a specific verb and resource. However, there is a slight inconsistency: the description mentions 'requires a project ID' but the input schema parameter is named 'site_id', not 'project_id', which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like PROJECT_addSearchEngine or DATA_getSearchEngines. There is no explicit context for when-not-to-use or mention of prerequisites beyond the implied site_id requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_getSummaryGet SummaryB
Project Tool: Requires a project ID. Get a project's summary statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It does not mention whether the operation is read-only, any required permissions, error handling (e.g., invalid project ID), or if the returned data is cached. The description assumes read-only but is not explicit.
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 with two sentences, each adding value: it identifies the tool's domain and prerequisite, and states its primary function. No filler or redundancy.
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 output schema and no annotations, the description is too minimal. It does not explain what 'summary statistics' entail (e.g., metrics, time range), which leaves an agent uncertain about the tool's utility. Additional behavioral context is needed for a complete understanding.
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% for the single parameter, and the schema already describes site_id as 'Unique website ID'. The description adds no further meaning beyond restating that a project ID is required, which is already implied by the parameter name.
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 it retrieves summary statistics for a project, specifying it's a 'Project Tool' and requires a project ID. However, it does not distinguish itself from other PROJECT_get* siblings beyond the 'summary' focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite of a project ID but provides no guidance on when to use this tool versus other project-related tools like getAdsStats or getKeywordStats. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_listCompetitorsList CompetitorsA
Project Tool: Requires a project ID (site_id). Get a list of all competitors added to the project together with statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique project ID |
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. It indicates the tool returns a list with statistics but does not explicitly state it is read-only or disclose any side effects.
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 front-loaded context ('Project Tool: Requires a project ID (site_id).') and no extraneous 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?
For a simple list tool with one required parameter and no output schema, the description covers essentials. It could mention whether pagination exists or if statistics are aggregated, but it is sufficiently 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?
The input schema already describes site_id as a unique project ID with 100% coverage. The description merely restates this, adding no extra meaning.
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 it retrieves a list of all competitors with statistics and requires a project ID. It is distinct from sibling PROJECT_addCompetitor and PROJECT_deleteCompetitor.
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 specifies the requirement for a project ID but does not provide explicit guidance on when to use this tool versus alternatives like PROJECT_getAllCompetitorsMetrics or PROJECT_getCompetitorPositions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_listKeywordGroupsList Keyword GroupsA
Project Tool: Requires a project ID. Get a list of keyword groups for a specified project.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | ID of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states a prerequisite (requires project ID). It does not disclose behavioral traits such as read-only nature, pagination, or rate 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?
Two short sentences that convey the tool's purpose and a key requirement. No unnecessary words or repetition.
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 simple tool with one parameter and no output schema, the description covers the essential purpose and requirement. It could elaborate on the output format but is largely sufficient.
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% and the parameter description in the schema ('ID of the project') matches the description. The description adds no additional meaning beyond what the schema already provides.
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 it lists keyword groups for a project, using a specific verb ('Get a list') and resource ('keyword groups'), and distinguishes it from sibling tools like PROJECT_createKeywordGroup.
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?
It mentions a prerequisite (project ID) but does not provide explicit guidance on when to use this tool versus alternatives like PROJECT_deleteKeywordGroup or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_listKeywordsList KeywordsB
Project Tool: Get a list of keywords with target pages for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID | |
| site_engine_id | No | Search engine ID (optional). If passed, first_check_date will be returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'get' implies a read-only operation, which is appropriate. However, with no annotations, the description does not disclose additional behavioral traits such as pagination, rate limits, or response format. It adds basic context but lacks depth.
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, concise and to the point. It front-loads the key information ('Project Tool:') but could benefit from slightly more structure, such as a brief note on response format or usage 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?
Given the simple nature of the tool (2 parameters, no output schema), the description provides the essential purpose. However, it omits details like expected return structure or any filtering capabilities, which are typical for a list tool. The description is functional but not fully 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?
Input schema provides descriptions for both parameters with 100% coverage. The description does not add meaning beyond the schema, such as clarifying how parameters affect the output or providing examples. Baseline score of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Get a list of keywords with target pages for a project.' The verb 'get' and resource 'list of keywords' are specific. However, it does not explicitly differentiate from sibling tools like DATA_getDomainKeywords or PROJECT_addKeywords, which also deal with keywords.
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 DATA_getDomainKeywords or other PROJECT tools. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_listProjectGroupsList Project GroupsC
Project Tool: Requires a project ID. Get a list of all project groups from a user account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description implies a read-only list operation, but the missing parameter from the schema makes the actual behavior unclear. No details on pagination, sorting, or side effects are given.
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, but the first sentence is misleading and wastes space on a parameter not in the schema. The second sentence is clear but not enough to justify the length.
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?
No output schema is provided, and the description does not specify the return format or fields of the project groups. Given the complexity of sibling tools, more context is needed for complete understanding.
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 no parameters, yet the description claims a project ID is required. This contradicts the schema and adds no meaningful semantics. The description fails to add value 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 'Get a list of all project groups from a user account,' which clearly identifies the operation. However, it also claims 'Requires a project ID,' but the input schema has no parameters, creating confusion. The purpose is somewhat clear but contradicted by the schema.
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 siblings like PROJECT_createProjectGroup, PROJECT_deleteProjectGroup, etc. The 'requires a project ID' note is ambiguous and not actionable without the parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_listProjectsList ProjectsD
Project Tool: Requires a project ID. Get a list of all user projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers no behavioral context such as authentication requirements, rate limits, or what happens when the project list is empty. The claim that a project ID is required contradicts the schema, further harming transparency.
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 but includes misleading and contradictory information. It is not concise in a helpful way; the single sentence contains an error that harms usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, annotations, and the contradictory description, the tool definition is completely inadequate. It fails to explain what a project is, how the list is returned, or any pagination details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description falsely asserts a required project ID when the schema defines no parameters. This misinformation degrades the parameter semantics, as it adds incorrect context beyond what the schema provides.
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 is contradictory: 'Requires a project ID' but the input schema has no parameters. The title 'List Projects' implies no input, but the description adds an unnecessary requirement. This confusion undermines purpose clarity.
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 the many sibling tools. The description lacks any context about its purpose relative to PROJECT_listCompetitors, PROJECT_listKeywords, etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_listTagsList TagsA
Project Tool: Requires a project ID. Get a list of landing page tags that are added to domains and/or links.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Website ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context that it requires a project ID and lists tags for domains/links, which is read-only. However, with no annotations, it lacks details on output format, pagination, or error conditions.
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, no unnecessary words. Front-loaded with context and clear action. Every sentence adds value.
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 simple list tool with one parameter and no output schema, the description covers the essential purpose and input. It could mention the output type or pagination, but it is largely 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?
Description clarifies that the required 'site_id' parameter is a project ID, adding meaning beyond the schema description 'Website ID'. Schema coverage is 100%, but this extra context improves usability.
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?
Description clearly states the tool lists landing page tags for domains/links, and notes it requires a project ID. It is distinguishable from siblings by name and function, but does not explicitly differentiate from similar list 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 on when to use this tool versus alternatives, nor any exclusions or prerequisites beyond requiring a project ID. Usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_moveKeywordsToGroupMove Keywords to GroupC
Project Tool: Requires a project ID. Transfer project keywords from one group to another.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ID of the destination keyword group | |
| keywords_ids | Yes | Array of the IDs of keywords to be transferred |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose whether keywords are removed from source group, what happens to associated data, or other side effects. The absence of project ID in schema contradicts description.
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 is concise but omits critical details like project ID requirement, leading to incompleteness.
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?
No output schema; description missing project ID and behavior details, leaving uncertainty about source group and mutation scope.
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 baseline is 3. Description adds no extra meaning to parameters beyond 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 it transfers keywords between groups but claims a required project ID not present in the schema, causing confusion. No differentiation from sibling tool PROJECT_moveProjectsToGroup.
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 like PROJECT_moveProjectsToGroup or others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_moveProjectsToGroupMove Projects to GroupC
Project Tool: Requires a project ID. Transfer projects from one project group to another (or to a specific group).
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ID of the destination project group | |
| site_ids | Yes | Array of website IDs to transfer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic action. It does not disclose whether the operation is destructive, if permissions are needed, or what happens to the source group. The agent receives 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 short (one sentence) but includes inaccuracy. It could be more concise if corrected. The structure is acceptable but not optimally clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that moves projects, the description lacks details about how the source group is determined, whether existing assignments are overwritten, and the result of the operation. No output schema or annotations exist to compensate.
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 parameters are documented, but the description adds a misleading statement ('Requires a project ID') that does not match the actual required parameters (group_id and site_ids). This confuses rather than clarifies.
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 (transfer projects) and destination (to another group or specific group). It distinguishes from sibling tools like PROJECT_moveKeywordsToGroup. However, it inaccurately says 'Requires a project ID' while the schema requires group_id and site_ids, causing minor confusion.
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. The description does not mention prerequisites, exclusions, or comparisons to similar move tools among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_runPositionCheckRun Position CheckB
Project Tool: Requires a project ID. Run a ranking position check for specified keywords or for the entire project.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Unique website ID | |
| keywords | No | Array of specific keywords to check. If provided, site_engine_id param is ignored. | |
| site_engine_id | No | Unique project search engine ID. Run check for this search engine. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It does not disclose whether the check is synchronous or asynchronous, what side effects occur, authentication needs, or rate limits. For a 'run' action, critical behavioral context is missing.
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?
Description is one sentence, very concise but lacks structure. Opening 'Project Tool:' is redundant given tool name and wastes prime real estate. Could front-load the core action more effectively.
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 output schema and no annotations, description should provide more context. It does not explain return values, whether a job ID is returned, or success/failure indicators. For an action tool, completeness is 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 covers all 3 parameters with descriptions (100% coverage). Description adds value by clarifying the two modes (keywords vs. entire project) and requiring a project ID, but it does not explain the relationship between site_engine_id and keywords (schema notes that keywords overrides site_engine_id). Score at baseline 3 with marginal addition.
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?
Description clearly states the tool runs a ranking position check for specified keywords or entire project. The verb 'Run' and resource 'ranking position check' are specific. It distinguishes from sibling tools like PROJECT_getCompetitorPositions (which retrieves positions) and PROJECT_setKeywordPosition (manual set) by implying an action, though not explicitly differentiating.
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?
Description mentions requirement of a project ID and notes two modes (specific keywords or entire project). However, it does not provide when to use this tool versus alternatives like PROJECT_getCompetitorPositions or PROJECT_setKeywordPosition, nor does it give exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_setKeywordPositionSet Keyword PositionC
Project Tool: Manually set position for a project's keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date for the position (YYYY-MM-DD) | |
| site_id | Yes | Unique website ID | |
| position | Yes | Position from 0 to 200 (0 means not found) | |
| keyword_id | Yes | Unique keyword ID | |
| site_engine_id | Yes | Project search engine ID |
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. It only says 'Manually set position' without disclosing side effects (e.g., overwrite behavior, reversibility, impact on keyword history) or permission requirements.
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 (one sentence) but lacks necessary detail for a tool with 5 required parameters. While front-loaded, it sacrifices informativeness 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?
Given the tool has 5 required parameters and no output schema, the description should explain return behavior or expected results. It does not, leaving agents to infer outcomes. The description is insufficient for complete understanding.
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% and each parameter has a description in the schema. However, the tool description adds no additional meaning beyond what the schema already provides; it merely restates the purpose.
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 'set' and resource 'position for a project's keyword'. It distinguishes the tool as manual setting, contrasting with potential automatic checks like PROJECT_runPositionCheck, but does not explicitly name 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 on when to use this tool versus alternatives like PROJECT_runPositionCheck. No prerequisites or scenarios are mentioned, leaving the agent without context for proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_updateKeywordGroupUpdate Keyword GroupC
Project Tool: Requires a project ID. Update the name of a project keyword group.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New keyword group name | |
| group_id | Yes | ID of the keyword group to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only says 'Update' without disclosing side effects, required permissions, or behavior on failure. 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?
Very short and to the point, but the phrase 'Requires a project ID' is potentially misleading and could be omitted for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and many sibling tools, the description should clarify prerequisites (e.g., does the group exist?), return behavior, or error cases. It does not.
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 has 100% coverage for both parameters, and the description adds no extra meaning beyond what the schema already defines. Baseline 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 tool updates the name of a keyword group. The mention of 'Requires a project ID' is confusing as no such parameter exists in the schema, but the main action is unambiguous.
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 like PROJECT_createKeywordGroup or PROJECT_deleteKeywordGroup. No explicit context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_updateProjectUpdate ProjectC
Project Tool: Requires a project ID. Change/update project settings.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Website URL | |
| depth | No | Ranking position collection depth | |
| title | No | Project name | |
| site_id | Yes | Unique site ID | |
| check_day | No | Day of week (1-7) or day of month (1-31) | |
| exact_url | No | Exact URL? | |
| is_active | No | Project status 1 – active, 0 – delayed | |
| check_freq | No | ||
| site_group_id | No | ID of the group | |
| subdomain_match | No | Take subdomains in SERPs into account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description offers minimal behavioral disclosure beyond indicating mutation. It doesn't mention side effects, permissions, or reversibility, which is a gap for a mutation 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 very short (one sentence) and gets to the point, but lacks structural elements like bullet points or front-loading of key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite high schema coverage, the description is too brief for a tool with 10 parameters and no output schema. It fails to explain common usage patterns or behavior when optional parameters are omitted.
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 90%, so the schema adequately documents parameters. The description adds no additional meaning beyond stating the tool updates settings, providing no extra parameter context.
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 it updates project settings and requires a project ID. However, it does not differentiate from siblings like PROJECT_createProject or PROJECT_deleteProject beyond the verb 'update'.
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. It simply says 'change/update project settings' without specifying scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_updateProjectGroupUpdate Project GroupC
Project Tool: Requires a project ID. Rename a project group.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New project group name | |
| group_id | Yes | ID of the project group to rename |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose side effects, permissions, or other behavioral traits. It only says 'Rename a project group' without any additional 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 short with two sentences, but the first sentence adds little value. It could be more efficiently 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?
For a simple rename tool with no output schema, the description is incomplete. It lacks guidance on prerequisites, side effects, or how it fits with 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 coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema, and the 'project ID' comment is slightly inaccurate.
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 renames a project group, distinguishing it from create/delete siblings. However, it says 'Requires a project ID' while the required parameter is group_id, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like creating or deleting groups, or what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
PROJECT_updateSearchEngineUpdate Search EngineB
Project Tool: Update an existing search engine in a project.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | Company phone number for Google Maps SERPs | |
| site_id | Yes | Unique website ID | |
| lang_code | No | Language code | |
| merge_map | No | Take Google Maps SERPs into account. 0 – don’t take into account, 1 – take into account, 2 – take into account and display separately. | |
| region_id | No | Region ID (refer to getSerpLocations) | |
| region_name | No | Geographical name (region / city) in English. Only for Google | |
| paid_results | No | Track rankings in Google Ads (1 – yes, 0 – no) | |
| business_name | No | Business name for Google Maps SERPs | |
| site_engine_id | Yes | Unique search engine ID within the project (not global ID) | |
| featured_snippet | No | Take Featured snippet into account (1 – take into account, 0 – don’t take into account) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It only states the basic action without mentioning side effects, permissions, or error conditions.
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, which is concise but lacks depth for a tool with 10 parameters. It is front-loaded but too brief.
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 10 parameters, no output schema, and no annotations, the description fails to provide sufficient context about return values, constraints, or expected behavior.
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 baseline is 3. The description adds no additional meaning 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 clearly states the verb 'Update' and the resource 'existing search engine in a project', distinguishing it from sibling tools like add and delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like PROJECT_addSearchEngine or PROJECT_deleteSearchEngine. No context on prerequisites or usage constraints.
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.
100 tool updates
v1.0.0- First observed
DATA_createAdvancedAudit - First observed
DATA_createStandardAudit - First observed
DATA_deleteAudit - First observed
DATA_exportBacklinksData - First observed
DATA_exportKeywords - First observed
DATA_getAiDiscoverBrand - First observed
DATA_getAiOverview - First observed
DATA_getAiOverviewLeaderboard - First observed
DATA_getAiPromptsByBrand - First observed
DATA_getAiPromptsByTarget - First observed
DATA_getAllBacklinks - First observed
DATA_getAuditHistory - First observed
DATA_getAuditPagesByIssue - First observed
DATA_getAuditReport - First observed
DATA_getAuditStatus - First observed
DATA_getBacklinksAnchors - First observed
DATA_getBacklinksAuthority - First observed
DATA_getBacklinksCount - First observed
DATA_getBacklinksExportStatus - First observed
DATA_getBacklinksIndexedPages - First observed
DATA_getBacklinksMetrics - First observed
DATA_getBacklinksRaw - First observed
DATA_getBacklinksRefDomains - First observed
DATA_getBacklinksSummary - First observed
DATA_getCrawledPages - First observed
DATA_getCumulativeBacklinksHistory - First observed
DATA_getDistributionOfDomainAuthority - First observed
DATA_getDomainAdsByDomain - First observed
DATA_getDomainAdsByKeyword - First observed
DATA_getDomainAuthority - First observed
DATA_getDomainAuthorityHistogram - First observed
DATA_getDomainAuthorityHistory - First observed
DATA_getDomainCompetitors - First observed
DATA_getDomainKeywords - First observed
DATA_getDomainKeywordsComparison - First observed
DATA_getDomainOverviewDatabases - First observed
DATA_getDomainOverviewHistory - First observed
DATA_getDomainOverviewWorldwide - First observed
DATA_getFoundLinks - First observed
DATA_getIssuesByUrl - First observed
DATA_getKeywordQuestions - First observed
DATA_getLongTailKeywords - First observed
DATA_getNewLostBacklinksCount - First observed
DATA_getNewLostRefDomainsCount - First observed
DATA_getPageAuthority - First observed
DATA_getPageAuthorityHistory - First observed
DATA_getReferringIps - First observed
DATA_getReferringIpsCount - First observed
DATA_getReferringSubnetsCount - First observed
DATA_getRelatedKeywords - First observed
DATA_getSerpHtmlDump - First observed
DATA_getSerpLocations - First observed
DATA_getSerpResults - First observed
DATA_getSerpTaskAdvancedResults - First observed
DATA_getSerpTaskResults - First observed
DATA_getSerpTasks - First observed
DATA_getSimilarKeywords - First observed
DATA_getTotalRefDomainsCount - First observed
DATA_listAudits - First observed
DATA_listNewLostBacklinks - First observed
DATA_listNewLostReferringDomains - First observed
DATA_recheckAudit - First observed
DATA_updateAuditTitle - First observed
PROJECT_addCompetitor - First observed
PROJECT_addKeywords - First observed
PROJECT_addSearchEngine - First observed
PROJECT_createKeywordGroup - First observed
PROJECT_createProject - First observed
PROJECT_createProjectGroup - First observed
PROJECT_deleteCompetitor - First observed
PROJECT_deleteKeywordGroup - First observed
PROJECT_deleteKeywords - First observed
PROJECT_deleteProject - First observed
PROJECT_deleteProjectGroup - First observed
PROJECT_deleteSearchEngine - First observed
PROJECT_getAdsStats - First observed
PROJECT_getAllCompetitorsMetrics - First observed
PROJECT_getAvailableRegions - First observed
PROJECT_getAvailableSearchEngines - First observed
PROJECT_getCompetitorPositions - First observed
PROJECT_getCompetitorTop10 - First observed
PROJECT_getCompetitorTop100 - First observed
PROJECT_getHistoricalDates - First observed
PROJECT_getKeywordStats - First observed
PROJECT_getSearchEngines - First observed
PROJECT_getSummary - First observed
PROJECT_listCompetitors - First observed
PROJECT_listKeywordGroups - First observed
PROJECT_listKeywords - First observed
PROJECT_listProjectGroups - First observed
PROJECT_listProjects - First observed
PROJECT_listTags - First observed
PROJECT_moveKeywordsToGroup - First observed
PROJECT_moveProjectsToGroup - First observed
PROJECT_runPositionCheck - First observed
PROJECT_setKeywordPosition - First observed
PROJECT_updateKeywordGroup - First observed
PROJECT_updateProject - First observed
PROJECT_updateProjectGroup - First observed
PROJECT_updateSearchEngine
TDQS
Scored across 100 tools
The tools are organized into DATA_ and PROJECT_ prefixes, which helps, but within each category there are many similar tools (e.g., multiple backlinks retrieval tools) that could cause confusion. Descriptions provide differentiation, but the sheer number and naming proximity make misselection possible.
All tools follow a strict CATEGORY_verbNoun pattern with consistent verb usage (get, list, create, delete, update, etc.) and clear nouns. The naming is highly predictable and uniform across the entire set.
With 100 tools, the surface is very large. While the domain of SEO is broad, this number feels excessive and could overwhelm an agent. Many tools are highly specialized, and the count suggests a lack of consolidation or abstraction.
The tool set covers major SEO areas: website audits, backlinks, keyword research, SERP results, project management, competitors, etc. There are minor omissions (e.g., no tool for managing tag assignments beyond listing), but overall the coverage is thorough.
Maintenance
Related MCP Connectors
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
SE Ranking SEO: keywords, backlinks, domains, SERP, audits, rank tracking, AI Search visibility.
Enables AI assistants to natively interact with the Serpzilla link-building marketplace.
Query your SEO data in plain language: rankings, audits, backlinks, competitors and AI visibility.
Related MCP Servers
- FlicenseBqualityDmaintenanceProvides AI assistants with access to Semrush SEO API functionality including domain analytics, keyword research, backlink analysis, and competitor insights.716-
- -licenseCqualityNot gradedmaintenanceEnables AI assistants to access comprehensive SEO data through DataForSEO APIs, including SERP results, keyword research, backlink analysis, on-page metrics, and domain analytics. Supports real-time search engine data from Google, Bing, and Yahoo with customizable filtering and multiple deployment options.36-
- AlicenseAqualityDmaintenanceEnables AI assistants to access SurfRank's AI visibility analytics platform through 24 tools. It allows agents to run AI-visibility reports, research keywords, track competitors, and manage projects directly from chat interfaces.246 npmMIT
- AlicenseBqualityDmaintenanceEnables to access SE Ranking SEO data through natural language queries, providing keyword analysis, competitor research, and performance tracking.281Apache 2.0