Skip to main content
Glama
TeamDay-AI

SE Ranking MCP Server

by TeamDay-AI

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

DATA_API_TOKEN

UUID (e.g., 80cfee7d-xxxx-xxxx-xxxx-fc8500816bb3)

Access to keyword research, domain analysis, backlinks data, SERP analysis, and website audits. Tools prefixed with DATA_.

Project API

PROJECT_API_TOKEN

40-char hex (e.g., 253a73adxxxxxxxxxxxx340aa0a939)

Access to project management, rank tracking, backlink monitoring, and account management. Tools prefixed with PROJECT_.

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.

  1. Open your terminal (or Command Prompt/PowerShell on Windows).

  2. Clone the project repository from GitHub:

git clone https://github.com/seranking/seo-data-api-mcp-server.git
  1. Navigate into the new directory:

cd seo-data-api-mcp-server
  1. Build 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 ls

How 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.

  1. Install dependencies:

npm install
  1. Build the project:

npm run build
  1. Start the server:

npm run start-http

Then 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=5555

Additionally, 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.json

  • Windows: %AppData%\Claude\claude_desktop_config.json

  • Linux: ~/.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_TOKEN and PROJECT_API_TOKEN placeholder 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 listing seo-data-api-mcp.

Claude Desktop: Verify the MCP access

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

Claude Desktop: List MCP Servers

Connect to Gemini CLI

  • Open the Gemini CLI settings file, which is typically located at: ~/.gemini/settings.json

  • Add 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 gemini in your terminal. Once the interface is active, press Ctrl+T to view the available MCP servers. Ensure seo-data-api-mcp is listed.

Gemini CLI: Configured MCP Servers

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

Gemini CLI: SEO Queries Example

Available Tools

Data API Tools

Module

Tool Name

Description

account

DATA_getCreditBalance

Get current Data API credit balance and plan details.

account

DATA_getSubscription

Get information about the current Data API subscription.

SERP

DATA_getSerpHtmlDump

Retrieves the raw HTML dump of a completed SERP task as a ZIP file (returned as an MCP embedded resource, application/zip).

SERP

DATA_getSerpLocations

Retrieves a list of available locations for SERP analysis.

SERP

DATA_getSerpResults

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

DATA_getSerpTaskAdvancedResults

Retrieves the status or advanced results of a specific SERP task.

SERP

DATA_getSerpTaskResults

Retrieves the status or standard results of a specific SERP task. Returns organic, ads, and featured_snippet types only.

SERP

DATA_getSerpTasks

Retrieves a list of all SERP tasks added to the queue in the last 24 hours.

ai search

DATA_getAiDiscoverBrand

Identifies and returns the brand name associated with a given target domain, subdomain, or URL.

ai search

DATA_getAiOverview

Retrieves a high-level overview of a domain's performance in AI search engines.

ai search

DATA_getAiOverviewLeaderboard

Returns the AI Overview visibility leaderboard for a market — which domains appear most often in AI-search answers for tracked prompts.

ai search

DATA_getAiPromptsByBrand

Retrieves a list of prompts where the specified brand is mentioned in AI search results.

ai search

DATA_getAiPromptsByTarget

Retrieves a list of prompts (queries) that mention the specified target in AI search results.

backlinks

DATA_exportBacklinksData

Retrieves large-scale backlinks asynchronously, returning a task ID to check status later.

backlinks

DATA_getAllBacklinks

Retrieves a comprehensive list of backlinks for the specified target, with extensive filtering and sorting options.

backlinks

DATA_getBacklinksAnchors

Retrieves a list of anchor texts for backlinks pointing to the specified target.

backlinks

DATA_getBacklinksAuthority

Fetch authority metrics for a target (domain, host or URL).

backlinks

DATA_getBacklinksCount

Returns the total number of backlinks for the target. Supports batch requests.

backlinks

DATA_getBacklinksExportStatus

Checks the status of an asynchronous backlinks export task. Returns download URL when complete.

backlinks

DATA_getBacklinksIndexedPages

Fetch site pages that have backlinks, with sorting and limit controls.

backlinks

DATA_getBacklinksMetrics

Returns key statistics for a target (backlinks count, referring domains, etc.). Supports batch requests.

backlinks

DATA_getBacklinksRaw

Returns all backlinks pointing to a target using cursor-based pagination for large datasets.

backlinks

DATA_getBacklinksRefDomains

Retrieves a list of referring domains pointing to the specified target.

backlinks

DATA_getBacklinksSummary

Retrieves a summary of backlink metrics for one or multiple targets.

backlinks

DATA_getCumulativeBacklinksHistory

Returns live backlinks count for every day within the specified date range.

backlinks

DATA_getDistributionOfDomainAuthority

Returns distribution of Domain InLink Rank of all domains referencing a target.

backlinks

DATA_getDomainAuthority

Returns the domain InLink Rank (Domain Authority) of the target page's root domain.

backlinks

DATA_getDomainAuthorityHistory

Returns the historical time-series of domain InLink Rank for a target domain.

backlinks

DATA_getNewLostBacklinksCount

Returns count of (newly) found or lost backlinks for every day in the date range.

backlinks

DATA_getNewLostRefDomainsCount

Returns count of referring domains found or lost in the date range, by day.

backlinks

DATA_getPageAuthority

Returns the InLink Rank (Page Authority) for a target URL.

backlinks

DATA_getPageAuthorityHistory

Returns historical values of InLink Rank for a specific target page.

backlinks

DATA_getReferringIps

Returns IPv4 addresses that belong to backlinks pointing to a target.

backlinks

DATA_getReferringIpsCount

Returns the number of unique IPs linking to a target.

backlinks

DATA_getReferringSubnetsCount

Returns the number of unique subnets/C-blocks linking to a target.

backlinks

DATA_getTotalRefDomainsCount

Returns the number of unique domains linking to a target. Supports batch requests.

backlinks

DATA_listNewLostBacklinks

Returns a list of backlinks found or lost within the specified date range.

backlinks

DATA_listNewLostReferringDomains

Returns referring domains found or lost in the specified date range.

domain analysis

DATA_getDomainAdsByDomain

Retrieves paid ads for a specific domain.

domain analysis

DATA_getDomainAdsByKeyword

Retrieves paid ads for a specific keyword.

domain analysis

DATA_getDomainCompetitors

Retrieves up to 500 organic or paid competitors for a target domain, sorted by shared keyword count.

domain analysis

DATA_getDomainKeywords

Retrieves keywords for which a domain ranks in organic or paid search.

domain analysis

DATA_getDomainKeywordsComparison

Compares keyword rankings of two websites. Find common keywords or keyword gaps.

domain analysis

DATA_getDomainOverviewDatabases

Fetch domain overview by database.

domain analysis

DATA_getDomainOverviewHistory

Retrieves historical data for domain traffic and keyword rankings.

domain analysis

DATA_getDomainOverviewWorldwide

Retrieves an aggregated worldwide overview of domain metrics.

domain analysis

DATA_getDomainPages

Retrieves a list of individual pages ranking within a specified domain.

domain analysis

DATA_getDomainSubdomains

Retrieves a list of subdomains for a domain with search performance metrics.

domain analysis

DATA_getUrlOverviewWorldwide

Retrieves worldwide overview of organic and paid traffic metrics for a specific URL.

keyword research

DATA_exportKeywords

Retrieves metrics for a bulk list of keywords.

keyword research

DATA_getKeywordQuestions

Retrieves question-based keywords containing the seed keyword.

keyword research

DATA_getLongTailKeywords

Retrieves long-tail variations for the seed keyword.

keyword research

DATA_getRelatedKeywords

Retrieves keywords semantically related to the seed keyword.

keyword research

DATA_getSimilarKeywords

Retrieves keywords similar to the seed keyword.

website audit

DATA_createAdvancedAudit

Launches an advanced website audit that renders JavaScript. Suitable for SPAs.

website audit

DATA_createStandardAudit

Launches a standard website audit that crawls HTML. Suitable for static sites.

website audit

DATA_deleteAudit

Permanently deletes a website audit report and all associated data.

website audit

DATA_getAuditHistory

Retrieves a historical snapshot of a specific audit run.

website audit

DATA_getAuditPagesByIssue

Retrieves URLs affected by a specific issue within an audit.

website audit

DATA_getAuditReport

Retrieves the full detailed report for a completed website audit.

website audit

DATA_getAuditStatus

Checks the real-time status of a specific website audit.

website audit

DATA_getCrawledPages

Returns all URLs found during an audit.

website audit

DATA_getFoundLinks

Returns every hyperlink discovered during the audit.

website audit

DATA_getIssuesByUrl

Retrieves all issues found on a specific page within an audit.

website audit

DATA_listAudits

Retrieves all website audits associated with your account.

website audit

DATA_recheckAudit

Launches a new crawl of a previously completed audit.

website audit

DATA_updateAuditTitle

Changes the title of an existing website audit report.

Project API Tools

Module

Tool Name

Description

account

PROJECT_getUserProfile

Get information about the currently logged in user.

AIRT — brands

PROJECT_getSiteBrand

Get the brand name configured for an AI Result Tracker site.

AIRT — brands

PROJECT_saveSiteBrand

Set the brand name for an AI Result Tracker site.

AIRT — llm engines

PROJECT_createLlmEngine

Add an LLM engine (e.g. ChatGPT, Perplexity, Google AI Overview, Gemini) for an AIRT site.

AIRT — llm engines

PROJECT_deleteLlmEngine

Remove an LLM engine from an AIRT site.

AIRT — llm engines

PROJECT_getLlmEngine

Get configuration of a specific LLM engine.

AIRT — llm engines

PROJECT_getLlmStatistics

Get AIRT engine statistics (prompt hits, brand mentions) for a site.

AIRT — llm engines

PROJECT_getLlmStatus

Get real-time status of LLM answer generation for an AIRT site.

AIRT — llm engines

PROJECT_listLlmEngines

List all LLM engines configured for an AIRT site.

AIRT — llm engines

PROJECT_updateLlmEngine

Partial update of an LLM engine (region_name, lang_code).

AIRT — prompts

PROJECT_addPrompts

Add a batch of tracked prompts to an AIRT prompt group.

AIRT — prompts

PROJECT_deletePrompts

Delete specific tracked prompts.

AIRT — prompts

PROJECT_getPromptAnswer

Get the full LLM answer captured for a specific tracked prompt.

AIRT — prompts

PROJECT_getPromptsRankings

Get ranking statistics (brand mentions, competitor mentions) for tracked prompts.

AIRT — prompts

PROJECT_listPrompts

List tracked prompts for an AIRT site, optionally filtered by prompt group.

AIRT — prompt groups

PROJECT_changePromptGroupOrder

Reorder prompt groups within an AIRT site.

AIRT — prompt groups

PROJECT_createPromptGroup

Create a new prompt group for an AIRT site.

AIRT — prompt groups

PROJECT_deleteAllPromptsInGroup

Delete all prompts inside a specified prompt group.

AIRT — prompt groups

PROJECT_deletePromptGroup

Delete a prompt group.

AIRT — prompt groups

PROJECT_listPromptGroups

List all prompt groups for an AIRT site.

AIRT — prompt groups

PROJECT_movePromptsBetweenGroups

Move prompts from one group to another.

AIRT — prompt groups

PROJECT_movePromptsToGroup

Move selected prompts into a specified group.

AIRT — prompt groups

PROJECT_updatePromptGroup

Rename a prompt group.

analytics

PROJECT_getGoogleSearchConsole

Get popular queries from Google Search Console for a website.

analytics

PROJECT_getSeoPotential

Assess potential traffic volume, traffic cost, and potential customers for a website.

backlink checker

PROJECT_addDisavowedBacklinks

Add a list of URLs to the disavowed backlinks list.

backlink checker

PROJECT_addProjectBacklink

Add a single backlink to the backlink monitor for a website.

backlink checker

PROJECT_createBacklinkGroup

Create a new group for organizing backlinks.

backlink checker

PROJECT_deleteBacklinkGroup

Delete a backlink group.

backlink checker

PROJECT_deleteDisavowedBacklink

Remove a backlink from the disavowed backlinks list.

backlink checker

PROJECT_deleteProjectBacklinks

Delete a list of backlinks from the backlink monitor.

backlink checker

PROJECT_getBacklinkGscImportStatus

Get the status of a backlink import from Google Search Console.

backlink checker

PROJECT_getBacklinkStats

Get backlink statistics for a website.

backlink checker

PROJECT_importProjectBacklinks

Import a list of backlinks to the backlink monitor.

backlink checker

PROJECT_listBacklinkGroups

Get a list and count of backlink groups for a website.

backlink checker

PROJECT_listDisavowedBacklinks

Get a list and count of disavowed backlinks for a website.

backlink checker

PROJECT_listProjectBacklinks

Get a list of backlinks from the backlink monitor.

backlink checker

PROJECT_moveBacklinksToGroup

Move backlinks from one group to another.

backlink checker

PROJECT_recheckProjectBacklinks

Run an index or status check for a list of backlinks.

backlink checker

PROJECT_renameBacklinkGroup

Change the name of a backlink group.

backlink checker

PROJECT_runBacklinkGscImport

Start a backlink import from Google Search Console.

backlink checker

PROJECT_updateBacklinkImportSettings

Update settings for automatic backlink import from GSC.

competitors

PROJECT_addCompetitor

Add a competitor website to a project for position tracking.

competitors

PROJECT_deleteCompetitor

Remove a competitor website from a project.

competitors

PROJECT_getAllCompetitorsMetrics

Get data on sites ranked in TOP 10 for tracked queries (14-day history).

competitors

PROJECT_getCompetitorPositions

Get statistics on competitor keyword positions.

competitors

PROJECT_getCompetitorTop10

Get TOP 10 results for tracked keywords in a project.

competitors

PROJECT_getCompetitorTop100

Get top 100 results for tracked keywords in a project.

competitors

PROJECT_listCompetitors

Get a list of all competitors added to a project with statistics.

keyword groups

PROJECT_createKeywordGroup

Add a group for project keywords.

keyword groups

PROJECT_deleteKeywordGroup

Delete a project keyword group.

keyword groups

PROJECT_listKeywordGroups

Get a list of keyword groups for a project.

keyword groups

PROJECT_moveKeywordsToGroup

Transfer project keywords from one group to another.

keyword groups

PROJECT_updateKeywordGroup

Update the name of a project keyword group.

marketing plan

PROJECT_addPlanTask

Add a new task to the marketing plan for a website.

marketing plan

PROJECT_deletePlanTask

Delete a task from the marketing plan.

marketing plan

PROJECT_listPlanItems

Get all marketing plan sections, items, and notes for a website.

marketing plan

PROJECT_setPlanTaskStatus

Set the completion status of a marketing plan task.

marketing plan

PROJECT_updatePlanTask

Update an existing marketing plan task.

project groups

PROJECT_createProjectGroup

Add a new project group to a user account.

project groups

PROJECT_deleteProjectGroup

Delete a project group.

project groups

PROJECT_listProjectGroups

Get a list of all project groups from a user account.

project groups

PROJECT_moveProjectsToGroup

Transfer projects from one group to another.

project groups

PROJECT_updateProjectGroup

Rename a project group.

project management

PROJECT_addKeywords

Add new keywords to a project.

project management

PROJECT_addSearchEngine

Add a new search engine to a project.

project management

PROJECT_createProject

Add a new project to the user account.

project management

PROJECT_deleteKeywords

Delete keywords from a project.

project management

PROJECT_deleteProject

Delete a project from the user account.

project management

PROJECT_deleteSearchEngine

Delete a search engine from a project.

project management

PROJECT_getAdsStats

Get total number of top and bottom advertisements by day.

project management

PROJECT_getHistoricalDates

Returns standard comparison dates available for reporting.

project management

PROJECT_getChart

Get daily visibility / average-position / keywords-in-top-N time-series for a project, suitable for charts.

project management

PROJECT_getCheckDates

Get the list of dates on which position checks were run for a project.

project management

PROJECT_getKeywordStats

Get keyword ranking statistics for a specified time period.

project management

PROJECT_getSearchEngines

Get a list of search engines employed by a project.

project management

PROJECT_getSummary

Get a project's summary statistics.

project management

PROJECT_listKeywords

Get a list of keywords with target pages for a project.

project management

PROJECT_listProjects

Get a list of all user projects.

project management

PROJECT_runPositionCheck

Run a ranking position check for keywords or entire project.

project management

PROJECT_setKeywordPosition

Manually set position for a project's keyword.

project management

PROJECT_updateKeyword

Update keyword settings (target URL, tags, group) for a project keyword.

project management

PROJECT_updateProject

Change/update project settings.

project management

PROJECT_updateSearchEngine

Update an existing search engine in a project.

sub-accounts

PROJECT_createSubAccount

Create a new sub-account.

sub-accounts

PROJECT_deleteSubAccount

Delete a user sub-account.

sub-accounts

PROJECT_getSubAccountDetails

Get extended information about a sub-account.

sub-accounts

PROJECT_listOwnedProjects

Get website IDs that belong to a sub-account.

sub-accounts

PROJECT_listSharedProjects

Get website IDs shared with a sub-account.

sub-accounts

PROJECT_listSubAccounts

Get a list of all sub-accounts of the current user.

sub-accounts

PROJECT_shareProject

Share one or more websites with a sub-account.

sub-accounts

PROJECT_updateSubAccount

Edit sub-account settings, limits, and permissions.

system

PROJECT_getAvailableRegions

Get the list of all available regions supported by Google.

system

PROJECT_getAvailableSearchEngines

Get the list of all available search engines.

system

PROJECT_getGoogleLanguages

Get a complete list of possible languages for Google search engine.

system

PROJECT_getSearchVolume

Get search volume data for a region and keyword list (max 10 keywords).

system

PROJECT_getVolumeRegions

Get regions where SE Ranking can run keyword search volume checks.

url tags

PROJECT_addTag

Add a tag to the site and attach it to a link and/or domain.

url tags

PROJECT_deleteTag

Delete a tag.

url tags

PROJECT_listTags

Get a list of landing page tags added to domains and/or links.

url tags

PROJECT_updateTag

Add tags to a domain and/or link, replacing previously added tags.

website audit

PROJECT_createAudit

Launch a website audit for a domain with full settings (crawl sources, limits, thresholds, schedule, disabled_issues, disallow_ext).

website audit

PROJECT_listAudits

List all website audits for the account with pagination, search, and date filters.

website audit

PROJECT_getAuditStatus

Real-time status of a specific audit (queued, processing, finished, cancelled, expired).

website audit

PROJECT_getAuditReport

Full detailed report for a completed audit — health score, domain properties, section-by-section breakdown.

website audit

PROJECT_getCrawledPages

Paginated list of all URLs found during the audit.

website audit

PROJECT_getAuditPagesByIssue

Paginated list of URLs affected by a specific issue within an audit.

website audit

PROJECT_getIssuesByUrl

All issues (errors, warnings, notices) found on a specific page within an audit.

website audit

PROJECT_getFoundLinks

Every hyperlink discovered during the audit, with filtering.

website audit

PROJECT_getAuditHistory

Historical snapshot of a specific audit run by date.

website audit

PROJECT_updateAuditTitle

Change an audit's title (backward-compatible /audit/{id}/edit).

website audit

PROJECT_getAuditSettings

Read current settings for an existing audit — required before partial updates and for modifying disabled_issues.

website audit

PROJECT_updateAuditSettings

Partial-update an audit's settings (title, settings object, schedule, disabled_issues). disabled_issues / schedule_wdays are replace operations.

website audit

PROJECT_resetAuditSettings

Reset all audit settings to defaults. Does not remove sitemaps / source-pages lists.

website audit

PROJECT_listAuditSitemaps

List sitemap URLs configured as crawl sources for an audit.

website audit

PROJECT_addAuditSitemap

Add a sitemap URL as a crawl source. Auto-enables source_sitemap.

website audit

PROJECT_deleteAuditSitemap

Remove a sitemap from an audit's crawl sources.

website audit

PROJECT_listAuditSourcePages

List uploaded custom-page URL lists used as a crawl source.

website audit

PROJECT_addAuditSourcePages

Upload a custom list of pages (one URL per line) to crawl. Auto-enables source_file.

website audit

PROJECT_deleteAuditSourcePages

Remove an uploaded source-pages list from an audit.

website audit

PROJECT_recheckAudit

Launch a new crawl of a previously completed audit with the same settings.

website audit

PROJECT_deleteAudit

Permanently delete an audit and all associated data.

Available Prompts

Prompt Name

Arguments

Description

serp-analysis

keyword, location1, location2, language, device

Create two SERP tasks for the query in two locations and compare top 10 organic domains, overlap, and unique competitors.

backlink-gap

my_domain, competitors, min_domain_trust

Fetch backlinks for competitors with a minimum Domain Trust, compare against your domain, and find opportunities.

domain-traffic-competitors

domain

Analyze a domain's global/country organic traffic, top competitors by shared keywords, and provide strategic recommendations.

keyword-clusters

market, seed_keywords

Pull related/similar keywords for a market, clean/deduplicate, and cluster them by intent/theme with volume and H1/H2 ideas.

ai-share-of-voice

domain, competitors, country, llm_engines

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: us

What 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 ps

If 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_bhabha

This 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_bhabha

Note: 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:watch

Environment Variables for Testing

Create a .env file in the project root with the following variables:

Variable

Required

Description

DATA_API_TOKEN

Yes

API token for Data API tools

PROJECT_API_TOKEN

Yes

API token for Project API tools

E2E_ENABLED

No

Set to true to enable E2E tests

GEMINI_E2E_ENABLED

No

Set to true to enable Gemini assistant tests

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=false or unset, E2E tests are skipped

  • Set E2E_ENABLED=true to run the full test suite with live API calls

  • Ensure 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 typecheck

Support

SE Ranking API documentation: https://seranking.com/api/integrations/mcp/.

In case you have any questions or need help, please contact us at api@seranking.com

Available Tools

100 tools
DATA_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoCustom title for the audit report. Maximum 300 characters.
domainYesDomain to be audited (e.g., domain.com).
settingsNoObject containing specific audit settings.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoCustom title for the audit report. Maximum 300 characters.
domainYesDomain to be audited (e.g., domain.com).
settingsNoObject containing specific audit settings.

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
audit_idYesUnique identifier of the audit to delete.

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
targetYesAim of the request: root domain, host, or URL.

TDQS

B3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
colsNoA 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
sortNoThe field by which the returned list of keywords should be sorted. Common sortable fields include volume, cpc, difficulty, competition.cpc
sourceYesAlpha-2 country code of the regional keyword database.
keywordsYesFor 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_orderNoThe order of sorting for the sort field.desc

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

For a tool with 5 parameters 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoThe 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
sourceYesAlpha-2 country code for the regional prompt database (e.g., us for United States results).
targetYesThe target to analyze. Can be a root domain, subdomain, or a specific URL.

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandNoBrand name to search for. If omitted, uses the internally determined brand for the domain.
scopeNoThe scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL).base_domain
engineNoThe LLM to query (e.g., ai-overview, chatgpt, perplexity, gemini, ai-mode). If omitted, returns aggregated data across all engines.
sourceYesAlpha-2 country code for the regional prompt database (e.g., us for United States results).
targetYesThe target to analyze for LLM performance. Can be a root domain, subdomain, or a specific URL.

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoThe scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL). Default: base_domain.
sourceYesAlpha-2 country code for the regional prompt database (e.g., us for United States).
enginesYesArray of AI engines to include in the analysis. Options: 'ai-overview', 'ai-mode', 'chatgpt', 'perplexity', 'gemini'.
primaryYesThe primary target to analyze. Object with target (domain/subdomain/URL) and brand name.
competitorsYesArray of competitor targets to compare against. Each object has target and brand. Maximum 10 competitors.

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden 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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's complexity (5 parameters with 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoThe field to sort the results by. Options: volume, type, snippet_length.volume
brandYesBrand name to search for in LLM snippets.
limitNoMax prompts per page (1–1000). Default: 100.
engineYesLLM to query (e.g., 'ai-overview', 'chatgpt', 'perplexity', 'gemini', 'ai-mode').
offsetNoStarting index for pagination. Default: 0.
sourceYesAlpha-2 country code of the regional prompt database (e.g., 'us').
sort_orderNoSort direction. Default: desc.desc
filter_volume_toNoSpecifies the maximum volume of searches to be included in the results.
filter_volume_fromNoSpecifies the minimum volume of searches to be included in the results.
filter_keyword_count_toNoSpecifies the maximum number of words in prompts.
filter_keyword_count_fromNoSpecifies the minimum number of words in prompts.
filter_characters_count_toNoSpecifies the maximum prompt length in characters.
filter_characters_count_fromNoSpecifies the minimum prompt length in characters.
filter_multi_keyword_excludedNoA 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_includedNoA 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

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

The input schema has 100% description coverage, so 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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoThe field to sort the results by. Options: volume, type, snippet_length.volume
limitNoMaximum number of prompts to return.
scopeNoThe scope of the analysis. Can be base_domain (domain and all subdomains), domain (specific host), or url (exact URL).base_domain
engineYesType of LLM engine (e.g. 'chatgpt', 'perplexity', 'ai-mode', etc.).
offsetNoOffset for pagination (starting index).
sourceYesAlpha-2 country code of the regional prompt database (e.g. 'US').
targetYesThe target to retrieve prompts for (domain, host, or URL).
sort_orderNoSort order ('asc' for ascending, 'desc' for descending). Default is 'desc'.desc
filter_volume_toNoSpecifies the maximum volume of searches to be included in the results.
filter_volume_fromNoSpecifies the minimum volume of searches to be included in the results.
filter_keyword_count_toNoSpecifies the maximum number of words in prompts.
filter_keyword_count_fromNoSpecifies the minimum number of words in prompts.
filter_characters_count_toNoSpecifies the maximum prompt length in characters.
filter_characters_count_fromNoSpecifies the minimum prompt length in characters.
filter_multi_keyword_excludedNoA 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_includedNoA 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

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_getAuditHistoryGet Audit HistoryB

Data Tool: Retrieves a historical snapshot of a specific audit run, providing the full context of that audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesSpecific date of the historical audit to retrieve (YYYY-MM-DD).
audit_idYesUnique identifier of the audit.

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It 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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesUnique code for the issue (e.g., title_duplicate).
limitNoNumber of URLs to return in the list.
offsetNoStarting position (offset) for the list of URLs.
audit_idYesUnique identifier of the audit report.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
audit_idYesUnique identifier of the audit for which to retrieve the report.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
audit_idYesUnique identifier of the audit to check.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
limitNoMaximum number of results to return (1–10,000). Default: 100.
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or full URL.
order_byNoSort field (descending): 'backlinks' = total backlinks using the anchor; 'refdomains' = total referring domains using the anchor.backlinks

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoResponse format. Default: json.json
targetYesTarget to assess authority: root domain, host (subdomain), or full URL.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or URL. Can be a single string or an array.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID returned from the exportBacklinksData method (e.g., "1_878619").

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
limitNoMaximum number of results to return (1–10,000). Default: 100.
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or full URL.
order_byNoSort field (descending): 'backlinks' or 'refdomains'. Default: backlinks.backlinks

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or URL. Can be a single string or an array of strings for batch processing.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
nextNoCursor for the next page of results. Do NOT include for the first request.
limitNoMax results per page (1-100,000). Default: 10,000.
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or URL.
order_byNoSort field: 'date_found' (most recent), 'first.domain_inlink_rank', or 'first.inlink_rank'.date_found
per_domainNoNumber of backlinks per referring domain to return. If omitted, returns all.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. 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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
limitNoMax results to return (1–10,000). Default: 100.
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or full URL.
order_byNoSort field: 'date_found' (most recent first), 'domain_inlink_rank' (highest first), or 'inlink_rank' (homepage IR highest first).date_found

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope of analysis: 'domain' (*.example.com/* incl. subdomains), 'host' (www.example.com/* only), or 'url' (single URL). Default: host.host
outputNoResponse format. Default: json.json
targetYesSingle target or an array of targets (root domain, host, or full URL). When omitted, it defaults to [domain, competitor] if both are provided.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of pages to return in the list.
offsetNoStarting position for the list of pages.
audit_idYesUnique identifier of the audit report.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
targetYesAim of the request: only full page URL is supported.
date_toNoEnd date in YYYY-MM-DD format (inclusive range).
date_fromNoStart date in YYYY-MM-DD format (inclusive range).

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
targetYesAim of the request: root domain, host, or URL.
histogramModeNoMode of aggregation: domain (unique domains) or host (unique hosts).host

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoThe ending year and month for the data retrieval period, formatted as “YYYY-MM”.
fromNoThe starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”).
pageNoFor paginated results, specifies the page number of domains advertising on this keyword to retrieve.
limitNoThe maximum number of domains (advertising on the keyword) to return per page.
domainYesThe specific domain for which to retrieve its paid ad data.
sourceYesAlpha-2 country code of the regional keyword database.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents 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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoThe ending year and month for the data retrieval period, formatted as “YYYY-MM”.
fromNoThe starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”).
pageNoFor paginated results, specifies the page number of domains advertising on this keyword to retrieve.
limitNoThe maximum number of domains (advertising on the keyword) to return per page.
sourceYesAlpha-2 country code of the regional keyword database.
keywordYesThe specific keyword for which to retrieve paid ad data.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesAim of the request: root domain, host, or URL.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
targetYesAim of the request: domain, host, or URL.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesDomain, host, or URL (PLD is extracted).
date_toNoEnd date in YYYY-MM-DD format.
date_fromNoStart date in YYYY-MM-DD format.
granularityNoGranularity at which to return data: by_day, by_week, or by_month.by_day

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoSpecifies whether to find competitors in organic search results or paid search (advertising).organic
statsNoA flag to control the level of detail in the response. If set to “1”, additional statistical parameters are returned for each competitor.
domainYesThe primary domain for which to find competitors.
sourceYesAlpha-2 country code of the regional keyword database.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoExact URL for which to retrieve keyword rankings.
colsNoA comma-separated list of specific response parameter names to include in the output. If omitted, a default set of relevant columns is returned.
pageNoFor paginated results, specifies the page number to retrieve.
typeNoSpecifies whether to retrieve keywords for organic search traffic or paid search (advertising) traffic.organic
limitNoThe maximum number of keywords to return per page.
domainYesThe domain name for which to retrieve keywords.
sourceYesAlpha-2 country code of the regional keyword database.
filter_urlNoJSON string to filter keywords by ranking URL.
order_typeNoThe order of sorting.desc
pos_changeNoFilters keywords based on changes in their ranking positions compared to the previous period.
order_fieldNoThe field by which the returned keyword list should be sorted.traffic
filter_cpc_toNoSpecifies the maximum Cost Per Click (CPC) value for keywords.
filter_intentsNoA comma-separated list of search intent codes to filter keywords.
filter_keywordNoJSON string specifying keyword text to match.
filter_cpc_fromNoSpecifies the minimum Cost Per Click (CPC) value for keywords.
filter_price_toNoMaximum keyword price value.
with_subdomainsNoIf set to true, includes keywords ranking for the specified domain or URL and all its subdomains.
filter_volume_toNoSpecifies the maximum monthly search volume for keywords to be included.
filter_price_fromNoMinimum keyword price value.
filter_traffic_toNoSpecifies the maximum estimated monthly traffic for keywords.
filter_position_toNoSpecifies the maximum ranking position for keywords.
filter_volume_fromNoSpecifies the minimum monthly search volume for keywords to be included.
filter_traffic_fromNoSpecifies the minimum estimated monthly traffic for keywords.
filter_difficulty_toNoSpecifies the maximum keyword difficulty score for keywords to be included.
filter_position_fromNoSpecifies the minimum ranking position for keywords.
filter_serp_featuresNoComma-separated list of SERP feature codes to include (e.g., featured_snippet,local_pack,sitelinks).
filter_competition_toNoSpecifies the maximum competition score for keywords.
filter_difficulty_fromNoSpecifies the minimum keyword difficulty score (typically 0-100) for keywords to be included.
filter_competition_fromNoSpecifies the minimum competition score (typically 0-1 or 0-100, depending on the metric scale) for keywords.
filter_keyword_count_toNoSpecifies the maximum number of words in a keyword phrase.
filter_keyword_count_fromNoSpecifies the minimum number of words in a keyword phrase.
filter_traffic_percent_toNoMaximum traffic share percentage for keywords.
filter_characters_count_toNoSpecifies the maximum character length for keyword phrases.
filter_traffic_percent_fromNoMinimum traffic share percentage for keywords.
filter_characters_count_fromNoSpecifies the minimum character length for keyword phrases.
filter_multi_keyword_excludedNoJSON string specifying keyword text that must be excluded.
filter_multi_keyword_includedNoJSON string specifying keyword text that must be included.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool retrieves keywords 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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe primary full URL for the analysis. If provided, `domain` is ignored. Required if `domain` is not provided.
colsNoA 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.
diffNoControls 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.
pageNoFor paginated results, specifies the page number of keywords to retrieve.
typeNoSpecifies whether to compare keywords based on organic search traffic or paid search (advertising) traffic.organic
limitNoThe maximum number of keywords to return per page.
domainNoThe 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.
sourceYesAlpha-2 country code of the regional keyword database.
compareYesThe 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_typeNoSpecifies the sort order for the results.asc
order_fieldNoSpecifies the field by which to sort the results.keyword

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSpecific URL to analyze instead of the root domain. If provided, the domain parameter is ignored.
domainYesThe domain for which to retrieve the keyword statistics.
sourceYesAlpha-2 country code of the regional keyword database.
with_subdomainsNoA flag to determine whether data for subdomains should be included in the analysis.

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral 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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSpecific URL to analyze instead of the root domain. If provided, the domain parameter is ignored.
typeNoSpecifies whether to retrieve historical data for organic search traffic or paid search (advertising) traffic.organic
domainYesThe domain name for which to retrieve historical performance data.
sourceYesAlpha-2 country code of the regional keyword database.
with_subdomainsNoA flag to determine whether data for subdomains should be included in the analysis.

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain name for which to retrieve worldwide statistics.
fieldsNoA 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
currencyNoAn ISO 4217 currency code to be used for any monetary values (like traffic cost) returned in the response.USD
show_zones_listNoA 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

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description 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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFull page URL. Either url or url_id must be provided.
url_idNoUnique identifier of the page. Either url_id or url must be provided.
audit_idYesUnique identifier of the audit.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoThe field by which the returned list of keywords should be sorted.
limitNoMaximum number of keywords to return per page.
offsetNoStarting offset for pagination.
sourceYesAlpha-2 country code of the regional keyword database.
keywordYesThe seed keyword for which to find similar keywords.
sort_orderNoThe order of sorting for the sort field.desc
filter_cpc_toNoMaximum Cost Per Click.
history_trendNoWhether to include historical search volume trend data in the response.
filter_intentsNoComma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local.
filter_cpc_fromNoMinimum Cost Per Click.
filter_volume_toNoMaximum monthly search volume.
filter_volume_fromNoMinimum monthly search volume.
filter_difficulty_toNoMaximum keyword difficulty score (0-100).
filter_serp_featuresNoComma-separated list of SERP features to filter by.
filter_competition_toNoMaximum competition score (0.0-1.0).
filter_difficulty_fromNoMinimum keyword difficulty score (0-100).
filter_competition_fromNoMinimum competition score (0.0-1.0).
filter_keyword_count_toNoMaximum number of words in the keyword.
filter_keyword_count_fromNoMinimum number of words in the keyword.
filter_characters_count_toNoMaximum character length of the keyword.
filter_characters_count_fromNoMinimum character length of the keyword.
filter_multi_keyword_excludedNoComma-separated list of words that must NOT appear in the keyword.
filter_multi_keyword_includedNoComma-separated list of words that MUST appear in the keyword (AND logic).

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoThe field by which the returned list of keywords should be sorted.
limitNoMaximum number of keywords to return per page.
offsetNoStarting offset for pagination.
sourceYesAlpha-2 country code of the regional keyword database.
keywordYesThe seed keyword for which to find similar keywords.
sort_orderNoThe order of sorting for the sort field.
filter_cpc_toNoMaximum Cost Per Click.
filter_intentsNoComma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local.
filter_cpc_fromNoMinimum Cost Per Click.
filter_volume_toNoMaximum monthly search volume.
filter_volume_fromNoMinimum monthly search volume.
filter_difficulty_toNoMaximum keyword difficulty score (0-100).
filter_serp_featuresNoComma-separated list of SERP features to filter by.
filter_competition_toNoMaximum competition score (0.0-1.0).
filter_difficulty_fromNoMinimum keyword difficulty score (0-100).
filter_competition_fromNoMinimum competition score (0.0-1.0).
filter_keyword_count_toNoMaximum number of words in the keyword.
filter_keyword_count_fromNoMinimum number of words in the keyword.
filter_characters_count_toNoMaximum character length of the keyword.
filter_characters_count_fromNoMinimum character length of the keyword.
filter_multi_keyword_excludedNoComma-separated list of words that must NOT appear in the keyword.
filter_multi_keyword_includedNoComma-separated list of words that MUST appear in the keyword (AND logic).

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or URL.
date_toNoEnd date in YYYY-MM-DD format (inclusive). Default: today.
dofollowNoAttribute: 'dofollow', 'nofollow', 'undefined', or empty (all).
url_fromNoFilter by referring page URL (domain/subdomain).
date_fromNoStart date in YYYY-MM-DD format (inclusive). Default: yesterday.
link_typeNoType: 'href', 'redirect', or empty (all).
anchor_typeNoAnchor type: 'text', 'image', 'undefined', or empty (all).
new_lost_typeNoIndicates whether to count 'new', 'lost', or both (empty).

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
targetYesAim of the request: root domain, host, or URL.
date_toNoEnd date in YYYY-MM-DD format.
date_fromNoStart date in YYYY-MM-DD format.
new_lost_typeNoIndicates whether the count of new or lost refdomain should be returned. Empty returns both.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesAim of the request: root domain, host, or URL.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesAim of the request: only full page URL is supported.
date_toNoEnd date in YYYY-MM-DD format.
date_fromNoStart date in YYYY-MM-DD format.
granularityNoGranularity at which to return data.by_day

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
limitNo
targetYesAim of the request: root domain, host, or URL.
order_byNobacklinks

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
targetYesAim of the request: root domain, host, or URL. Use array for batching multiple targets via POST.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
targetYesAim of the request: root domain, host, or URL.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden. 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoThe field by which the returned list of keywords should be sorted.
limitNoMaximum number of keywords to return per page.
offsetNoStarting offset for pagination.
sourceYesAlpha-2 country code of the regional keyword database.
keywordYesThe seed keyword for which to find similar keywords.
sort_orderNoThe order of sorting for the sort field.desc
filter_cpc_toNoMaximum Cost Per Click.
history_trendNoWhether to include historical search volume trend data in the response.
filter_intentsNoComma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local.
filter_cpc_fromNoMinimum Cost Per Click.
filter_volume_toNoMaximum monthly search volume.
filter_volume_fromNoMinimum monthly search volume.
filter_difficulty_toNoMaximum keyword difficulty score (0-100).
filter_serp_featuresNoComma-separated list of SERP features to filter by.
filter_competition_toNoMaximum competition score (0.0-1.0).
filter_difficulty_fromNoMinimum keyword difficulty score (0-100).
filter_competition_fromNoMinimum competition score (0.0-1.0).
filter_keyword_count_toNoMaximum number of words in the keyword.
filter_keyword_count_fromNoMinimum number of words in the keyword.
filter_characters_count_toNoMaximum character length of the keyword.
filter_characters_count_fromNoMinimum character length of the keyword.
filter_multi_keyword_excludedNoComma-separated list of words that must NOT appear in the keyword.
filter_multi_keyword_includedNoComma-separated list of words that MUST appear in the keyword (AND logic).

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe unique ID of the query task from the Add SERP tasks method.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesQuery
country_codeYesAlpha-2 country code for the regional prompt database (e.g., us for United States results).

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoTag
queryYesList of queries
deviceNoDevice typedesktop
location_idYesLocation ID from SERP locations method
max_wait_msNoMaximum wait time in milliseconds (default: 300000 = 5 minutes)
result_typeNoResult type: 'standard' for organic/ads/featured_snippet, 'advanced' for all SERP types (costs 10 credits)standard
language_codeYesLanguage code
search_engineNoSearch enginegoogle
poll_interval_msNoPolling interval in milliseconds (default: 5000)

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe unique ID of the query task from the Add SERP tasks method.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe unique ID of the query task from the Add SERP tasks method.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoThe field by which the returned list of keywords should be sorted.
limitNoMaximum number of keywords to return per page.
offsetNoStarting offset for pagination.
sourceYesAlpha-2 country code of the regional keyword database.
keywordYesThe seed keyword for which to find similar keywords.
sort_orderNoThe order of sorting for the sort field.desc
filter_cpc_toNoMaximum Cost Per Click.
history_trendNoWhether to include historical search volume trend data in the response.
filter_intentsNoComma-separated list of search intent codes: I=Informational, N=Navigational, T=Transactional, C=Commercial, L=Local.
filter_cpc_fromNoMinimum Cost Per Click.
filter_volume_toNoMaximum monthly search volume.
filter_volume_fromNoMinimum monthly search volume.
filter_difficulty_toNoMaximum keyword difficulty score (0-100).
filter_serp_featuresNoComma-separated list of SERP features to filter by.
filter_competition_toNoMaximum competition score (0.0-1.0).
filter_difficulty_fromNoMinimum keyword difficulty score (0-100).
filter_competition_fromNoMinimum competition score (0.0-1.0).
filter_keyword_count_toNoMaximum number of words in the keyword.
filter_keyword_count_fromNoMinimum number of words in the keyword.
filter_characters_count_toNoMaximum character length of the keyword.
filter_characters_count_fromNoMinimum character length of the keyword.
filter_multi_keyword_excludedNoComma-separated list of words that must NOT appear in the keyword.
filter_multi_keyword_includedNoComma-separated list of words that MUST appear in the keyword (AND logic).

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScope: 'domain' (incl. subdomains), 'host' (no subdomains), or 'url' (single URL). Default: host.host
outputNoResponse format. Default: json.json
targetYesTarget to analyze: root domain, host (subdomain), or URL. Can be a single string or an array.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of audits to return in the list.
offsetNoStarting position (offset) for the list of audits.
searchNoFilters the list by a search term matching the audit’s title or URL.
date_endNoEnd date for filtering audits (YYYY-MM-DD).
date_startNoStart date for filtering audits (YYYY-MM-DD).

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohost
limitNo
targetYesAim of the request: root domain, host, or URL.
date_toNoEnd date in YYYY-MM-DD format.
order_byNonew_lost_date
date_fromNoStart date in YYYY-MM-DD format.
new_lost_typeNoIndicates whether the refdomain is new or lost. Empty returns both.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesType of the audit to recheck (Standard or Advanced).
audit_idYesUnique identifier of the audit to recheck.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesNew title for the audit report.
audit_idYesUnique identifier of the audit to update.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesCompetitor website URL
nameNoCompetitor website name (if not specified, the URL will be used)
site_idYesUnique project ID
subdomain_matchNoTake subdomains into account (1 – yes , 0 – no)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID
keywordsYesList of keywords to add

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneNoCompany phone number for Google Maps SERPs
site_idYesUnique website ID
lang_codeNoLanguage code
merge_mapNoTake Google Maps SERPs into account. 0 – don’t take into account, 1 – take into account, 2 – take into account and display separately.
region_idNoRegion ID (refer to getSerpLocations)
region_nameNoGeographical name (region / city) in English. Only for Google
paid_resultsNoTrack rankings in Google Ads (1 – yes, 0 – no)
business_nameNoBusiness name for Google Maps SERPs
featured_snippetNoTake Featured snippet into account (1 – take into account, 0 – don’t take into account)
search_engine_idYesSearch engine ID (refer to getAvailableSearchEngines)

TDQS

C2.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the project keyword group to be added
site_idYesID of the project to which a keyword group will be added

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesWebsite URL
depthNoRanking position collection depth (100, 200), 100 by default
titleYesProject name
check_dayNoDay of week (1-7) for weekly checks, or day of month (1-31) for monthly checks
exact_urlNoExact URL? (0 or 1), 0 by default
is_activeNoProject status 1 – active, 0 – delayed
check_freqNoPosition check frequency ('check_daily','check_1in3','check_weekly', 'check_monthly', 'manual'), check_daily set by default
auto_reportsNoWeekly report? (0 or 1), 1 by default
disable_auditNo0 by default, 1 if you want to skip website audit
site_group_idNoID of the group where a new project will be added
subdomain_matchNoTake subdomains in SERPs into account? (0 or 1), 0 by default

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the project group to be added

TDQS

C2.3/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
competitor_idYesIncorrect competitor id

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesID of the keyword group to delete

TDQS

C2.5/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID
keywords_idsYesIDs of keywords to delete

TDQS

C2.7/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

The input schema has 100% description coverage, so the baseline is 3. The description adds 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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique site ID to delete

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesID of the project group to delete

TDQS

C2.5/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

Given the lack of annotations and output schema, the description 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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID
site_engine_idYesUnique search engine ID within the project to delete

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNoEnd date (YYYY-MM-DD)
site_idYesUnique website ID
date_fromNoStart date (YYYY-MM-DD)
keywords_idsNoFilter by keyword IDs
site_engine_idsNoFilter by search engine IDs

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate when the list of sites from the TOP 10 was received (yyyy-mm-dd)
tagsNoArray of tags
site_idYesUnique project ID
group_idNoKeyword group ID. If not specified, data for all keyword groups will be returned.
site_engine_idYesThe ID of the search_engine specified in the project

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNoTime period end date (yyyy-mm-dd)
date_fromNoTime period start date (yyyy-mm-dd)
competitor_idYesCompetitor ID
site_engine_idNoSearch engine ID. If not specified, data for all search engines will be returned.
with_serp_featuresNoGoogle SERP features found in keyword search results

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate of getting a list of sites from the TOP 10 (yyyy-mm-dd)
site_idYesUnique project ID
keyword_idYesThe ID of the query added to the project
site_engine_idYesThe ID of the search_engine specified in the project

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMaximum position (0..100)
dateYesDate (yyyy-mm-dd)
site_idYesUnique project ID
keyword_idYesThe ID of the keyword added to the project
site_engine_idYesSearch engine ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID
site_engine_idYesSearch engine ID filter

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
in_topNoFilter by top position (e.g. 10 for TOP 10)
date_toNoEnd date (YYYY-MM-DD)
site_idYesUnique website ID
date_fromNoStart date (YYYY-MM-DD)
site_engine_idNoSearch engine ID filter
with_landing_pagesNoInclude URL info (1)
with_serp_featuresNoInclude SERP features (1)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique project ID

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesID of the project

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID
site_engine_idNoSearch engine ID (optional). If passed, first_check_date will be returned.

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.1/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.5/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesWebsite ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesID of the destination keyword group
keywords_idsYesArray of the IDs of keywords to be transferred

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesID of the destination project group
site_idsYesArray of website IDs to transfer

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_idYesUnique website ID
keywordsNoArray of specific keywords to check. If provided, site_engine_id param is ignored.
site_engine_idNoUnique project search engine ID. Run check for this search engine.

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate for the position (YYYY-MM-DD)
site_idYesUnique website ID
positionYesPosition from 0 to 200 (0 means not found)
keyword_idYesUnique keyword ID
site_engine_idYesProject search engine ID

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew keyword group name
group_idYesID of the keyword group to update

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoWebsite URL
depthNoRanking position collection depth
titleNoProject name
site_idYesUnique site ID
check_dayNoDay of week (1-7) or day of month (1-31)
exact_urlNoExact URL?
is_activeNoProject status 1 – active, 0 – delayed
check_freqNo
site_group_idNoID of the group
subdomain_matchNoTake subdomains in SERPs into account

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew project group name
group_idYesID of the project group to rename

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneNoCompany phone number for Google Maps SERPs
site_idYesUnique website ID
lang_codeNoLanguage code
merge_mapNoTake Google Maps SERPs into account. 0 – don’t take into account, 1 – take into account, 2 – take into account and display separately.
region_idNoRegion ID (refer to getSerpLocations)
region_nameNoGeographical name (region / city) in English. Only for Google
paid_resultsNoTrack rankings in Google Ads (1 – yes, 0 – no)
business_nameNoBusiness name for Google Maps SERPs
site_engine_idYesUnique search engine ID within the project (not global ID)
featured_snippetNoTake Featured snippet into account (1 – take into account, 0 – don’t take into account)

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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.

  1. 100 tool updatesv1.0.0
    • First observedDATA_createAdvancedAudit
    • First observedDATA_createStandardAudit
    • First observedDATA_deleteAudit
    • First observedDATA_exportBacklinksData
    • First observedDATA_exportKeywords
    • First observedDATA_getAiDiscoverBrand
    • First observedDATA_getAiOverview
    • First observedDATA_getAiOverviewLeaderboard
    • First observedDATA_getAiPromptsByBrand
    • First observedDATA_getAiPromptsByTarget
    • First observedDATA_getAllBacklinks
    • First observedDATA_getAuditHistory
    • First observedDATA_getAuditPagesByIssue
    • First observedDATA_getAuditReport
    • First observedDATA_getAuditStatus
    • First observedDATA_getBacklinksAnchors
    • First observedDATA_getBacklinksAuthority
    • First observedDATA_getBacklinksCount
    • First observedDATA_getBacklinksExportStatus
    • First observedDATA_getBacklinksIndexedPages
    • First observedDATA_getBacklinksMetrics
    • First observedDATA_getBacklinksRaw
    • First observedDATA_getBacklinksRefDomains
    • First observedDATA_getBacklinksSummary
    • First observedDATA_getCrawledPages
    • First observedDATA_getCumulativeBacklinksHistory
    • First observedDATA_getDistributionOfDomainAuthority
    • First observedDATA_getDomainAdsByDomain
    • First observedDATA_getDomainAdsByKeyword
    • First observedDATA_getDomainAuthority
    • First observedDATA_getDomainAuthorityHistogram
    • First observedDATA_getDomainAuthorityHistory
    • First observedDATA_getDomainCompetitors
    • First observedDATA_getDomainKeywords
    • First observedDATA_getDomainKeywordsComparison
    • First observedDATA_getDomainOverviewDatabases
    • First observedDATA_getDomainOverviewHistory
    • First observedDATA_getDomainOverviewWorldwide
    • First observedDATA_getFoundLinks
    • First observedDATA_getIssuesByUrl
    • First observedDATA_getKeywordQuestions
    • First observedDATA_getLongTailKeywords
    • First observedDATA_getNewLostBacklinksCount
    • First observedDATA_getNewLostRefDomainsCount
    • First observedDATA_getPageAuthority
    • First observedDATA_getPageAuthorityHistory
    • First observedDATA_getReferringIps
    • First observedDATA_getReferringIpsCount
    • First observedDATA_getReferringSubnetsCount
    • First observedDATA_getRelatedKeywords
    • First observedDATA_getSerpHtmlDump
    • First observedDATA_getSerpLocations
    • First observedDATA_getSerpResults
    • First observedDATA_getSerpTaskAdvancedResults
    • First observedDATA_getSerpTaskResults
    • First observedDATA_getSerpTasks
    • First observedDATA_getSimilarKeywords
    • First observedDATA_getTotalRefDomainsCount
    • First observedDATA_listAudits
    • First observedDATA_listNewLostBacklinks
    • First observedDATA_listNewLostReferringDomains
    • First observedDATA_recheckAudit
    • First observedDATA_updateAuditTitle
    • First observedPROJECT_addCompetitor
    • First observedPROJECT_addKeywords
    • First observedPROJECT_addSearchEngine
    • First observedPROJECT_createKeywordGroup
    • First observedPROJECT_createProject
    • First observedPROJECT_createProjectGroup
    • First observedPROJECT_deleteCompetitor
    • First observedPROJECT_deleteKeywordGroup
    • First observedPROJECT_deleteKeywords
    • First observedPROJECT_deleteProject
    • First observedPROJECT_deleteProjectGroup
    • First observedPROJECT_deleteSearchEngine
    • First observedPROJECT_getAdsStats
    • First observedPROJECT_getAllCompetitorsMetrics
    • First observedPROJECT_getAvailableRegions
    • First observedPROJECT_getAvailableSearchEngines
    • First observedPROJECT_getCompetitorPositions
    • First observedPROJECT_getCompetitorTop10
    • First observedPROJECT_getCompetitorTop100
    • First observedPROJECT_getHistoricalDates
    • First observedPROJECT_getKeywordStats
    • First observedPROJECT_getSearchEngines
    • First observedPROJECT_getSummary
    • First observedPROJECT_listCompetitors
    • First observedPROJECT_listKeywordGroups
    • First observedPROJECT_listKeywords
    • First observedPROJECT_listProjectGroups
    • First observedPROJECT_listProjects
    • First observedPROJECT_listTags
    • First observedPROJECT_moveKeywordsToGroup
    • First observedPROJECT_moveProjectsToGroup
    • First observedPROJECT_runPositionCheck
    • First observedPROJECT_setKeywordPosition
    • First observedPROJECT_updateKeywordGroup
    • First observedPROJECT_updateProject
    • First observedPROJECT_updateProjectGroup
    • First observedPROJECT_updateSearchEngine

TDQS

C2.8/5.0

Scored across 100 tools

Disambiguation3/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Provides AI assistants with access to Semrush SEO API functionality including domain analytics, keyword research, backlink analysis, and competitor insights.
    7
    16
    -
  • -
    license
    C
    quality
    Not graded
    maintenance
    Enables 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
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    24
    6 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables to access SE Ranking SEO data through natural language queries, providing keyword analysis, competitor research, and performance tracking.
    28
    1
    Apache 2.0