Serpstat MCP Server
OfficialProvides tools for accessing Google search data, including domain analysis, keyword rankings, and competitor visibility metrics via the Serpstat API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Serpstat MCP Serveranalyze the organic search competitors for shopify.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Serpstat MCP Server
A TypeScript server that integrates Serpstat SEO API with Anthropic's Model Context Protocol (MCP), enabling AI assistants like Claude to access comprehensive SEO data and analysis tools.
Table of Contents
Related MCP server: SE Ranking MCP Server
About MCP
The Model Context Protocol (MCP) is an open standard developed by Anthropic that enables AI assistants to securely connect to external data sources and tools. This server implements MCP to provide Claude and other compatible AI assistants with access to Serpstat's powerful SEO analytics API.
Description
This project implements a TypeScript server that provides an API interface for working with Serpstat tools via the MCP protocol. The server supports request handling, parameter validation, logging, and working with multiple SEO analysis tools.
Features
๐ Comprehensive SEO Analysis: Access domain info, keyword research, competitor analysis, and backlink data
โ Input Validation: Robust parameter validation using Zod schemas
๐ Event Logging: Detailed logging with Winston for debugging and monitoring
โ๏ธ Flexible Configuration: Environment-based configuration with sensible defaults
๐งช Well Tested: Jest tests for parameter validation and business logic
๐ TypeScript: Full type safety throughout the codebase
Prerequisites
Node.js 18.0.0 or higher (Download Node.js)
Valid Serpstat API token (get one from Serpstat)
Compatible AI Assistant: Claude Desktop, Gemini CLI, or any MCP-compatible client
Installation
Global Installation (Recommended)
npm install -g @serpstat/serpstat-mcp-serverLocal Installation
npm install @serpstat/serpstat-mcp-serverConfiguration
Environment Variables
Set the following environment variables (can be in .env file):
SERPSTAT_API_TOKENโ Your Serpstat API token (required)SERPSTAT_API_URLโ Serpstat API URL (default: https://api.serpstat.com/v4)LOG_LEVELโ Logging level: error, warn, info, debug (default: info)SERPSTAT_ENABLED_CATEGORIESโ Filter tools by categories (optional, comma-separated, default: all categories enabled)
Claude Desktop & Gemini CLI Configuration
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Add to your Gemini CLI config:
Linux: ~/.gemini/settings.json
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE",
"LANG": "en_US.UTF-8",
"LC_ALL": "en_US.UTF-8"
}
}
}
}For local development, use the full path:
{
"mcpServers": {
"serpstat": {
"command": "node",
"args": ["/path/to/node_modules/serpstat-mcp-server/dist/index.js"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE"
}
}
}
}Filtering Tools by Category
You can limit which tools are available by specifying SERPSTAT_ENABLED_CATEGORIES environment variable. This is useful for:
Reducing context window usage in AI assistants
Focusing on specific SEO analysis areas
Creating specialized configurations for different use cases
Available categories:
domain- Domain analysis tools (domain info, competitors, domain keywords, etc.)keywords- Keyword research tools (keyword suggestions, search volume, difficulty, etc.)backlinks- Backlink analysis tools (backlink summary, anchors, referring domains, etc.)url- URL analysis tools (URL traffic, competitors, keywords, etc.)projects- Project management tools (create, list, delete projects)credits- Credits and usage monitoring toolsrt- Rank tracking tools (rank history, SERP tracking, etc.)audit- Site audit tools (full site SEO audit, error reports, etc.)page-audit- One-page audit tools (single page analysis, on-page SEO, etc.)
Example: Enable only keyword and domain tools
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE",
"SERPSTAT_ENABLED_CATEGORIES": "keywords,domain"
}
}
}
}Example: Enable only backlink analysis
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_SERPSTAT_API_TOKEN_HERE",
"SERPSTAT_ENABLED_CATEGORIES": "backlinks"
}
}
}
}Default behavior (all tools enabled):
If SERPSTAT_ENABLED_CATEGORIES is not specified or is empty, all tools are available (65 total tools across all categories).
Usage Examples
After installation and configuration in Claude Desktop, you can ask Claude:
Domain Analysis
"Show me domain info for example.com"
"Find competitors for my-site.com in Google US"
"Get top 50 keywords that example.com ranks for"
Market Research
"Show me all available market research categories"
"Find top domains in 'E-commerce' category for Google US"
"Get top 20 domains in '/Arts & Entertainment/TV & Video' category sorted by traffic"
"Analyze competitive landscape in 'Business & Industrial' category with domains that have SDR above 50"
"Find leading players in 'Health & Fitness' market with minimum 100k monthly traffic"
Keyword Research
"Find related keywords to 'digital marketing'"
"Get keyword suggestions for 'iphone 15' excluding 'rent' keywords"
"Get comprehensive keyword data for [
iphone,samsung,googel pixel] including search volume, CPC, and difficulty"
Competitor Analysis
"Show me competitor domains ranking for
pizza deliverykeyword with visibility metrics""Get top search results for
laptop computerskeyword showing positions, domains and SERP features""Get unique keywords for domain1.com vs domain2.com"
Backlink Analysis
"Analyze backlinks summary for domain.com"
"Get anchor text analysis for domain.com backlinks"
"Get active backlinks for domain.com showing linking pages and target URLs"
"Get referring domains for domain.com with domain authority metrics"
"Get lost backlinks for domain.com showing removed links and deletion dates"
"Get top 10 anchors for domain.com with backlink counts and referring domains"
"Get backlinks intersection for domain.com vs competitor1.com and competitor2.com showing shared referring domains"
"Get threat backlinks for domain.com showing malicious links from sites flagged for security threats"
Project Management
"Create a new project for example.com named My SEO Project"
"List all my projects with pagination"
"Delete project with ID 1234567"
Credits & Usage Monitoring
"Show me my audit credits statistics"
"Check my API credits usage and remaining quota"
Rank Tracking
"List all my rank tracker projects"
"Check parsing status for project 12345 in region 2840"
Site Audit
"Get audit settings for project 1113915"
"Start site audit for project 1113915"
"Stop site audit for project 1113915"
MCP Tools
Domain Analysis Tools
Tool Name | Description | Key Parameters |
get_domains_info | Get SEO information for multiple domains | domains, se, filters |
get_domain_competitors | Get list of competitor domains | domain, se, size, filters |
get_domain_keywords | Get keywords that domain ranks for | domain, se, page, size |
get_domain_urls | Get URLs within a domain and their keyword counts | domain, se, page, size |
get_domain_regions_count | Get keyword count by region for a domain | domain, sort, order |
get_domain_uniq_keywords | Get unique keywords for two domains not ranked by a third domain | se, domains, minusDomain |
get_market_categories | Get complete list of 1000+ market research categories | none |
get_category_top_domains | Get top-performing domains in a specific market category with SEO metrics | category_id, se, filters, sort, page, size |
Keyword Research Tools
Tool Name | Description | Key Parameters |
get_keywords | Get related organic keywords for a given keyword | keyword, se, filters |
get_related_keywords | Get semantically related keywords with frequency, CPC, competition, and difficulty data | keyword, se, filters, sort |
get_keyword_suggestions | Get search suggestions for a keyword using full-text search with geographic names info | keyword, se, filters |
get_keywords_info | Get keyword overview with volume, CPC, competition, difficulty, and SERP features | keywords, se, withIntents |
get_keyword_full_top | Get Google's top-100 search results for analyzed keywords | keyword, se, size |
get_keyword_top_urls | Get website pages that rank for the largest amount of analyzed keyword variations | keyword, se, page, page_size |
get_keyword_competitors | Get domains that rank for the given keyword in Google top-20 results with competitor analysis | keyword, se, filters, sort |
get_keyword_top | Get Google's top-100 search results for the analyzed keyword with position, URL, and SERP features | keyword, se, filters, size |
URL Analysis Tools
Tool Name | Description | Key Parameters |
get_url_summary_traff | Get traffic and keyword statistics for website pages matching a specific URL mask | se, domain, urlContains |
get_url_competitors | Get list of URL competitors showing domains competing for same keywords in top-10 results | se, url, sort, page |
get_url_keywords | Get keywords for which specified URL ranks in top-100 Google and top-50 Bing search results | se, url, filters, sort |
get_url_missing_keywords | Get keywords that competitors rank for but the given URL does not, identifying keyword gaps | url, se, filters, sort |
Backlinks Analysis Tools
Tool Name | Description | Key Parameters |
get_backlinks_summary | Get comprehensive backlinks summary with referring domains, quality metrics, and changes | domain, subdomain |
get_anchors | Get anchor text analysis for backlinks with metrics on referring domains and backlinks | query, searchType, anchor, sort |
get_active_backlinks | Get a list of active backlinks showing linking pages, target pages, and link attributes | query, searchType, sort, page |
get_referring_domains | Get a list of referring domains with domain rank metrics and referring pages count | query, searchType, sort, page |
get_lost_backlinks | Get a list of lost backlinks showing linking pages, target pages, and deletion dates | query, searchType, sort, page |
get_top_pages_by_backlinks | Get a list of top pages by backlinks with various filtering and sorting parameters | query, searchType, sort, size |
get_top10_anchors | Get TOP-10 anchors with the number of backlinks and referring domains | query, searchType |
get_backlinks_intersection | Get backlinks from domains that link to multiple analyzed sites for competitive analysis | query, intersect, sort, page |
get_active_outlinks | Get active outbound links from a domain or URL with target URLs and anchor text | query, searchType, sort, filters |
get_active_outlink_domains | Get external domains that receive outbound links from analyzed domain | query, searchType, sort, filters |
get_threat_backlinks | Get malicious backlinks pointing to analyzed domain from sites flagged for security threats | query, searchType, sort, filters |
Project Management Tools
Tool Name | Description | Key Parameters |
create_project | Create a new project in Serpstat for tracking SEO metrics and site audits | domain, name, groups |
delete_project | Delete an existing project from Serpstat by project ID | project_id |
list_projects | Retrieve a list of projects associated with the account with pagination | page, size |
Credits & Usage Monitoring Tools
Tool Name | Description | Key Parameters |
get_credits_for_audit_stats | Check available audit credits (one-page audit, JavaScript scanning, crawl limits) No cost | none |
get_credits_stats | Check API credits usage, account info, and browser plugin limits No cost | none |
Rank Tracking Tools
Tool Name | Description | Key Parameters |
get_rt_projects_list | Get rank tracker projects with ID, name, domain, creation date, and tracking status No cost | page, pageSize |
get_rt_project_status | Check if rank tracker project is parsing (true=processing, false=ready) No cost | projectId, regionId |
get_rt_project_regions_list | Get list of regions for a rank tracker project with status, SERP type, device, and location No cost | projectId |
get_rt_project_keyword_serp_history | Get Google's top-100 SERP history for rank tracker keywords with positions and URLs No cost | projectId, projectRegionId, page |
get_rt_project_url_serp_history | Get ranking history of URLs for rank tracker keywords with historical position data No cost | projectId, projectRegionId, page |
Site Audit Tools
Tool Name | Description | Key Parameters |
get_site_audit_settings | Get audit settings for a project including scan parameters, scheduling, and error thresholds No cost | projectId |
set_site_audit_settings | Update audit settings for a project with scan configuration, scheduling, and notifications No cost | projectId, mainSettings, ... |
start_site_audit | Start audit session for a project and receive reportId for tracking progress (1 credit/page, 10 credits/page with JS rendering) | projectId |
stop_site_audit | Stop active audit session for a project No cost | projectId |
get_site_audit_results_by_categories | Get audit results statistics grouped by issue categories (pages status, meta tags, links, etc.) No cost | reportId |
get_site_audit_history | Get historical error count data for a specific error type across multiple audit reports No cost | projectId, errorName, limit, offset |
get_site_audits_list | Get list of all audit reports for a project with summary statistics and progress information No cost | projectId, limit, offset |
get_site_audit_scanned_urls_list | Get list of URLs that will be scanned based on project scan settings No cost | projectId |
get_site_audit_project_default_settings | Get default audit settings template to use when creating new projects No cost | - |
get_site_audit_bref_info | Get essential summary information from latest audit including SDO score, issue counts by priority, scan progress, and completion status No cost | reportId |
get_site_audit_deteailed_report | Get number of errors categorized by type with comparison to previous report showing countAll, countNew, and countFixed No cost | reportId, compareReportId (optional) |
get_site_audit_pages_spec_errors | Get list of all pages where a specific error was detected with filtering by mode (all/new/solved) and pagination support No cost | reportId, compareReportId, projectId, errorName, mode, limit, offset |
get_site_audit_elements_with_issues | Get list of sub-elements (URLs) containing specific errors using CRC from get_site_audit_pages_spec_errors response No cost | reportId, projectId, errorName, crc, compareReportId (optional), mode, limit, offset |
One Page Audit Tools
Tool Name | Description | Key Parameters |
page_audit_start_scan | Scan a single webpage with JavaScript rendering. Returns pageId and reportId for tracking. Use page_audit_get_reports_for_page to check progress via status and progress fields (10 credits per scan) | name, url, userAgent (recommended: 0 for Chrome), httpAuthLogin (optional), httpAuthPass (optional) |
page_audit_get_last_scans | Get list of all one-page audit projects with pageId, url, name, status, lastActiveReport (latest scan results with SDO score), finishedReportCount, settings No cost | limit (optional, default 30), offset (optional, default 0), teamMemberId (optional) |
page_audit_get_reports_for_page | Get history of all audit reports for a specific page with reportId, auditDate, status (1=in progress, 3=finalizing, 4=completed), SDO score (0-100), error counts, progress (0-100) No cost | pageId, limit (optional), offset (optional) |
page_audit_get_results_report | Get detailed audit results with categories array (errors grouped by meta_tags, headings, content, multimedia, https, pagespeed_desktop/mobile, etc), hasAdditionRows flag for drill-down availability No cost | pageId (from page_audit_get_last_scans or page_audit_start_scan) |
page_audit_rescan | Rescan existing one-page audit project and create new audit report. Returns reportId. Track progress via page_audit_get_reports_for_page (10 credits per rescan) | pageId, name, userAgent (recommended: 0 for Chrome), httpAuthLogin (optional), httpAuthPass (optional) |
page_audit_stop | Stop active one-page audit scan. Returns boolean indicating success No cost | pageId |
page_audit_delete | Remove one-page audit project from customer project list permanently. Returns boolean No cost | pageId |
page_audit_get_report_by_categories | Get audit results by categories for specific report. Use compareReportId to see countNew (errors added) and countFixed (errors resolved) No cost | reportId, compareReportId (optional, enables change tracking) |
page_audit_report_drill_down | Get detailed problematic elements list. ONLY works for errors with hasAdditionRows=true. Response varies by error type (e.g., image URLs for multimedia errors) No cost | reportId, error (must match error.key), mode (all/new/solved, optional), compareReportId (optional), page (optional), size (optional, max 1000) |
page_audit_get_scan_names | Get list of all one-page audit project names with pageId, name, url, finishedReportCount for project discovery No cost | teamMemberId (optional) |
page_audit_scan_logs | Get chronological log of scan events with message (event name), type (info/warning/error), params (event-specific data or []), created_at timestamp for debugging No cost | reportId (optional, all scans if not specified), page (optional, default 0), pageSize (optional, default 100) |
Search Engines (se parameter)
Common search engine codes:
g_us- Google USAg_uk- Google United Kingdomg_ca- Google Canadag_au- Google Australiag_de- Germanyg_fr- Google Franceg_es- Google Spaing_it- Google Italyg_pl- Google Polandg_ua- Google Ukraine
See a full list of Search Engines Short Names
Troubleshooting
Common Issues
"Command not found: serpstat-mcp-server"
Make sure you installed the package globally with
-gflagVerify your PATH includes npm global binaries:
npm config get prefixTry reinstalling:
npm uninstall -g @serpstat/serpstat-mcp-server && npm install -g @serpstat/serpstat-mcp-server
"API token error" or "Unauthorized"
Check that
SERPSTAT_API_TOKENis set correctly in your environmentVerify your token is valid and active in your Serpstat account
Ensure your token has sufficient API credits and permissions
"Module not found" errors
Make sure all dependencies are installed:
npm installTry rebuilding:
npm run clean && npm run build
Claude Desktop doesn't recognize the server
Restart Claude Desktop after configuration changes
Check the config file path and JSON syntax
Verify the server starts correctly: run
serpstat-mcp-serverin terminal
"Can't find npx"
You need to install Node.js - download and install Node.js
Rate limit errors
Most Serpstat plans have 1 RPS (1 request per second) limit
Wait between requests or contact Serpstat support for higher limits
Check your API usage in the Serpstat dashboard
Debug Mode
Enable debug logging by setting:
export LOG_LEVEL=debugOr in your Claude Desktop config:
{
"mcpServers": {
"serpstat": {
"command": "npx",
"args": ["-y", "@serpstat/serpstat-mcp-server"],
"env": {
"SERPSTAT_API_TOKEN": "YOUR_TOKEN_HERE",
"LANG": "en_US.UTF-8",
"LC_ALL": "en_US.UTF-8",
"LOG_LEVEL": "debug"
}
}
}
}Development
Getting Started
Clone the repository:
git clone git@github.com:SerpstatGlobal/serpstat-mcp-server-js.git cd serpstat-mcp-server-jsInstall dependencies:
npm installSet environment variables:
cp .env.example .env # Edit .env with your Serpstat API tokenBuild the project:
npm run buildStart the server:
npm startFor development mode (auto-reload):
npm run dev
Testing
To run tests:
npm testRun specific test file:
npx jest src/__tests__/services/keyword_tools.test.tsRun specific test by name:
npx jest --testNamePattern="methodName"Scripts
npm run buildโ Compile TypeScript sources to JavaScript (output indist/)npm startโ Run the compiled server fromdist/npm run devโ Run the server in development mode with hot-reloadnpm testโ Run all testsnpm run lintโ Run lintingnpm run cleanโ Clean build directory
Project Structure
serpstat-mcp-server/
โโโ src/
โ โโโ index.ts # Entry point
โ โโโ server.ts # Main MCP server
โ โโโ handlers/ # Tool handlers
โ โโโ services/ # Services for Serpstat API
โ โโโ types/ # Data types
โ โโโ utils/ # Utilities (config, logger, validation)
โ โโโ __tests__/ # Tests
โโโ dist/ # Compiled JavaScript (after build)
โโโ package.json
โโโ tsconfig.json
โโโ README.md
โโโ .env.exampleAPI Rate Limits
By default, most Serpstat plans have 1 RPS (1 request per second) - this is sufficient for most tasks. If you need higher throughput, contact Serpstat support to discuss plan upgrades.
Important: The server respects rate limits automatically. If you encounter rate limit errors, wait before making additional requests.
Contributing
We welcome contributions! Please follow these steps:
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureMake your changes
Add tests for new functionality
Ensure tests pass:
npm testCommit your changes:
git commit -m 'Add amazing feature'Push to the branch:
git push origin feature/amazing-featureSubmit a pull request
Development Guidelines
Follow existing code style and TypeScript conventions
Add tests for new features
Update documentation as needed
Use conventional commit messages
Ensure all linting passes:
npm run lint
Changelog
See CHANGELOG.md for details about changes in each version.
Support
๐ Report Issues
The most effective way to receive support from Serpstat is to use their live chat feature directly within the platform. Alternatively, you can email them at support@serpstat.com.
Acknowledgments
Model Context Protocol by Anthropic
Serpstat API for SEO data services
License
MIT License
This project is under MIT license, which means you can copy, use, modify, and even sell any part of this code without any hassle.
See the LICENSE file for details
Want to grab a chunk for your project? Go for it
Want to rewrite half of it and ship a commercial product? Be my guest
The only thing you need to do is not delete the copyright and the license itself from the files you take, and remember the Serpstat team with a kind word when you get that paycheck
With love, Serpstat R&D Team
Available Tools
65 toolscreate_projectC
Create a new project in Serpstat for tracking SEO metrics and site audits
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain associated with the project (e.g., example.com) | |
| name | Yes | The name of the project. Can be the same as the domain or a custom name | |
| groups | No | Optional list of groups to associate with the project. Groups will be created if they don't exist |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Create a new project' which implies a write/mutation operation, but doesn't disclose behavioral traits like required permissions, rate limits, whether creation is idempotent, or what happens on failure. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Create a new project') and purpose. There's zero wasteโevery word contributes to understanding the tool's function. It's appropriately sized for a creation tool with good schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool (creating projects) with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after creation (e.g., returns a project ID, triggers audits), error conditions, or system behavior. For a tool that modifies state, more contextual information is needed beyond the basic purpose statement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter documentation in the schema (domain, name, groups). The description adds no parameter-specific information beyond what's already in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new project') and resource ('in Serpstat'), with specific purpose ('for tracking SEO metrics and site audits'). It distinguishes from siblings like 'list_projects' or 'delete_project' by focusing on creation, though it doesn't explicitly contrast with them. The purpose is specific but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_projects' for viewing existing projects or 'delete_project' for removal. It mentions the general purpose but offers no context about prerequisites, timing, or exclusions. Usage is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectA
Permanently delete your project from Serpstat by project ID. CRITICAL: ALWAYS request explicit user confirmation before executing. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | The unique ID of the project to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the permanence of the action ('permanently delete'), the irreversible nature ('cannot be undone'), and the critical safety requirement ('request explicit user confirmation'). This covers essential aspects like destructiveness and user interaction needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, consisting of two sentences that directly convey the purpose and critical guidelines. Every sentence earns its place: the first states the action and resource, and the second provides essential safety instructions without unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (destructive deletion), lack of annotations, and no output schema, the description is mostly complete. It covers purpose, guidelines, and behavioral transparency effectively. However, it does not mention potential errors (e.g., invalid project ID) or response details, leaving minor gaps in full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'project_id' well-documented as 'The unique ID of the project to delete.' The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('permanently delete'), the resource ('your project from Serpstat'), and the method ('by project ID'). It distinguishes itself from sibling tools like 'create_project' and 'list_projects' by focusing on deletion rather than creation or listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidelines with the critical instruction: 'ALWAYS request explicit user confirmation before executing.' It also warns 'This action cannot be undone,' which implicitly guides when not to use it (e.g., without confirmation or for reversible actions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_backlinksC
Get a list of active backlinks using Serpstat API. Returns linking pages, target pages, link attributes, link types, external links count, anchor text, and discovery dates for domain or URL analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain, subdomain, or URL to analyze | |
| searchType | No | Type of search query (domain, domain_with_subdomains, url, part_url) | domain |
| sort | No | Sort results by field (url_from, anchor, link_nofollow, links_external, link_type, url_to, check, add, domain_rank) | check |
| order | No | Sort order (asc, desc) | |
| linkPerDomain | No | Use this parameter **ONLY** if you need one link per donor domain | |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API source (Serpstat) and the type of data returned, but lacks critical details such as whether this is a read-only operation, rate limits, authentication requirements, pagination behavior beyond the schema, or what 'active' means operationally. The description is insufficient for a tool with 7 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the action and data returned, the second adds context for analysis. It's front-loaded with the core purpose and avoids unnecessary verbiage, though it could be slightly more concise by integrating the analysis context into the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return format, error conditions, or how to interpret results like 'link attributes' or 'discovery dates'. For a data retrieval tool with rich parameters, more behavioral and output context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by implying domain/URL analysis context, but doesn't explain parameter interactions (e.g., how 'searchType' affects 'query' interpretation) or provide usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a list of active backlinks using Serpstat API' with specific details about what data is returned (linking pages, target pages, link attributes, etc.). It distinguishes from siblings like 'get_lost_backlinks' or 'get_threat_backlinks' by specifying 'active' backlinks, though it doesn't explicitly contrast with all similar tools like 'get_backlinks_summary'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'get_backlinks_summary', 'get_lost_backlinks', or other backlink-related tools, nor does it specify any prerequisites or contextual constraints for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_outlink_domainsA
Get external domains that receive outbound links from the analyzed domain. Returns target domains with total link counts, revealing partnership networks, referenced sources, and linking patterns. Helps identify collaboration opportunities by analyzing which domains competitors link to.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain name to analyze outbound link destinations | |
| searchType | Yes | Search type for analysis | domain |
| sort | No | Field to sort results by | domain_rank |
| order | No | Sort order | desc |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's output ('Returns target domains with total link counts') and high-level purpose, but lacks details about potential rate limits, authentication requirements, error conditions, or pagination behavior (though pagination parameters exist in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the core functionality and output, the second explains the value and use cases. Every phrase adds meaningful information with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with 6 parameters and no output schema, the description adequately covers the purpose and value, but could benefit from more behavioral details (like pagination handling or performance characteristics) since annotations are absent. The high schema coverage helps, but the description doesn't fully compensate for the lack of output schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 six parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, but it does provide context about what the analysis reveals, which helps understand the overall purpose of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get external domains that receive outbound links') and resources ('from the analyzed domain'), distinguishing it from sibling tools like 'get_active_backlinks' (which likely analyzes inbound links) and 'get_active_outlinks' (which might return individual links rather than aggregated domains).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('revealing partnership networks, referenced sources, and linking patterns' and 'Helps identify collaboration opportunities by analyzing which domains competitors link to'), but it doesn't explicitly mention when not to use it or name specific alternative tools among the many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_outlinksA
Get active outbound links from a domain or URL. Returns external links the site points to, including target URLs, anchor text, link attributes (nofollow/dofollow), link types, and discovery dates. Useful for analyzing linking strategies, finding partnership opportunities, and auditing outbound link profiles.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain name or URL to analyze for outbound links | |
| searchType | Yes | Type of search: domain, domain_with_subdomains, url, or part_url | domain |
| sort | No | Field to sort results by | check |
| order | No | Sort order: asc or desc | desc |
| linkPerDomain | No | Maximum number of links to return per domain | |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns (external links with attributes) and its purpose, but doesn't mention rate limits, authentication requirements, pagination behavior beyond what's in the schema, or whether this is a read-only operation. The description adds some value but lacks comprehensive behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: the first states the purpose and return values, the second provides use cases. It's front-loaded with essential information and avoids unnecessary repetition. Every sentence adds value, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no output schema, no annotations), the description provides adequate purpose and usage context but lacks details about return format structure, error conditions, or behavioral constraints. It's complete enough for basic understanding but leaves gaps for a tool with this parameter count and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema, but it does provide context about what 'active outbound links' means. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get active outbound links') and resources ('from a domain or URL'), and distinguishes it from siblings like 'get_active_backlinks' by focusing on outbound rather than inbound links. The description explicitly mentions what it returns and its use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Useful for analyzing linking strategies, finding partnership opportunities, and auditing outbound link profiles'), but doesn't explicitly state when not to use it or name specific alternatives among the many sibling tools. It implies usage for outbound link analysis versus inbound (backlinks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anchorsC
Get anchor text analysis for backlinks using Serpstat API. Returns anchor texts used in backlinks, with metrics including referring domains, total backlinks, and nofollow counts for domain or URL analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain, subdomain, or URL to analyze | |
| searchType | Yes | Type of search query | |
| anchor | No | Filter by specific anchor text | |
| count | No | Number of words in anchor text filter | |
| sort | No | Sort results by field (total, refDomains, nofollow, anchor, lastupdate) | lastupdate |
| order | No | Sort order (asc, desc) | desc |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'Returns anchor texts used in backlinks, with metrics including referring domains, total backlinks, and nofollow counts,' which describes output content but lacks critical behavioral details. It doesn't mention rate limits, authentication requirements, pagination behavior (implied by 'page' and 'size' parameters but not explained), error handling, or whether it's a read-only operation. For a tool with 8 parameters and no annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured in two sentences: the first states the purpose and technology, the second details the return metrics. It's front-loaded with the core function and avoids unnecessary fluff. However, it could be slightly more efficient by integrating the technology mention ('using Serpstat API') into the first clause without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, no output schema), the description is incomplete. It covers the basic purpose and output metrics but misses crucial context: no guidance on usage vs. siblings, limited behavioral transparency, and no explanation of how parameters like 'count' or 'sort' affect results. For a data retrieval tool in a crowded namespace of backlink-related tools, this leaves significant gaps for an agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal parameter semantics beyond the input schema. It mentions 'domain or URL analysis' which relates to the 'query' and 'searchType' parameters, and 'anchor text' which relates to the 'anchor' parameter, but doesn't explain how these interact or provide usage examples. With 100% schema description coverage, the schema already documents all parameters thoroughly, so the baseline is 3. The description doesn't compensate with additional insights like parameter interdependencies or practical tips.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get anchor text analysis for backlinks using Serpstat API.' It specifies the action ('Get'), resource ('anchor text analysis for backlinks'), and technology ('Serpstat API'). However, it doesn't explicitly differentiate from sibling tools like 'get_top10_anchors' or 'get_active_backlinks', which appear related to backlink analysis, leaving some ambiguity about when to choose this specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'domain or URL analysis' but doesn't specify scenarios, prerequisites, or comparisons with sibling tools (e.g., 'get_top10_anchors' for top anchors or 'get_active_backlinks' for active backlinks). This lack of context makes it difficult for an agent to select this tool appropriately among many backlink-related options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backlinks_intersectionA
Get backlinks from domains that link to multiple analyzed sites simultaneously. This method reveals shared referring domains between your target domain and competitors, useful for competitive backlink analysis and identifying potential link sources. Returns intersection data showing which donors link to multiple domains in your analysis set, including link metrics, anchor texts, and domain authority scores.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Main domain to analyze for backlinks intersection | |
| intersect | Yes | Array of competitor domains for intersection analysis | |
| sort | No | Field to sort results by (domain_rank, links_count1, links_count2, links_count3) | domain_rank |
| order | No | Sort order: asc or desc | desc |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns ('intersection data showing which donors link to multiple domains... including link metrics, anchor texts, and domain authority scores'), which is helpful. However, it lacks details on rate limits, authentication needs, error conditions, or pagination behavior beyond what the schema implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: the first states the purpose, the second explains the use case, and the third details the return data. Each sentence adds value with zero waste, making it front-loaded and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, no output schema, no annotations), the description is reasonably complete. It covers purpose, usage context, and return data, though it could benefit from more behavioral details like pagination handling or error scenarios. The absence of an output schema makes the return description valuable, but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds no specific parameter semantics beyond implying that 'query' is the main domain and 'intersect' are competitors, which is already clear from the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get backlinks from domains that link to multiple analyzed sites simultaneously.' It specifies the verb ('Get backlinks'), resource ('domains'), and scope ('intersection analysis'), distinguishing it from sibling tools like 'get_active_backlinks' or 'get_referring_domains' that likely handle different backlink queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'useful for competitive backlink analysis and identifying potential link sources.' It implies usage for comparing a target domain with competitors, but does not explicitly state when not to use it or name specific 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.
get_backlinks_summaryC
Get comprehensive backlinks summary using Serpstat API. Returns referring domains, backlinks count, link types, quality metrics and recent changes for domain or subdomain.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain or subdomain to analyze | |
| searchType | No | Type of search query | domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API source (Serpstat) and return data types, but lacks critical details such as rate limits, authentication requirements, pagination, error handling, or whether this is a read-only operation. For a data-fetching tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: one stating the action and API, and another listing return data and scope. It's front-loaded with the core purpose and avoids unnecessary details, though it could be slightly more polished (e.g., 'Returns' could be integrated into the first sentence).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of backlink analysis, no annotations, and no output schema, the description is incomplete. It doesn't explain the format or structure of the returned 'comprehensive summary' (e.g., JSON fields, metrics like DA/PA), nor does it cover behavioral aspects like data freshness or limitations. For a tool with rich sibling alternatives, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds marginal value by clarifying that 'query' is for 'domain or subdomain to analyze' and implying 'searchType' affects scope, but doesn't provide additional syntax or format details beyond what the schema specifies. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get comprehensive backlinks summary using Serpstat API' with specific resources (referring domains, backlinks count, etc.) and scope (domain or subdomain). It distinguishes from siblings like 'get_active_backlinks' or 'get_referring_domains' by emphasizing a 'comprehensive summary' rather than specific subsets, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'get_active_backlinks' or 'get_referring_domains' is provided. The description implies usage for a broad summary, but lacks context on prerequisites, timing, or exclusions, leaving the agent to infer based on sibling tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_category_top_domainsA
Get top-performing domains in a specific market category with SEO metrics (traffic, visibility, keywords, backlinks, SDR). Requires category_id from get_market_categories - call that method first to find the right category. Returns ranked domains for competitive landscape analysis with filtering and sorting options.
| Name | Required | Description | Default |
|---|---|---|---|
| category_id | Yes | Category identifier in format .X.Y.Z. (e.g., '.2.' for Arts & Entertainment or '.2.13.1.' for Arts & Entertainment/TV & Video/Online Video). Get this from get_market_categories method. | |
| se | Yes | Search engine database (e.g., g_us for Google US) | |
| filters | No | Filter conditions. All filters support exact value, min threshold, and max threshold. | |
| sort | No | Sort field (global_rank, category_rank, traffic, visibility, keywords, referring_domains, backlinks, sdr) | global_rank |
| order | No | Sort order (asc or desc) | asc |
| page | No | Page number | |
| size | No | Number of results per page (allowed values: 20, 50, 100, 200, 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool 'Returns ranked domains' and includes 'filtering and sorting options,' which gives some behavioral insight. However, it lacks details on rate limits, authentication needs, pagination behavior (beyond parameters), or error handling, leaving gaps for a tool with 7 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by prerequisites and return context. It uses three sentences efficiently, with no redundant information. However, it could be slightly more structured by separating usage notes from output details, but overall it's concise and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, nested objects, no output schema, and no annotations), the description is moderately complete. It covers purpose, prerequisites, and high-level output, but lacks details on behavioral traits like rate limits or error handling. Without annotations or output schema, it should provide more context on what the ranked domains output looks like, but it's adequate for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, mentioning 'SEO metrics (traffic, visibility, keywords, backlinks, SDR)' and 'filtering and sorting options,' but does not explain parameter interactions or provide additional context. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get top-performing domains in a specific market category with SEO metrics (traffic, visibility, keywords, backlinks, SDR).' It specifies the verb ('Get'), resource ('top-performing domains'), and scope ('in a specific market category'), distinguishing it from sibling tools like 'get_domain_competitors' or 'get_domains_info' by focusing on category-based ranking with SEO metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Requires category_id from get_market_categories - call that method first to find the right category.' It names the prerequisite tool ('get_market_categories') and specifies when to use this tool ('for competitive landscape analysis'), offering clear context for selection over alternatives like general domain info tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credits_for_audit_statsA
Check available audit credits including one-page audit, JavaScript scanning, and page crawl limits. Use this before running site audits to verify available resources. This method does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully communicates that this is a read-only operation ('check available audit credits') and explicitly states it doesn't consume API credits, which is crucial behavioral information. However, it doesn't mention response format, error conditions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly sized at two sentences with zero waste. The first sentence states the purpose and scope, while the second provides crucial usage guidance and behavioral information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description provides excellent context about what information is returned (audit credit types) and important behavioral characteristics (non-consumptive). The main gap is the lack of information about response format, but given the tool's simplicity, this is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline would be 3. The description adds value by explaining the semantic context of what credits are being checked ('audit credits including one-page audit, JavaScript scanning, and page crawl limits'), which provides useful information beyond the empty parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check available audit credits') and resources ('one-page audit, JavaScript scanning, and page crawl limits'). It distinguishes from sibling tools like 'get_credits_stats' by focusing specifically on audit-related credits rather than general credit statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Use this before running site audits to verify available resources') and includes an important exclusion ('This method does not consume API credits'), which helps differentiate it from potentially credit-consuming operations among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credits_statsA
Check available API credits, usage statistics, account information, and browser plugin limits. Perfect for monitoring API usage and planning resource-heavy operations. This method does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: it 'does not consume API credits,' which is crucial for understanding its impact. However, it lacks details on rate limits, authentication needs, or response format, leaving some gaps in transparency for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: two sentences that efficiently convey the tool's function, usage context, and a key behavioral trait ('does not consume API credits'). Every sentence adds value without redundancy, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple, no parameters) and lack of annotations and output schema, the description is fairly complete. It covers purpose, usage, and a critical behavioral aspect. However, it could improve by detailing the response format or error handling, which would enhance completeness for a tool with no structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the inputs. The description does not need to add parameter information, and it appropriately focuses on the tool's purpose and behavior. A baseline of 4 is given as it compensates well for the lack of parameters by providing clear context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check available API credits, usage statistics, account information, and browser plugin limits.' It uses specific verbs ('check') and resources ('API credits,' 'usage statistics,' etc.), making the function evident. However, it does not explicitly differentiate from sibling tools like 'get_credits_for_audit_stats,' which might offer overlapping functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: 'Perfect for monitoring API usage and planning resource-heavy operations.' This gives practical guidance on when to use the tool. However, it does not specify when not to use it or name alternatives among siblings, such as 'get_credits_for_audit_stats,' which could be relevant for more specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_competitorsB
Get a list of competitor domains for a given domain, including visibility, traffic, and relevance.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to analyze | |
| se | Yes | Search engine database ID | |
| size | No | Number of results to return | |
| filters | No | Optional filter conditions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions what data is returned (visibility, traffic, relevance), it doesn't address critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or error conditions. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and key return data. Every word earns its place with no redundancy or unnecessary elaboration, making it easy for an agent to quickly understand the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, nested objects, no output schema, and no annotations), the description is minimally adequate. It states what the tool does but lacks crucial context about when to use it, behavioral characteristics, and how it differs from similar sibling tools. The absence of output schema means the description should ideally provide more detail about return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it mentions 'domain' and the returned data fields but provides no additional context about parameter interactions, default behaviors, or practical usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a list of competitor domains for a given domain, including visibility, traffic, and relevance.' It specifies the verb ('Get'), resource ('competitor domains'), and key data points returned. However, it doesn't explicitly differentiate from sibling tools like 'get_url_competitors' or 'get_keyword_competitors', which appear to serve similar competitive analysis functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_url_competitors' and 'get_keyword_competitors' available, there's no indication of whether this tool is for domain-level analysis specifically, nor any prerequisites or context for its application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_keywordsC
Get keywords that domain ranks for in Google search results. Includes position, traffic, difficulty analysis with comprehensive SEO insights and performance metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to analyze | |
| se | Yes | Search engine database ID | g_us |
| withSubdomains | No | Include subdomains in analysis | |
| withIntents | No | Include keyword intents (works for g_ua and g_us only) | |
| url | No | Specific URL to filter results | |
| keywords | No | Array of keywords to search for | |
| minusKeywords | No | Array of keywords to exclude from search | |
| page | No | Page number | |
| size | No | Number of results per page | |
| sort | No | Sort configuration | |
| filters | No | Filter conditions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions what data is returned (keywords with position, traffic, difficulty analysis), it lacks critical behavioral information: whether this is a read-only operation, any rate limits, authentication requirements, data freshness, or pagination behavior (despite having page/size parameters). The description doesn't contradict annotations since none exist, but it's insufficient for a complex 11-parameter tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every element ('Get keywords that domain ranks for', 'Google search results', 'position, traffic, difficulty analysis', 'comprehensive SEO insights and performance metrics') contributes meaning without redundancy. However, it could be slightly more structured by separating core function from included metrics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 11 parameters, nested objects, no annotations, and no output schema, the description is inadequate. It doesn't explain the relationship between parameters (e.g., how filters interact with keywords arrays), doesn't describe the return format despite rich filtering capabilities, and provides no behavioral context. The description fails to compensate for the lack of structured metadata about this sophisticated analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema descriptions. It mentions 'comprehensive SEO insights and performance metrics' which aligns with the detailed filter and sort parameters, but provides no additional semantic context about parameter usage or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get keywords that domain ranks for in Google search results' with specific details about included metrics (position, traffic, difficulty analysis, SEO insights, performance metrics). It distinguishes from siblings like 'get_keywords' by focusing on domain-specific ranking analysis, though it doesn't explicitly compare to alternatives like 'get_domain_uniq_keywords'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools for keyword and domain analysis (e.g., 'get_keywords', 'get_domain_uniq_keywords', 'get_url_keywords'), there's no indication of when this specific domain-focused keyword ranking tool is preferred over other keyword-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_regions_countA
REQUIRED FIRST STEP ONLY IF DOMAIN ANALYSIS for domain analysis: Determines optimal regional database (se parameter) by analyzing domain keyword presence across all Google regions. This tool identifies which regional database contains the most keyword data for the domain, ensuring subsequent analysis uses the correct market context. Returns: keyword count by country, regional performance comparison, and identifies primary market for the domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to analyze | |
| sort | No | Sort by field | |
| order | No | Sort order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by describing what the tool returns ('keyword count by country, regional performance comparison, and identifies primary market'), which is valuable behavioral information. However, it doesn't mention potential limitations like rate limits, authentication requirements, data freshness, or error conditions that would be helpful for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the most critical information ('REQUIRED FIRST STEP...'). All sentences earn their place by explaining purpose, usage context, and return values. It could be slightly more concise by combining some clauses, but overall it's well-structured with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (regional analysis with 3 parameters) and no output schema, the description does a good job explaining what the tool returns. However, with no annotations and no output schema, it could benefit from more detail about the format/structure of the return data (e.g., is it a list, object, or table?) and any behavioral constraints. The description is mostly complete but has minor gaps in fully documenting the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description doesn't add specific parameter semantics beyond what's in the schema (domain, sort, order). It mentions 'domain keyword presence' which relates to the domain parameter, but doesn't provide additional context about parameter interactions, default behaviors, or practical usage examples that would enhance understanding beyond the schema's technical definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('determines optimal regional database', 'analyzing domain keyword presence', 'identifies which regional database contains the most keyword data') and distinguishes it from siblings by positioning it as a 'REQUIRED FIRST STEP ONLY IF DOMAIN ANALYSIS' for subsequent domain analysis tools. It goes beyond the name to explain the core function of regional optimization for keyword data analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it states this is a 'REQUIRED FIRST STEP ONLY IF DOMAIN ANALYSIS' and explains its role in 'ensuring subsequent analysis uses the correct market context.' This clearly indicates when to use this tool (as a prerequisite for domain analysis) versus when not to use it (for non-domain analysis tasks), and implies alternatives would be other domain analysis tools that follow this initial step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_infoB
Get comprehensive SEO information for multiple domains including visibility, keywords, traffic, and dynamics
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | List of domains to analyze (1-100 domains) | |
| se | Yes | Search engine database (e.g., g_us for Google US) | |
| filters | No | Optional filters for the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read-only operation, it doesn't address critical aspects like rate limits, authentication requirements, data freshness, or error handling. For a tool that likely queries external SEO databases, this lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place: 'Get' (action), 'comprehensive SEO information' (scope), 'multiple domains' (target), and the four specific data types. There's no wasted verbiage or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It tells what the tool does but lacks context about when to use it, behavioral constraints, or output format. For a tool that likely returns rich SEO data, the description should provide more guidance about the nature and structure of returned information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no parameter-specific semantics beyond what's in the schema. It mentions 'multiple domains' which aligns with the 'domains' parameter, but provides no additional context about the 'se' or 'filters' parameters. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get comprehensive SEO information for multiple domains including visibility, keywords, traffic, and dynamics.' It specifies the verb ('Get'), resource ('multiple domains'), and scope of information. However, it doesn't explicitly differentiate from sibling tools like 'get_domain_keywords' or 'get_domain_competitors' that might provide overlapping or related SEO data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools focused on specific SEO aspects (e.g., 'get_domain_keywords', 'get_backlinks_summary'), there's no indication of when this comprehensive tool is preferred over more targeted ones. It mentions 'multiple domains' but doesn't specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_uniq_keywordsC
Returns unique keywords of two domains for which a third domain does not rank. Equivalent to a Domain vs domain report.
| Name | Required | Description | Default |
|---|---|---|---|
| se | Yes | Search engine database ID | g_us |
| domains | Yes | Array of domains to analyze for unique keywords (min 1, max 2) | |
| minusDomain | Yes | Domain with keywords which must not intersect with domains parameter | |
| page | No | Page number | |
| size | No | Number of results per page | |
| filters | No | Filter conditions for unique keywords |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns data ('Returns unique keywords'), implying a read-only operation, but doesn't mention any behavioral traits such as rate limits, authentication requirements, data freshness, or pagination behavior (though pagination parameters exist in the schema). This is inadequate for a tool with complex parameters and no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that directly state the tool's purpose and provide a contextual analogy ('Equivalent to a Domain vs domain report'). It's front-loaded with the core functionality, though the second sentence could be more informative. There's no wasted text, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested objects, no output schema, and no annotations), the description is insufficient. It doesn't explain the output format, pagination behavior, or how filters interact with domain comparisons. Without annotations or an output schema, the agent lacks critical context for proper tool invocation and result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by implying the tool compares domains ('two domains' vs 'third domain'), but doesn't explain parameter interactions or provide additional context beyond what's in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Returns unique keywords of two domains for which a third domain does not rank.' It specifies the verb ('returns'), resource ('unique keywords'), and scope ('two domains' vs 'third domain'). However, it doesn't explicitly differentiate from sibling tools like 'get_domain_keywords' or 'get_keywords', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'Equivalent to a Domain vs domain report,' which hints at a use case but doesn't specify prerequisites, exclusions, or compare it to sibling tools like 'get_domain_keywords' or 'get_keywords_info' that might serve similar purposes. This leaves the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domain_urlsA
Get URLs within a domain and keyword count for each URL. Analyze URL structure, performance distribution, and identify top-performing pages. Each URL costs 1 API credit, minimum 1 credit per request.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to analyze | |
| se | Yes | Search engine database ID | g_us |
| filters | No | URL filtering options | |
| sort | No | Sort configuration | |
| page | No | Page number | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it performs analysis (not just data retrieval), discloses cost implications ('Each URL costs 1 API credit, minimum 1 credit per request'), and implies pagination through parameters. However, it doesn't specify rate limits, authentication needs, or what happens with invalid domains, leaving some gaps for a tool with 6 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by analysis details and cost information. Every sentence adds value, with no redundant or vague phrasing. It could be slightly more structured by separating purpose from operational details, but it remains efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested objects, no output schema, and no annotations), the description is moderately complete. It covers purpose, analysis scope, and costs, but lacks details on output format, error handling, or performance characteristics. Without annotations or output schema, the description should do more to guide the agent on what to expect from the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no specific parameter semantics beyond what's in the schemaโit doesn't explain how 'domain' interacts with 'filters' or how 'sort' affects the analysis. With high schema coverage, the baseline is 3, and the description doesn't compensate with additional insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs and resources: 'Get URLs within a domain and keyword count for each URL. Analyze URL structure, performance distribution, and identify top-performing pages.' It distinguishes itself from siblings by focusing on domain URL analysis with keyword counts, unlike tools like 'get_domain_keywords' or 'get_url_keywords' which focus on keywords rather than URL enumeration and analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing domain URLs and performance, but does not explicitly state when to use this tool versus alternatives like 'get_url_summary_traff' or 'get_top_pages_by_backlinks'. It mentions API credit costs, which provides some operational context, but lacks clear guidance on scenarios where this tool is preferred over other domain or URL analysis tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_competitorsB
Lists the domains that rank for the given keyword in Google top-20 results. Shows detailed competitor analysis including visibility metrics, traffic data, keyword dynamics, and relevance scores.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search for competitors | |
| se | Yes | Search engine database ID | |
| filters | No | Filters for search. Fields are combined using the AND logic | |
| sort | No | Order of sorting the results in the format: field: order (e.g., {"region_queries_count": "desc"}) | |
| size | No | Number of results per page in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool lists domains and shows analysis metrics, it doesn't cover critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, or pagination behavior. For a tool with 5 parameters and complex filtering, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences that convey the core functionality and output details without unnecessary elaboration. It's appropriately front-loaded with the main purpose. However, it could be slightly more concise by combining related concepts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, complex nested filtering, no annotations, and no output schema, the description is inadequate. It doesn't explain the return format, error conditions, performance characteristics, or how the various metrics (visibility, traffic, relevance) are calculated or interpreted. The description leaves too many contextual gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'keyword' and implies filtering capabilities through 'detailed competitor analysis', but adds minimal semantic value beyond the schema. With 100% schema description coverage, the schema already documents all 5 parameters thoroughly. The description doesn't explain parameter interactions, default behaviors, or practical usage examples beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Lists the domains that rank'), target resource ('for the given keyword in Google top-20 results'), and output details ('detailed competitor analysis including visibility metrics, traffic data, keyword dynamics, and relevance scores'). It distinguishes from siblings like 'get_domain_competitors' by focusing on keyword-based competitor analysis rather than domain-based.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_domain_competitors' or 'get_keyword_top', nor does it mention prerequisites, exclusions, or specific contexts. It simply states what the tool does without indicating when it's the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_full_topC
Shows Google's top-100 search results for the analyzed keyword. Returns detailed information about domains ranking for the keyword including their visibility, organic/PPC keywords count, SDR score, and backlink metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search for | |
| se | Yes | Search engine database ID | |
| sort | No | Order of sorting the results in the format: field: order | |
| size | No | Number of results per page in response (minimum 10, maximum 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool returns data (implying read-only) and specifies the scope (top-100 results), but doesn't mention rate limits, authentication needs, pagination behavior, data freshness, or error conditions. For a tool with 4 parameters and complex sorting options, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the core function, and the second details the return metrics. It's front-loaded with the main purpose and avoids unnecessary words, though it could be slightly more concise by integrating the two sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters with nested sorting, no output schema, no annotations), the description is minimally adequate. It covers the purpose and return metrics but lacks behavioral context, usage guidelines, and output format details. The high schema coverage helps, but for a data retrieval tool with sibling alternatives, more contextual guidance would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by implying the 'keyword' parameter is for analysis and mentioning metrics that correlate with sortable fields, but doesn't explain parameter interactions or provide usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'shows Google's top-100 search results for the analyzed keyword' and specifies it returns detailed domain metrics like visibility, organic/PPC keywords count, SDR score, and backlink metrics. It uses specific verbs ('shows', 'returns') and identifies the resource (search results/domains), but doesn't explicitly differentiate from sibling tools like 'get_keyword_top' or 'get_keyword_top_urls'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, exclusions, or compare it to sibling tools like 'get_keyword_top' (which might return less detailed data) or 'get_keyword_top_urls' (which might focus on URLs rather than domains). Usage is implied only by the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywordsC
Shows organic keywords related to the researched keyword for which domains rank in Google top 100. For each found keyword, displays its search volume, CPC, and competition level.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword for finding related keywords | |
| se | Yes | Search database ID | g_us |
| minusKeywords | No | Keywords to exclude from search | |
| withIntents | No | Whether to include keyword intents | |
| page | No | page number | |
| size | No | results per page | |
| sort | No | Sorting parameters for results | |
| filters | No | Results filters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the output format ('displays its search volume, CPC, and competition level') but lacks critical details like pagination behavior, rate limits, authentication requirements, error conditions, or whether this is a read-only operation. For a tool with 8 parameters and complex filtering, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two clear sentences. The first sentence establishes the core purpose, and the second specifies the output metrics. There's no wasted verbiage, though it could be slightly more structured for complex parameter guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, complex nested objects, no annotations, and no output schema, the description is incomplete. It doesn't explain the relationship between parameters, how filtering/sorting works, what the response structure looks like, or any behavioral constraints. The agent would struggle to use this effectively without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema - it mentions the 'keyword' parameter implicitly and hints at output metrics that correlate with some filterable fields. No additional parameter semantics are provided beyond what's in the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Shows organic keywords related to the researched keyword for which domains rank in Google top 100.' It specifies the action ('shows'), resource ('organic keywords'), and scope ('Google top 100'), but doesn't explicitly differentiate from sibling tools like 'get_related_keywords' or 'get_keyword_suggestions'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, suggest scenarios for usage, or indicate prerequisites. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_infoC
Get keyword overview showing volume, CPC, competition level, difficulty, and additional metrics for multiple keywords. Provides comprehensive analysis including search volume, cost per click, competition levels, SERP features, and keyword intents.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Array of keywords to analyze (1-1000 keywords) | |
| se | Yes | Search engine database ID | |
| withIntents | No | Include keyword intents (works for g_ua and g_us only) | |
| sort | No | Sort configuration | |
| filters | No | Filter conditions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions what metrics are returned, it doesn't describe important behavioral aspects like rate limits, authentication requirements, whether this is a read-only operation, potential costs/credits usage, or how results are structured/paginated. For a tool with 5 parameters and complex filtering/sorting capabilities, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that efficiently convey the tool's purpose and scope. The first sentence clearly states what the tool does, and the second sentence elaborates on the types of metrics included. There's no wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters (including complex nested objects for sorting and filtering), no annotations, and no output schema, the description is insufficient. It doesn't explain the relationship between parameters, how filtering/sorting affects results, what the output format looks like, or any limitations/constraints. The agent would need to rely heavily on the schema alone to understand how to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'multiple keywords' (implied by the array parameter) and 'keyword intents' (covered in the schema's withIntents description). The description doesn't provide additional context about parameter interactions or usage patterns that aren't already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get keyword overview showing volume, CPC, competition level, difficulty, and additional metrics for multiple keywords.' It specifies the verb ('Get') and resource ('keyword overview'), and lists key metrics. However, it doesn't explicitly differentiate from sibling tools like 'get_keywords' or 'get_keyword_top', which appear to be related keyword analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_keywords', 'get_keyword_top', and 'get_keyword_suggestions', there's no indication of what makes this tool unique or when it's the appropriate choice. The description mentions 'comprehensive analysis' but doesn't clarify how this differs from other keyword tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_suggestionsC
Shows search suggestions for the keyword you requested (they are found by the full-text search). Returns keyword suggestions with geographic names information.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search for suggestions | |
| se | Yes | Search engine database ID | |
| filters | No | Filter conditions | |
| page | No | Page number in response | |
| size | No | Number of results per page in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool 'shows' and 'returns' suggestions, it doesn't address important behavioral aspects: whether this is a read-only operation, if there are rate limits, authentication requirements, what happens with invalid inputs, or how the full-text search behaves. The description provides basic functional information but lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences that convey the core functionality. The first sentence states what the tool does, and the second specifies what it returns. There's no wasted language, though it could be slightly more front-loaded by mentioning the geographic information aspect earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, nested objects, no output schema, no annotations), the description is minimally adequate. It explains what the tool does at a high level but lacks details about the return format, pagination behavior, error handling, or how the suggestions are ranked/ordered. Without annotations or output schema, more behavioral context would be helpful for proper tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema - it mentions 'keyword' generically but doesn't explain the 'se' parameter's country codes or the 'filters' object. With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Shows search suggestions for the keyword you requested' and specifies that these suggestions are 'found by the full-text search' and include 'geographic names information'. It uses specific verbs ('shows', 'returns') and identifies the resource (keyword suggestions), but doesn't explicitly differentiate from sibling tools like 'get_keywords' or 'get_related_keywords'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_keywords', 'get_keywords_info', and 'get_related_keywords', there's no indication of when this specific keyword suggestion tool is appropriate versus those other keyword-related tools. No prerequisites, exclusions, or comparative context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_topB
Shows Google's top-100 search results for the analyzed keyword. Returns position data, URLs, domains, subdomains, and SERP feature types. This method is deprecated but still functional.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search for | |
| se | Yes | Search engine database ID | |
| filters | No | Filters for search results | |
| size | No | Number of results per page in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool is 'deprecated but still functional,' which is useful context about its lifecycle, but fails to describe critical behaviors like rate limits, authentication needs, response format, pagination, or error handling for a tool with complex filtering parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the core functionality and return data, the second adds important behavioral context (deprecation). It's front-loaded with key information and has no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters with nested objects, no output schema, no annotations), the description is minimally adequate. It covers the core purpose and deprecation status but lacks details on output structure, error cases, or integration with sibling tools, leaving gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no parameter-specific semantics beyond implying keyword analysis and Google search results, which are already covered by parameter descriptions. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Shows Google's top-100 search results') and resources ('for the analyzed keyword'), and distinguishes it from siblings like 'get_keyword_full_top' by specifying it returns position data, URLs, domains, subdomains, and SERP feature types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_keyword_full_top' or 'get_keyword_top_urls', nor does it mention prerequisites or exclusions. The only contextual note is that it's deprecated but functional, which is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_top_urlsB
Returns website pages that rank for the largest amount of the analyzed keyword variations and have the highest traffic. Shows URLs with keyword count, estimated traffic, and Facebook shares.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search for | |
| se | No | Search engine database ID | |
| sort | No | Sorting by parameters (any field in urls section of response: url, keywords, traff, fbShares) | |
| order | No | Sorting order | desc |
| page | No | Page number | |
| page_size | No | Number of results per page (allowed values: 10, 20, 30, 50, 100, 200, 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions what data is returned ('URLs with keyword count, estimated traffic, and Facebook shares') but lacks critical behavioral details: whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior beyond parameters, or potential errors. For a tool with 6 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured in two sentences: the first states the tool's purpose and selection criteria, and the second lists the returned data fields. Every sentence adds value without redundancy, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, no output schema), the description is moderately complete. It covers the tool's purpose and output fields but lacks behavioral context, usage guidelines, and detailed parameter explanations. For a data retrieval tool in a suite with many siblings, it should provide more guidance on when to use it and how results are structured, but it meets a basic threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal parameter semantics beyond the input schema, which has 100% coverage with detailed descriptions for all parameters. It implies the 'keyword' parameter is used for searching and mentions output fields ('keyword count, estimated traffic, Facebook shares') that relate to sorting options, but doesn't explain parameter interactions or provide examples. With high schema coverage, the baseline is 3, and the description doesn't add substantial value to elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Returns website pages that rank for the largest amount of the analyzed keyword variations and have the highest traffic.' It specifies the verb ('returns'), resource ('website pages'), and criteria ('rank for keyword variations with highest traffic'). However, it doesn't explicitly differentiate from sibling tools like 'get_keyword_top' or 'get_keyword_full_top', which appear related but have unclear distinctions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a project or specific data setup, or compare it to siblings like 'get_keyword_top' or 'get_keyword_full_top'. The usage context is implied but not explicitly stated, leaving the agent to infer based on the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lost_backlinksA
Get a list of lost backlinks showing linking pages, target pages, link attributes, and deletion dates for domain or URL analysis, use sort by check desc to get recently lost backlinks
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain name or URL to analyze | |
| searchType | No | Type of search: domain, domain_with_subdomains, url, or part_url | domain |
| sort | No | Field to sort results by | check |
| order | No | Sort order: asc or desc | |
| additionalFilters | No | Additional filter options | |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions sorting and filtering aspects but lacks critical information such as whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior beyond parameters, or what the output format looks like. The description is insufficient for a tool with 7 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and includes a practical usage tip. Every part earns its place with no wasted words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral traits like safety, performance, or output format, and while it hints at parameter usage, it does not compensate for the absence of structured behavioral information, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters. The description adds minimal value by implying the 'query' parameter is for analysis and suggesting a specific use of 'sort' and 'order' ('use sort by check desc'), but it does not provide additional meaning beyond what the schema already specifies for parameters like 'additionalFilters' or 'page'/'size'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('list of lost backlinks'), specifying what data is returned (linking pages, target pages, link attributes, deletion dates) and the purpose (domain or URL analysis). It effectively distinguishes from siblings like 'get_active_backlinks' by focusing on lost rather than active backlinks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('for domain or URL analysis') and includes a specific usage tip ('use sort by check desc to get recently lost backlinks'), but it does not explicitly state when not to use it or name 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.
get_market_categoriesA
Get complete list of available market research categories (1000+ categories). Use this method first to find the appropriate category_id for your analysis. Returns hierarchical categories like '/Arts & Entertainment/TV & Video/Online Video' with their IDs (e.g., '.2.13.1.'). The category_id is required for get_category_top_domains method.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by describing the return format ('hierarchical categories like /Arts & Entertainment/TV & Video/Online Video with their IDs e.g. .2.13.1.'), the scale ('1000+ categories'), and that it's a foundational lookup operation. It doesn't mention rate limits or authentication needs, but provides substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly focused sentences with zero waste: first states purpose and scale, second provides usage guidance, third describes return format and connection to other tools. Every sentence earns its place and information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter lookup tool with no annotations and no output schema, the description provides complete context: purpose, scale, usage sequence, return format with examples, and connection to downstream tools. No additional information is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the description correctly states 'No parameters required - returns all available market categories' (mirroring the schema description). With 100% schema coverage and no parameters, the baseline would be 4, and the description appropriately confirms this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get complete list'), resource ('market research categories'), and scope ('1000+ categories'). It distinguishes from sibling tools like 'get_category_top_domains' by explaining this tool provides category IDs needed for that other tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this method first to find the appropriate category_id for your analysis' and mentions the specific sibling tool 'get_category_top_domains' that requires the output. This provides clear when-to-use guidance and references an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_referring_domainsB
Get a list of referring domains using Serpstat API. Returns referring domains that link to the analyzed site with domain rank metrics, referring pages count, and filtering options for comprehensive backlink analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain to analyze for referring domains | |
| searchType | No | Type of search query (domain, domain_with_subdomains) | domain |
| sort | No | Sort results by field (domain_links, domain_from, domain_rank, check) | check |
| order | No | Sort order (asc, desc) | |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the API source (Serpstat) and return data (referring domains with metrics and filtering), but fails to disclose critical behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, pagination behavior beyond parameters, or error handling. For a tool with 6 parameters and no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Get a list of referring domains') and includes key details (API source, return metrics, filtering). There's no wasted text, but it could be slightly more structured by separating functional and contextual elements. Overall, it's appropriately sized and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose and high-level functionality but lacks details on behavioral aspects like pagination, errors, or API constraints. Without annotations or an output schema, the description should do more to compensate, but it provides a basic foundation that's adequate yet with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter well-documented in the schema (e.g., 'query' as 'Domain to analyze for referring domains'). The description adds minimal value beyond the schema by mentioning 'filtering options' and 'comprehensive backlink analysis', which loosely relates to parameters like 'sort' and 'searchType', but doesn't provide additional syntax, format, or usage details. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a list of referring domains using Serpstat API' with specific resources (referring domains) and metrics (domain rank, referring pages count). It distinguishes from siblings like 'get_active_backlinks' or 'get_backlinks_summary' by focusing on domains rather than individual backlinks or summaries. However, it doesn't explicitly contrast with all similar tools (e.g., 'get_active_outlink_domains'), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for 'comprehensive backlink analysis' with filtering options, suggesting it's for detailed domain-level backlink insights. However, it lacks explicit guidance on when to use this tool versus alternatives like 'get_backlinks_summary' or 'get_active_backlinks', and doesn't mention prerequisites or exclusions. The context is clear but not fully directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rt_project_keyword_serp_historyA
Get complete Google top-100 SERP history for tracked keywords in a rank tracker project. Returns full competitor analysis with historical positions, URLs, domains, and search volumes for each date. WARNING: This method returns large datasets (full top-100 for each keyword/date combination). Recommended pageSize: 20-50 for most use cases. Use date filters and keyword filters to reduce response size. Supports keyword tagging for grouping and filtering. This method does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project identifier | |
| projectRegionId | Yes | Region ID for the project. Required. Get from get_rt_project_regions_list method. Each project can track multiple regions. See region reference: https://docs.google.com/spreadsheets/d/1LUDtm-L1qWMVpmWuN-nvDyYFfQtfiXUh5LIHE8sjs0k/edit?gid=75443986#gid=75443986 | |
| page | Yes | Page number for pagination. Starts at 1. | |
| pageSize | No | Number of keywords per page. Allowed values: 20, 50, 100, 500. RECOMMENDED: Use 20 or 50 to avoid response truncation due to large dataset sizes. Each keyword returns full top-100 SERP for all dates. | |
| dateFrom | No | Start date of the period in YYYY-MM-DD format (e.g., '2025-09-01'). Use to filter historical data and reduce response size. | |
| dateTo | No | End date of the period in YYYY-MM-DD format (e.g., '2025-09-30'). Use to filter historical data and reduce response size. | |
| sort | No | Sort results by 'keyword' (alphabetically) or 'date' (chronologically). Default is 'date'. | |
| order | No | Sorting order: 'asc' (oldest first) or 'desc' (newest first). Default is 'desc'. | |
| keywords | No | Filter by specific keywords (max 1000 keywords) | |
| withTags | No | Include keyword tags in the response. Tags are used to group and categorize keywords in the project. Set to true to receive tag IDs and values for each keyword. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: returns large datasets (full top-100 for each keyword/date), includes competitor analysis with historical data, does not consume API credits, and warns about response size management. It lacks details on error handling or rate limits, but covers essential operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by important warnings and usage tips. Every sentence earns its place by adding critical information about dataset size, recommendations, filtering, tagging, and API credit impact, with no redundant or verbose content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no output schema, no annotations), the description does a strong job by explaining the tool's purpose, behavioral traits, and usage guidance. It could improve by detailing the output structure (e.g., format of returned data) since there's no output schema, but it adequately covers input handling and operational context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description adds marginal value by mentioning keyword tagging (related to 'withTags') and filtering recommendations (implied for 'dateFrom', 'dateTo', 'keywords'), but does not provide significant additional semantics beyond what the schema descriptions already cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get complete Google top-100 SERP history for tracked keywords in a rank tracker project.' It specifies the verb ('Get'), resource ('SERP history'), and scope ('tracked keywords in a rank tracker project'), distinguishing it from siblings like 'get_rt_project_url_serp_history' which focuses on URLs rather than keywords.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context with warnings about large datasets and recommendations for pageSize (20-50), plus advice to use date and keyword filters to reduce response size. It mentions keyword tagging for grouping/filtering but does not explicitly state when NOT to use this tool or name specific alternatives among siblings, though it implies it's for keyword-based SERP history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rt_project_regions_listA
Get the list of regions configured for a rank tracker project, including region ID, status (active/inactive), SERP type (organic/paid), device type (desktop/mobile), search engine, and location details. This method does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool as a read operation ('Get') and explicitly states 'does not consume API credits', which is crucial behavioral context not inferable from the schema. However, it lacks details on error handling, rate limits, or authentication needs, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose and efficiently lists the returned data fields. The second sentence adds critical behavioral information without redundancy. Every part earns its place, making it appropriately sized and zero-waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is largely complete: it specifies the purpose, data returned, and key behavioral trait (no API credit consumption). However, it lacks output format details (e.g., structure of the list) and error scenarios, which could be helpful despite the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'projectId' documented as 'Project identifier'. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('list of regions configured for a rank tracker project'), specifying the exact data returned (region ID, status, SERP type, device type, search engine, location details). It distinguishes from siblings like 'get_rt_projects_list' (lists projects) and 'get_rt_project_status' (gets project status), making the purpose specific and well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing region details for a rank tracker project, but provides no explicit guidance on when to use this tool versus alternatives like 'get_domain_regions_count' or 'get_rt_project_status'. It mentions 'does not consume API credits', which offers some context but lacks clear when/when-not scenarios or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rt_projects_listA
Get a list of rank tracker projects including project ID, name, domain, creation date, and tracking status. This method does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number in the projects list | |
| pageSize | No | Number of results per page. Allowed values: 20, 50, 100, 500 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it's a read operation (implied by 'Get'), specifies the data fields returned, and importantly notes 'This method does not consume API credits'โa critical piece of operational context not inferable from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, followed by an important behavioral note. Every word earns its place with zero waste, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (simple list retrieval), 100% schema coverage, and no output schema, the description is nearly complete: it states purpose, data fields, and a key behavioral trait (no API credit cost). It lacks details on pagination behavior or error handling, but for this context, it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema fully documents both parameters (page and pageSize). The description adds no parameter-specific information beyond what the schema provides, resulting in the baseline score of 3 for adequate but no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'list of rank tracker projects', specifying the exact data fields included (project ID, name, domain, creation date, tracking status). It distinguishes from siblings like 'list_projects' by explicitly mentioning 'rank tracker' projects and the no-API-credit consumption.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Get a list of rank tracker projects') and implicitly suggests an alternative (e.g., 'list_projects' might be for different project types). However, it doesn't explicitly state when not to use it or name specific alternatives, keeping it at a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rt_project_statusA
Get the current status of position updates (parsing) for a rank tracker project and region. Use this to check if data is ready before requesting results. This method does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project identifier | |
| regionId | Yes | Search region ID (see https://docs.google.com/spreadsheets/d/1LUDtm-L1qWMVpmWuN-nvDyYFfQtfiXUh5LIHE8sjs0k/edit?gid=75443986#gid=75443986) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully communicates key behavioral traits: it's a read-only status check (implied by 'Get the current status'), it doesn't consume API credits (explicitly stated), and it serves as a prerequisite check before data requests. However, it doesn't mention potential rate limits, authentication requirements, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with three sentences that each serve distinct purposes: stating the tool's function, providing usage guidance, and disclosing cost behavior. There's zero wasted language, and the most important information (what the tool does) comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status-check tool with 2 parameters and 100% schema coverage, the description provides excellent context. It explains the tool's purpose, when to use it, and key behavioral aspects (no API credit consumption). The main gap is the lack of output schema, but for a status check tool, the description adequately conveys what information will be returned (parsing status/readiness).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema (projectId and regionId are clearly defined there). The baseline score of 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get the current status of position updates (parsing)') and identifies the target resource ('rank tracker project and region'). It distinguishes itself from sibling tools by focusing on status checking rather than data retrieval or project management operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance: 'Use this to check if data is ready before requesting results.' This gives clear context for when to use this tool (as a readiness check) versus when to use data retrieval tools. It also specifies 'This method does not consume API credits,' which helps with cost-aware decision making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rt_project_url_serp_historyA
Get ranking history showing only YOUR domain's positions across all tracked keywords. Unlike get_rt_project_keyword_serp_history (which shows full top-100), this method returns only positions where your specified domain/URL ranks. Perfect for tracking your own performance over time without competitor noise. Returns historical position data, search volumes, and optional keyword tags. This method does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Rank tracker project ID. Required. Get from get_rt_projects_list method. | |
| projectRegionId | Yes | Region ID for the project. Required. Get from get_rt_project_regions_list method. Each project can track multiple regions. See region reference: https://docs.google.com/spreadsheets/d/1LUDtm-L1qWMVpmWuN-nvDyYFfQtfiXUh5LIHE8sjs0k/edit?gid=75443986#gid=75443986 | |
| page | Yes | Page number for pagination. Starts at 1. | |
| pageSize | No | Number of keywords per page. Allowed values: 20, 50, 100, 500. Recommended: 100 for most use cases (response is much smaller than get_rt_project_keyword_serp_history since it only shows your domain's positions). | |
| dateFrom | No | Start date of the period in YYYY-MM-DD format (e.g., '2025-09-01'). Filters historical data to this date range. | |
| dateTo | No | End date of the period in YYYY-MM-DD format (e.g., '2025-09-30'). Filters historical data to this date range. | |
| sort | No | Sort results by 'keyword' (alphabetically) or 'date' (chronologically). Default is 'keyword'. | |
| order | No | Sorting order: 'asc' (oldest first) or 'desc' (newest first). Default is 'desc'. | |
| keywords | No | Filter results by specific keywords (max 1000 keywords). Returns only data for the specified keywords where your domain ranks. | |
| withTags | No | Include keyword tags in the response. Tags are used to group and categorize keywords in the project. Set to true to receive tag IDs and values for each keyword. | |
| domain | No | Domain or URL to track. Accepts: 'domain.com' (tracks all URLs from this domain), 'subdomain.domain.com' (tracks specific subdomain), or full URL 'https://domain.com/page' (tracks specific page). Do NOT include protocol for domain-level tracking. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates key behavioral traits: it's a read operation (implied by 'Get'), specifies what data is returned ('historical position data, search volumes, and optional keyword tags'), and importantly discloses that 'This method does not consume API credits' - a critical operational detail not captured elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with three sentences that each serve distinct purposes: stating the core functionality, differentiating from alternatives, and providing additional behavioral context. There is no wasted text, and the most critical information (what the tool does and how it differs) appears first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 11 parameters and no output schema, the description provides strong contextual completeness. It clearly explains the tool's purpose, differentiation, and key behavioral aspects. The main gap is the lack of output format details (what the return structure looks like), but given the detailed parameter schema and clear functional description, it's mostly sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description adds minimal parameter-specific information beyond what's in the schema, mentioning only that it returns data 'where your specified domain/URL ranks' (related to the 'domain' parameter). This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get ranking history'), resource ('YOUR domain's positions'), and scope ('across all tracked keywords'). It explicitly distinguishes this tool from its sibling 'get_rt_project_keyword_serp_history' by contrasting their outputs (domain-only vs. full top-100), providing excellent differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Perfect for tracking your own performance over time without competitor noise') and directly names the alternative sibling tool ('Unlike get_rt_project_keyword_serp_history'). It also includes a practical usage scenario that helps the agent understand the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_bref_infoA
Get quick summary of a single audit for dashboard display. Returns: sdo (0-100 score), highCount/mediumCount/lowCount/informationCount (errors by priority), checkedPageCount (pages scanned), progress (0-100), stoped flag, captchaDetected flag, redirectCount. Lightweight method, does not consume API credits. For detailed analysis use get_site_audit_results_by_categories or get_site_audit_deteailed_report.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | The unique identifier for an audit report |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it's 'lightweight', 'does not consume API credits', and lists specific return fields like scores and flags. However, it doesn't mention error handling, rate limits, or authentication needs, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with two sentences: the first front-loads the purpose and return values, and the second provides usage guidelines and alternatives. Every sentence adds value without redundancy, making it appropriately sized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is largely complete: it explains the purpose, usage, behavior, and return values. However, without an output schema, it could benefit from more detail on return value formats or error cases, but it covers the essentials well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting the 'reportId' parameter. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline of 3 without compensating for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Get quick summary') and resource ('a single audit'), distinguishing it from siblings like 'get_site_audit_deteailed_report' and 'get_site_audit_results_by_categories' by emphasizing it's for 'dashboard display' and 'lightweight'. It explicitly contrasts with detailed analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('for dashboard display', 'lightweight method') and when to use alternatives ('For detailed analysis use get_site_audit_results_by_categories or get_site_audit_deteailed_report'), including a clear exclusion for detailed scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_deteailed_reportA
Get COMPLETE error breakdown organized by categories. Main method for detailed audit analysis. Returns categories array, each with errors array containing: key (error identifier like 'no_desc', 'h1_missing'), priority (high/medium/low/information), countAll (total errors), countNew (new vs compareReportId), countFixed (fixed vs compareReportId). Use compareReportId parameter to track changes between audits. Use error.key with get_site_audit_history (track across all audits) or get_site_audit_pages_spec_errors (see affected pages). Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | The unique identifier for an audit report | |
| compareReportId | No | Another unique identifier for an audit report from the same project to compare |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the return structure (categories array with errors containing specific fields like key, priority, countAll, countNew, countFixed) and explicitly states 'Does not consume API credits,' which is valuable operational context. However, it doesn't mention potential rate limits, error handling, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. Every sentence adds value: the first defines the tool, the second details the return structure, the third explains parameter usage, the fourth links to sibling tools, and the fifth provides API credit information. It could be slightly more structured with bullet points for the return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (detailed error analysis with comparison capabilities) and lack of output schema, the description does an excellent job explaining the return structure and how to use the parameters. It covers the key aspects needed for an agent to understand what the tool does and how to interpret results. The only minor gap is the absence of explicit error handling or pagination details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the semantic purpose of compareReportId ('to track changes between audits') and how it relates to the output fields (countNew, countFixed). This contextual information goes beyond the schema's technical documentation of parameter types and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get COMPLETE error breakdown organized by categories') and resource ('detailed audit analysis'). It distinguishes from siblings by specifying it's the 'Main method for detailed audit analysis' and mentions related tools like get_site_audit_history and get_site_audit_pages_spec_errors for different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs alternatives: 'Main method for detailed audit analysis' establishes primary use, and it specifies when to use sibling tools ('Use error.key with get_site_audit_history... or get_site_audit_pages_spec_errors...'). It also explains the purpose of the compareReportId parameter for tracking changes between audits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_elements_with_issuesA
DRILL-DOWN STEP 2: Shows WHERE a problematic element is used. Use crc from get_site_audit_pages_spec_errors response. ONLY works for hierarchical errors (images, scripts, links). Does NOT work for page-level errors (no_desc, no_title, h1_missing) - returns 'Error don't have sub elements'. Example: Step 1 finds image without alt (imageCrc=12345), Step 2 shows which pages use that image. The crc parameter must match urlCrc/imageCrc from previous method. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | The unique identifier for an audit report | |
| compareReportId | No | Another unique identifier for an audit report from the same project to compare | |
| projectId | Yes | The unique identifier for an audit site project | |
| errorName | Yes | Error name to filter by | |
| mode | No | Error display mode: all (all errors), new (new errors), solved (fixed errors) | all |
| limit | No | Count of returned items in response | |
| offset | No | Batch number required for pagination | |
| crc | Yes | URL CRC from get_site_audit_pages_spec_errors response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explaining the tool's limitations (only works for hierarchical errors, not page-level ones), its dependency on a previous step's output (crc parameter), and a key operational detail ('Does not consume API credits'). However, it lacks information on error handling beyond one example, response format, or pagination behavior, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose. It uses clear bullet-like points and an example to illustrate usage. While slightly verbose due to the example and clarifications, every sentence adds value (e.g., distinguishing error types, explaining parameter linkage), making it efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, no annotations, and no output schema, the description does a good job covering the essential context: purpose, usage workflow, limitations, and key parameter semantics. It explains the tool's role in a two-step process and its constraints. However, it doesn't describe the output format or full error scenarios, which would be helpful given the lack of structured output information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds value by explaining the 'crc' parameter's source and purpose (must match urlCrc/imageCrc from previous method), but doesn't provide additional context for other parameters like 'reportId', 'errorName', or pagination parameters. Given the high schema coverage, a baseline score of 3 is appropriate as the description compensates partially but not extensively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it's a drill-down step that shows WHERE a problematic element is used, specifically for hierarchical errors like images, scripts, and links. It distinguishes itself from siblings by explicitly mentioning it's 'Step 2' and referencing 'get_site_audit_pages_spec_errors' as the previous step, making its role in a workflow evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: as a follow-up to 'get_site_audit_pages_spec_errors' for hierarchical errors, using a crc from that response. It also clearly states when NOT to use it: for page-level errors like 'no_desc, no_title, h1_missing', specifying it returns an error in those cases. This covers both usage context and exclusions effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_historyA
Track how a SPECIFIC error type changed over time across all audits in project. Returns array with reportId, date, and count for each audit. Use this to: verify if fixes are working (count should decrease), monitor if errors are growing, track specific problem areas. The errorName must be from the fixed enum list (same as error.key from get_site_audit_deteailed_report). Example: errorName='no_desc' shows trend of pages without meta description. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to get error history for | |
| errorName | Yes | Error type name (e.g., h1_missing, no_desc, long_title) | |
| limit | No | Number of history items to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It effectively discloses key behavioral traits: it's a read-only operation (implied by 'track' and 'returns'), has no API credit consumption ('Does not consume API credits'), and clarifies scope ('across all audits in project'). However, it doesn't mention rate limits, authentication needs, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with zero waste: it opens with the core purpose, states the return format, lists three specific use cases, provides parameter guidance with an example, and ends with a key operational note. Every sentence adds essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no annotations and no output schema, the description is quite complete: it covers purpose, usage, parameters, and behavioral context. However, it could be slightly improved by explicitly stating the tool's read-only nature or mentioning pagination behavior given the limit/offset parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema: it explains that errorName must be from 'the fixed enum list' and provides an example ('errorName='no_desc' shows trend of pages without meta description'), but doesn't elaborate on projectId, limit, or offset parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('track how a SPECIFIC error type changed over time'), resource ('across all audits in project'), and output format ('Returns array with reportId, date, and count for each audit'). It distinguishes from siblings like 'get_site_audit_deteailed_report' by focusing on temporal trends rather than detailed snapshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides three use cases ('verify if fixes are working', 'monitor if errors are growing', 'track specific problem areas'), specifies when to use it (for tracking error trends over time), and references a related tool ('get_site_audit_deteailed_report') for context on errorName values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_pages_spec_errorsA
DRILL-DOWN STEP 1: Get list of elements (pages/images) with specific error. Returns: url (problematic page or image URL), urlCrc/imageCrc (unique numeric ID for drill-down), count (occurrences). The CRC is used with get_site_audit_elements_with_issues for deeper analysis. Mode parameter: 'all' (all errors), 'new' (new vs compareReportId), 'solved' (fixed vs compareReportId). Example flow: get pages with 'image_no_alt' error โ get imageCrc โ use with get_site_audit_elements_with_issues to see which pages use that image. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | The unique identifier for an audit report | |
| compareReportId | Yes | Another unique identifier for an audit report from the same project to compare | |
| projectId | Yes | The unique identifier for an audit site project | |
| errorName | Yes | Error name to filter by | |
| mode | No | Error display mode: all (all errors), new (new errors), solved (fixed errors) | all |
| limit | No | Count of returned items in response | |
| offset | No | Batch number required for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully describes key behavioral traits: the tool is part of a drill-down workflow, returns specific fields (url, urlCrc/imageCrc, count), explains how the CRC is used for deeper analysis, describes the three mode options, and importantly discloses that it 'Does not consume API credits' - a crucial operational detail not evident from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It starts with the core purpose, explains the return values, describes the mode parameter, provides a workflow example, and ends with the API credit disclosure. Every sentence serves a clear purpose, though it could be slightly more concise by combining some explanatory elements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description does an excellent job of providing context. It explains the return format, the workflow relationship with sibling tools, the meaning of key parameters, and important operational details (no API credit consumption). The main gap is not explicitly describing pagination behavior despite having limit/offset parameters, though the schema covers these.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds some value by explaining the 'mode' parameter options ('all', 'new', 'solved') and their meanings, but doesn't provide additional semantic context beyond what's in the schema descriptions. This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get list of elements (pages/images) with specific error' - a specific verb (get) and resource (elements with specific error). It distinguishes from sibling tools like 'get_site_audit_elements_with_issues' by explaining this is the first drill-down step that provides CRCs for deeper analysis with that sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs alternatives: 'Example flow: get pages with 'image_no_alt' error โ get imageCrc โ use with get_site_audit_elements_with_issues to see which pages use that image.' It also explains the relationship with the sibling tool and provides a concrete workflow example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_project_default_settingsA
Get DEFAULT TEMPLATE settings for creating new projects (NOT settings of existing project). Returns server-side recommended defaults. Use this to: populate new project form with sensible defaults, avoid hardcoding values, ensure settings stay current if Serpstat changes recommendations. Workflow: 1) Call this method, 2) Modify returned object (set domain, name, adjust limits), 3) Call set_site_audit_settings to save. Key differences from project settings: domain='' (must set), name='' (must set), pagesLimit=5000 (default), scheduleRepeatOption=3 (weekly). Does not consume API credits and does not require projectId.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it 'does not consume API credits and does not require projectId,' specifies it 'returns server-side recommended defaults,' and details differences from project settings (e.g., domain='', name='', pagesLimit=5000). This covers safety, cost, and output behavior comprehensively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by usage scenarios, workflow steps, and behavioral details. Each sentence earns its place by providing essential information without waste, such as clarifying differences from project settings and API credit implications, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (retrieving default settings for project creation) and lack of annotations or output schema, the description is complete. It explains the purpose, usage workflow, behavioral traits (no credits required, no projectId), and key output fields, ensuring an AI agent has all necessary context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on usage and output semantics, mentioning key fields in the returned object (domain, name, pagesLimit, scheduleRepeatOption) without redundancy. A baseline of 4 is applied since no parameters exist, and the description adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool retrieves 'DEFAULT TEMPLATE settings for creating new projects' and clarifies it's 'NOT settings of existing project,' providing a specific verb (get) and resource (default template settings). It clearly distinguishes from sibling tools like 'get_site_audit_settings' by emphasizing defaults versus existing project data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: to 'populate new project form with sensible defaults, avoid hardcoding values, ensure settings stay current.' It outlines a clear workflow (call this, modify returned object, call set_site_audit_settings) and names the alternative tool ('set_site_audit_settings') for saving modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_results_by_categoriesA
Get AGGREGATED error statistics by category. Returns sum of errors grouped by priority for each category. Each category shows: highCount, mediumCount, lowCount, informationCount. Use this for quick overview to identify problematic categories. Categories are fixed: pages_status, meta_tags, headings, content, multimedia, indexation, redirects, links, server_params, https, hreflang, amp, markup, pagespeed_desktop, pagespeed_mobile. Does not consume API credits. For specific error breakdown use get_site_audit_deteailed_report.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Audit report ID to get statistics for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it returns aggregated statistics (not detailed data), lists the fixed categories, specifies the output structure (highCount, mediumCount, lowCount, informationCount), and notes it does not consume API credits. However, it lacks details on error handling, rate limits, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by details on output structure, usage context, fixed categories, and a clear alternative. Each sentence adds value without redundancy, making it efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (aggregated statistics with fixed categories) and lack of annotations and output schema, the description does a good job of covering purpose, usage, and output details. It could be more complete by mentioning potential errors or response formats, but it adequately informs the agent for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'reportId' clearly documented. The description does not add any additional semantic context about the parameter beyond what the schema provides, such as how to obtain a reportId or its format. Since schema coverage is high, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('AGGREGATED error statistics by category'), specifying it returns sum of errors grouped by priority for each category. It explicitly distinguishes from its sibling 'get_site_audit_deteailed_report' by stating this is for 'quick overview' versus 'specific error breakdown'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Use this for quick overview to identify problematic categories') and when to use an alternative ('For specific error breakdown use get_site_audit_deteailed_report'). It also mentions that it 'Does not consume API credits,' which is a practical consideration for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_scanned_urls_listA
Get CONFIGURED URL list for scanning (not actual scan results). ONLY works when scanSetting.type is 2 (URL list) or 3 (sitemap list). Returns error 'Scan url list not found' when type=1 (scan all site) because no specific URLs are configured. This shows INPUT configuration, not OUTPUT of what was scanned. Check get_site_audits_list response for actual scanned page count. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to get scanned URLs list for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does so effectively. It discloses critical behavioral traits: error conditions ('Returns error...'), operational constraints ('Does not consume API credits'), and clarifies the nature of returned data ('INPUT configuration, not OUTPUT'). It doesn't cover all possible edge cases like rate limits, but provides substantial context beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with zero waste: every sentence adds critical information. It's front-loaded with the core purpose, followed by constraints, error conditions, differentiation from alternatives, and operational details. No redundant or vague phrasing exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is complete. It covers purpose, usage constraints, error handling, data nature, and operational impact. For a read-only tool with good parameter documentation, no additional information is needed for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'projectId' adequately. The description doesn't add any parameter-specific information beyond what's in the schema, but doesn't need to given the high coverage. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get CONFIGURED URL list for scanning') and resource ('URL list'), distinguishing it from siblings like 'get_site_audits_list' (actual scan results) and 'get_site_audit_settings' (settings). It explicitly clarifies this shows 'INPUT configuration, not OUTPUT of what was scanned,' preventing confusion with result-oriented tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it specifies when to use ('ONLY works when scanSetting.type is 2 or 3'), when not to use (returns error 'Scan url list not found' when type=1), and names an alternative ('Check get_site_audits_list response for actual scanned page count'). This covers all key decision points for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audit_settingsA
Get current configuration of EXISTING audit project. Returns: mainSettings (domain, name, pagesLimit, scanSpeed, scanDuration, userAgent, robotsTxt, etc), scan filters (keywords to include/exclude), authentication, email notifications, scheduling, error thresholds. Compare with get_site_audit_project_default_settings which returns template for NEW projects. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to get settings for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and effectively discloses key behavioral traits: it specifies the tool is for reading ('Get'), not modifying, settings; lists return components (e.g., mainSettings, scan filters); and adds context like 'Does not consume API credits' for cost implications. However, it lacks details on error handling or response format, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by return details and usage guidance, all in three sentences with minimal waste. It could be slightly more structured by separating return values into a list, but overall it's efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (read operation with detailed returns) and no annotations or output schema, the description does well by specifying return components and usage context. However, it doesn't fully explain the return structure or potential errors, leaving some completeness gaps for an agent to invoke it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'projectId' with its type and constraints. The description does not add meaning beyond this, as it doesn't explain parameter usage or nuances. Baseline 3 is appropriate when the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('current configuration of EXISTING audit project'), specifying it retrieves settings rather than creating or modifying them. It distinguishes from sibling 'get_site_audit_project_default_settings' by contrasting existing vs. new projects, making the purpose specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly guides when to use this tool ('EXISTING audit project') vs. an alternative ('Compare with get_site_audit_project_default_settings which returns template for NEW projects'), providing clear context for selection. It also mentions 'Does not consume API credits' as a practical consideration for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_audits_listA
STARTING POINT for audit analysis. Returns list of all audit reports for a project. Use reportId from response with other audit methods. Returns: reportId (use with other methods), date, SDO score (0-100), pages scanned/limit, critical/non-critical issue counts, viruses, progress (0-100), completion status, hasDetailData flag (true=full data available, false=in progress/failed). Does not consume API credits. TIP: Sort by date to get most recent audit first.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to get audits list for | |
| limit | No | Number of audits to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it 'Does not consume API credits' (important cost/rate limit information), explains the purpose of the hasDetailData flag, and details what the response contains. However, it doesn't mention error conditions, authentication requirements, or pagination behavior beyond the limit/offset parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with purpose first, then output details, then behavioral notes, and ends with a practical tip. Every sentence adds value, though the output details section is somewhat dense. It could be slightly more streamlined but remains highly effective for its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list-retrieval tool with no output schema, the description provides excellent coverage of what the response contains (reportId, date, SDO score, etc.) and important behavioral context (no API credit consumption). It lacks details about error responses and doesn't explicitly mention the pagination mechanism, but given the tool's relative simplicity and the comprehensive output description, it's quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. It mentions sorting by date but doesn't connect this to any parameters. The baseline of 3 is appropriate when the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Returns list of all audit reports') and resource ('for a project'), and distinguishes it from sibling tools by positioning it as the 'STARTING POINT for audit analysis' and noting that its reportId output should be used with other audit methods. This differentiates it from other audit-related tools like get_site_audit_deteailed_report or get_site_audit_results_by_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it's the 'STARTING POINT for audit analysis' and specifies to 'Use reportId from response with other audit methods.' It also includes a practical tip: 'Sort by date to get most recent audit first.' This gives clear context for when to use this tool versus diving directly into detailed audit methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threat_backlinksA
Get malicious backlinks pointing to the analyzed domain. Returns links from sites flagged for threats like social engineering, malware, or unwanted software. Shows referring domain, source URL, target URL, platform type, threat type, and last update date. Essential for identifying and removing harmful backlinks that could damage domain reputation and SEO rankings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain to analyze for threat backlinks | |
| searchType | No | Search type: 'domain' (exact domain) or 'domain_with_subdomains' (includes subdomains) | domain |
| sort | No | Field to sort by: lastupdate, url_from, url_to, platform_type, threat_type | lastupdate |
| order | No | Sort order: asc or desc | desc |
| linkPerDomain | No | Maximum number of links per domain to return | |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool returns data with specific fields (e.g., referring domain, threat type) and mentions the purpose ('identifying and removing harmful backlinks'), but lacks details on behavioral traits such as rate limits, authentication needs, pagination behavior, or error handling. The description adds some context but does not fully compensate for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences that are front-loaded: the first states the purpose, the second details return values, and the third explains importance. Each sentence adds value without redundancy, though it could be slightly more concise by integrating the second and third sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no annotations, no output schema), the description is moderately complete. It covers the tool's purpose and return fields but lacks details on output structure, error cases, or usage constraints. Without annotations or output schema, the description should provide more behavioral context to be fully adequate for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description does not add any parameter-specific semantics beyond what the schema provides (e.g., it doesn't explain 'query' beyond 'analyzed domain' or clarify 'linkPerDomain' usage). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get malicious backlinks pointing to the analyzed domain') and resource ('backlinks from sites flagged for threats'). It distinguishes from siblings like 'get_active_backlinks' by specifying 'malicious' and 'threat' focus, making the differentiation explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Essential for identifying and removing harmful backlinks that could damage domain reputation and SEO rankings'), suggesting when this tool is valuable. However, it does not explicitly state when to use it versus alternatives like 'get_active_backlinks' or 'get_lost_backlinks', nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top10_anchorsB
Get TOP-10 anchors with the number of backlinks and referring domains for domain analysis, use this method is you need a fast brief way to get info about top 10 anchors
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain name to analyze | |
| searchType | No | Type of search: domain or domain_with_subdomains | domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool is 'fast' and provides 'brief' information, which adds useful context about performance characteristics. However, it doesn't disclose critical behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, or what happens with invalid domains. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that both add value. The first sentence states the core purpose, and the second provides important usage guidance. There's no redundant information, and the structure is front-loaded with the main functionality. It could be slightly more polished but earns a high score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (domain analysis with two parameters), no annotations, and no output schema, the description provides adequate but incomplete coverage. It explains what the tool does and when to use it, but lacks details about behavioral characteristics, error handling, and output format. The description is minimally viable but has clear gaps that could hinder effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('query' and 'searchType') well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema already provides. According to scoring rules, when schema coverage is high (>80%), the baseline score is 3 even without parameter details in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get TOP-10 anchors with the number of backlinks and referring domains for domain analysis.' It specifies the verb ('Get'), resource ('TOP-10 anchors'), and key metrics ('backlinks and referring domains'). However, it doesn't explicitly distinguish this tool from sibling 'get_anchors' (which likely returns more comprehensive anchor data), so it doesn't reach the highest clarity level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'use this method if you need a fast brief way to get info about top 10 anchors.' This indicates when to use this tool (for quick, limited insights) versus potentially more comprehensive alternatives. However, it doesn't name specific alternative tools or explicitly state when NOT to use it, keeping it from a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_pages_by_backlinksC
Get leading pages by backlinks using Serpstat API. Returns pages with the highest number of referring pages, domains, and IP addresses for comprehensive backlink analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Domain name to analyze | |
| searchType | No | Type of search: domain or domain_with_subdomains | domain |
| sort | No | Field to sort results by | lastupdate |
| order | No | Sort order: asc or desc | |
| page | No | Page number for pagination | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API source and return content ('pages with the highest number of referring pages, domains, and IP addresses'), but lacks critical details like authentication requirements, rate limits, pagination behavior, error conditions, or whether this is a read-only operation. The description doesn't contradict annotations (none exist), but provides insufficient behavioral context for a tool with 6 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that directly state the tool's function and return value. It's front-loaded with the core purpose and avoids unnecessary elaboration. However, it could be slightly more structured by explicitly separating purpose from behavioral details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is incomplete. It doesn't address how results are formatted, what 'comprehensive backlink analysis' entails operationally, or any limitations. For a data retrieval tool with multiple configuration options, more context about output structure and usage constraints would be needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema. The description adds no specific parameter semantics beyond what's in the schemaโit doesn't explain how 'query' relates to 'searchType', what the sort fields mean in practice, or provide usage examples. With high schema coverage, the baseline is 3, and the description doesn't add meaningful value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get leading pages by backlinks using Serpstat API' specifies the verb ('Get') and resource ('leading pages by backlinks'), and mentions the API source. It distinguishes from siblings like 'get_backlinks_summary' or 'get_referring_domains' by focusing on pages with highest backlink metrics, but doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives among the many sibling tools. It mentions 'comprehensive backlink analysis' but doesn't specify scenarios, prerequisites, or exclusions that would help an agent choose between this and similar backlink-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_url_competitorsA
Returns competitor URLs that rank for the same keywords in Google top-10. The analyzed URL must rank for 10+ keywords in top-10 to have competitor data available. Returns 'Data not found' error for new or low-traffic pages with few ranking keywords, URLs not found in Serpstat database, or pages without sufficient top-10 keyword overlap with competitors. The URL parameter must include protocol https://. Best results for established pages with significant organic traffic. API cost: 1 credit per result row returned.
| Name | Required | Description | Default |
|---|---|---|---|
| se | Yes | Search database ID | g_us |
| url | Yes | Full URL to analyze including protocol. Examples: 'https://example.com/' or 'https://example.com/page'. The URL must rank for keywords in Google top-10 to have competitor data. New or low-traffic pages may return 'Data not found' error. | |
| sort | No | Sorting parameters | |
| page | No | Page number in response | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does an excellent job disclosing behavioral traits. It explains data availability requirements (10+ keywords in top-10), error conditions ('Data not found' for new/low-traffic pages), input format requirements (URL must include https://), and operational details (API cost: 1 credit per result row). This goes well beyond basic functionality description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose. Each sentence adds important information about constraints, errors, and costs. However, the final sentence about API costs feels somewhat tacked on and could be better integrated with the preceding content about data availability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, 100% schema coverage, but no annotations and no output schema, the description provides excellent context about behavioral constraints, error conditions, and cost implications. The main gap is the lack of information about return format or what 'competitor URLs' data structure looks like, which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value by reinforcing the URL parameter requirements ('must include protocol https://') and linking URL quality to data availability, but doesn't provide significant additional parameter semantics beyond what's already well-documented in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Returns competitor URLs that rank for the same keywords in Google top-10.' It specifies the resource (competitor URLs), the context (Google top-10 rankings), and distinguishes it from siblings like 'get_domain_competitors' or 'get_keyword_competitors' by focusing on URL-level analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: 'Best results for established pages with significant organic traffic' and 'The analyzed URL must rank for 10+ keywords in top-10 to have competitor data available.' It also explains when it won't work (new/low-traffic pages). However, it doesn't explicitly mention when to choose this over sibling tools like 'get_domain_competitors' or 'get_keyword_competitors'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_url_keywordsA
Returns a list of keywords for which the specified URL ranks in top-100 Google search results. Provides comprehensive insights including current positions, estimated traffic per keyword, keyword difficulty, search volume, and SERP features. Use filters to narrow down by position range, search volume, difficulty, or keyword patterns. API cost: 1 credit per result row returned.
| Name | Required | Description | Default |
|---|---|---|---|
| se | Yes | Search database ID | g_us |
| url | Yes | Full URL to analyze including protocol (https://). Returns keywords where this exact URL ranks in Google top-100 (Bing top-50). Examples: 'https://example.com/', 'https://example.com/blog/article' | |
| withIntents | No | Include keyword search intent classification (informational, navigational, commercial, transactional). When enabled, response includes intents array for each keyword. | |
| sort | No | Sorting parameters | |
| filters | No | Filter conditions | |
| page | No | Page number in response | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a read operation (implied by 'returns'), includes comprehensive data insights, supports filtering, and discloses the API cost ('1 credit per result row returned'). It also notes the ranking scope for Google vs. Bing. While it doesn't cover all potential behaviors like error handling or pagination details, it provides substantial context beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: the core purpose, the data returned, and usage/cost details. Every sentence adds value without redundancy. It's front-loaded with the main function and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (7 parameters, nested objects) and lack of annotations or output schema, the description does well by covering purpose, data insights, filtering, and cost. However, it doesn't detail the response format or pagination behavior, which would be helpful for an agent to interpret results. It's largely complete but has minor gaps in output expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some value by mentioning filters ('position range, search volume, difficulty, or keyword patterns') and the API cost implication, but it doesn't provide additional parameter semantics beyond what's in the schema descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Returns a list of keywords for which the specified URL ranks in top-100 Google search results.' It specifies the verb ('returns'), resource ('keywords'), and scope ('top-100 Google search results'), distinguishing it from sibling tools like get_domain_keywords or get_keywords_info which have different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: analyzing a specific URL's keyword rankings. It mentions 'Use filters to narrow down by position range, search volume, difficulty, or keyword patterns,' which gives practical guidance. However, it does not explicitly state when not to use it or name alternative tools for different use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_url_missing_keywordsA
Identifies keyword opportunities by finding keywords where your competitors rank in top-20 but your URL does not. The weight metric returned in results indicates how many competitor URLs from top-20 rank for that keyword. Higher weight means more competitors are targeting this keyword, suggesting it is valuable for your niche. Perfect for content gap analysis and finding quick wins. API cost: 1 credit per result row returned.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Analyzed URL | |
| se | Yes | Search database ID | g_us |
| sort | No | Sorting parameters. Sort by `weight` to see keywords where most competitors rank (highest opportunity) | |
| filters | No | Filter conditions | |
| page | No | Page number in response | |
| size | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it's a read-only analysis tool (implied by 'identifies'), discloses the cost model ('API cost: 1 credit per result row returned'), and explains the meaning of the weight metric in results. However, it doesn't mention rate limits, authentication needs, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with four sentences that each earn their place: purpose statement, weight metric explanation, use case context, and cost disclosure. It's front-loaded with the core functionality and contains zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 6 parameters, nested objects, and no output schema, the description provides good contextual completeness. It explains the tool's purpose, key metric interpretation, use cases, and cost implications. The main gap is lack of output format details, but given the complexity and absence of annotations, this is a reasonable compromise.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some value by explaining the 'weight' metric concept, but doesn't provide additional semantic context for parameters like 'url', 'se', or the various filters beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('identifies keyword opportunities') and resources ('keywords where your competitors rank in top-20 but your URL does not'). It distinguishes itself from siblings by focusing on missing keywords for a specific URL rather than general keyword analysis or other SEO functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('Perfect for content gap analysis and finding quick wins'), but does not explicitly state when not to use it or name specific alternative tools from the sibling list. The agent can infer alternatives from sibling names like 'get_keywords' or 'get_domain_keywords', but no direct comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_url_summary_traffA
Returns traffic and keyword statistics for website pages that match a specific URL mask. Shows organic traffic and number of keywords found for URLs matching the given pattern. HIGH-COST METHOD - EXPLICIT CONFIRMATION REQUIRED. Before executing, inform the user:
This operation will cost 1000-2000 credits. API COST: 1000 credits per each of traffic|keywords output parameter
| Name | Required | Description | Default |
|---|---|---|---|
| se | Yes | Search database ID | g_us |
| domain | Yes | The domain for which to retrieve traffic and keyword data | |
| urlContains | Yes | URL pattern to filter results. Must be at least 3 characters long. Method finds all URLs containing this substring and aggregates statistics. Examples: '/blog/' matches all blog pages, '/products/' matches product section, '/en/' matches English version. Cannot use '/' alone. | |
| output_data | No | Specify which data to return. 'traffic' returns only traffic estimates (1000 credits). 'keywords' returns only keyword counts (1000 credits). If not specified, returns both traffic and keywords (2000 credits). Specify this parameter unless both metrics are required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and excels by disclosing critical behavioral traits: high cost (1000-2000 credits), explicit confirmation requirement, API cost breakdown (1000 credits per metric), and aggregation behavior ('aggregates statistics' for URLs matching pattern). This goes well beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with core functionality, though it could be slightly more concise. Every sentence earns its place: first states purpose, second explains scope, third highlights cost warning, fourth provides user confirmation instructions, and fifth details API costs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (costly API operation with 4 parameters), no annotations, and no output schema, the description provides excellent contextual completeness. It covers purpose, behavioral constraints, cost implications, parameter guidance, and distinguishes the tool's specific use case within the sibling tool ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the urlContains parameter's aggregation behavior ('Method finds all URLs containing this substring and aggregates statistics') and providing usage guidance for output_data parameter, elevating the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Returns traffic and keyword statistics') and resources ('website pages that match a specific URL mask'), and distinguishes it from siblings by focusing on URL-based aggregation rather than domain-wide or keyword-specific analysis seen in tools like get_domain_keywords or get_url_keywords.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines by warning 'HIGH-COST METHOD - EXPLICIT CONFIRMATION REQUIRED' and specifying when to use alternatives through the output_data parameter explanation: 'If not specified, returns both traffic and keywords (2000 credits). Specify this parameter unless both metrics are required.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsB
Retrieve a list of projects associated with the account, with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number in the projects list | |
| size | No | Number of results per page. Allowed values: 20, 50, 100, 200, 500 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'pagination support,' which is useful context not in the schema, but it doesn't describe other key behaviors like authentication requirements, rate limits, error handling, or the format/structure of the returned list. For a read-only list tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Retrieve a list of projects') and adds a key behavioral note ('with pagination support'). There's no wasted verbiage or redundancy, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (a list operation with pagination), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose and pagination but lacks details on authentication, error cases, return format, or how it fits among sibling tools. This leaves the agent with incomplete context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters ('page' and 'size'), including defaults and allowed values. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain pagination mechanics or result ordering). According to the rules, with high schema coverage, the baseline is 3 even without param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve a list') and resource ('projects associated with the account'), making the purpose immediately understandable. However, it doesn't differentiate this tool from other project-related tools like 'create_project' or 'delete_project' beyond the list vs. create/delete distinction, which is why it doesn't reach a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'with pagination support,' which provides some context about when to use this tool (for browsing large result sets). However, it doesn't explicitly state when to use this tool versus alternatives (e.g., whether it's for all projects or filtered ones, or how it differs from other list-like tools in the sibling set), and there's 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.
page_audit_deleteB
Remove one-page audit project from customer project list. Returns boolean indicating success. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context beyond basic functionality: it specifies the return type ('boolean indicating success') and notes that it 'Does not consume API credits', which are important behavioral traits. However, it lacks details on permissions, error conditions, or side effects, leaving gaps for a deletion operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of two sentences that efficiently convey the core action, return value, and a key behavioral note. Every sentence adds value without redundancy, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a deletion operation with no annotations and no output schema), the description is moderately complete. It covers the basic action, return type, and a credit-related behavior, but lacks details on error handling, permissions, or what 'success' entails. For a deletion tool, more contextual information would be beneficial to ensure safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'pageId' documented as 'Page ID to remove'. The description doesn't add any meaning beyond this, as it doesn't clarify what constitutes a valid page ID or provide examples. The baseline score of 3 is appropriate since the schema adequately covers the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and resource ('one-page audit project from customer project list'), making the purpose specific and understandable. It doesn't explicitly differentiate from sibling tools like 'delete_project', but the mention of 'one-page audit project' provides some distinction from general project deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'delete_project' or other deletion-related tools. It mentions what it does but offers no context about prerequisites, appropriate scenarios, or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_get_last_scansA
Get list of all one-page audit projects. Returns page info including: pageId (use with other methods), url, name, status, lastActiveReport (latest scan results with SDO score and issue counts), finishedReportCount, settings. Use this as starting point to find pageId for other operations. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (optional, default 30) | |
| offset | No | Offset for pagination (optional, default 0) | |
| teamMemberId | No | Filter by team member ID (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context: it specifies that the tool 'does not consume API credits' (indicating no cost implications) and describes the return format. However, it lacks details on error handling, rate limits, or authentication requirements, leaving gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: it states the purpose, lists return fields, and provides usage and cost context. Each sentence adds value without redundancy, making it front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a decent job by explaining the return fields and cost behavior. However, for a tool with 3 parameters and many siblings, it could benefit from more detail on error cases or performance expectations to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema fully documents the three parameters (limit, offset, teamMemberId). The description does not add any parameter-specific information beyond what the schema provides, such as explaining how 'teamMemberId' filtering works in practice. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get list of all one-page audit projects' with specific return fields (pageId, url, name, status, etc.). It distinguishes from siblings like 'list_projects' by specifying it's for 'one-page audit projects' and mentions it 'does not consume API credits,' which differentiates it from potentially credit-consuming tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: 'Use this as starting point to find pageId for other operations.' However, it does not explicitly state when not to use it or name specific alternatives among the many siblings, such as 'list_projects' or 'get_site_audits_list,' which might serve similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_get_report_by_categoriesA
Get audit results by categories for a specific report. Returns categories array with errors grouped by type (meta_tags, headings, content, multimedia, https, etc), page data, and report info. Use compareReportId to see changes between reports (countNew shows errors added since compareReportId, countFixed shows errors resolved since compareReportId). Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Report ID to get audit results for | |
| compareReportId | No | Report ID to compare with (optional). When provided, countNew and countFixed will show differences between the two reports. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the return structure ('categories array with errors grouped by type'), the effect of 'compareReportId', and a non-functional aspect ('Does not consume API credits'). However, it lacks details on error handling, rate limits, authentication needs, or pagination, which are important for a tool with potential data volume. The description adds value but doesn't fully compensate for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by details on returns and usage. Every sentence earns its place by adding necessary information. However, it could be slightly more structured (e.g., separating return details from parameter guidance) and is a bit dense, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (audit results with categories and comparison), no annotations, and no output schema, the description is moderately complete. It covers the purpose, return structure, parameter semantics, and a non-functional aspect. However, it lacks details on error types, data formats, or example outputs, which would be helpful for an agent to interpret results. The description is adequate but has clear gaps in contextual richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('reportId' and 'compareReportId') well-documented in the schema. The description adds semantic context: it explains that 'compareReportId' is optional and clarifies its purpose ('see changes between reports') and the resulting fields ('countNew' and 'countFixed'). This provides useful meaning beyond the schema's basic descriptions. Since the schema does the heavy lifting, the baseline is 3, and the description adds moderate value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get audit results by categories for a specific report.' It specifies the verb ('Get'), resource ('audit results'), and scope ('by categories'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_site_audit_results_by_categories' or 'page_audit_get_results_report', which appear to have overlapping functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: 'Use compareReportId to see changes between reports (countNew shows errors added since compareReportId, countFixed shows errors resolved since compareReportId).' This gives explicit guidance on when to use the optional parameter. However, it doesn't specify when to choose this tool over similar siblings like 'get_site_audit_results_by_categories' or mention any prerequisites or exclusions, which limits the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_get_reports_for_pageA
Get history of all audit reports for a specific page. Returns array of reports with: id (reportId), auditDate, status, sdo (0-100 score), high/medium/low/information error counts, viruses, progress (0-100). Use this to track scan completion and view historical results. Status values: 1=in progress, 3=finalizing, 4=completed. Sort by auditDate to get most recent first. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page ID to get reports for | |
| limit | No | Number of reports to return (optional) | |
| offset | No | Offset for pagination (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it specifies the return format (array with detailed fields), explains status values, recommends sorting, and importantly notes 'Does not consume API credits'โa critical operational detail not inferable from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by essential details on returns, usage, status values, sorting, and API credit impact. Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is largely complete: it covers purpose, return data, usage context, status decoding, sorting advice, and API credit impact. However, it lacks details on error handling or pagination defaults, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (pageId, limit, offset). The description does not add any parameter-specific semantics beyond what the schema provides, such as default values or usage tips for pagination, meeting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Get history of all audit reports') and resource ('for a specific page'), distinguishing it from siblings like 'page_audit_get_last_scans' or 'page_audit_get_results_report' by focusing on historical reports rather than recent scans or detailed results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to track scan completion and view historical results'), but does not explicitly mention when not to use it or name specific alternatives among the many sibling tools, such as 'page_audit_get_last_scans' for only recent scans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_get_results_reportA
Get detailed audit results for a page. Returns: categories array (errors grouped by category like meta_tags, headings, content, multimedia, https, pagespeed_desktop, pagespeed_mobile, etc), data array (page details), report object (SDO score, error counts, progress). Each category contains errors with: key (error identifier), priority (high/medium/low/information), countAll/countNew/countFixed, hasAdditionRows (true means drill-down available via page_audit_report_drill_down). Use this to analyze specific issues found during scan. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page ID to get audit results for. Use pageId from page_audit_get_last_scans or page_audit_start_scan response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it returns structured data (categories array, data array, report object), details error attributes (priority, counts, drill-down availability), and explicitly states 'Does not consume API credits,' which is crucial operational context. However, it lacks information on rate limits, authentication needs, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. Each sentence adds value: detailing return structure, error attributes, usage context, and API credit information. There is no wasted text, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of audit results and no output schema, the description does a good job explaining the return structure (categories, data, report) and error details. It covers the main use case and operational note about API credits. However, it could be more complete by mentioning response formats (e.g., JSON), pagination, or error scenarios, especially without annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'pageId' parameter well-documented in the schema itself. The description does not add any additional meaning or context beyond what the schema provides, such as example usage or prerequisites. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed audit results for a page.' It specifies the verb ('Get') and resource ('audit results for a page'), and distinguishes it from siblings like 'page_audit_get_last_scans' or 'page_audit_report_drill_down' by focusing on comprehensive results rather than scans or drill-downs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'to analyze specific issues found during scan.' It implicitly suggests using it after a scan, but does not explicitly state when not to use it or name alternatives like 'page_audit_get_report_by_categories' or 'page_audit_get_reports_for_page' for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_get_scan_namesA
Get list of all one-page audit project names. Returns array of pages with: pageId, name, url, finishedReportCount. Use this to discover available audit projects. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| teamMemberId | No | Filter by team member ID (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it specifies the return data structure, indicates it's for discovery purposes, and explicitly states 'Does not consume API credits', which is crucial operational information not inferable from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: the first states the purpose and return format, the second provides usage guidance, and the third adds critical behavioral context. Each sentence adds distinct value without redundancy, making it front-loaded and zero-waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter) and lack of annotations or output schema, the description is largely complete: it covers purpose, usage, return data, and a key behavioral trait (no API credit consumption). However, it could slightly improve by hinting at error cases or authentication needs, though not strictly necessary here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the optional 'teamMemberId' parameter. The description does not add any parameter-specific details beyond what the schema provides, such as explaining when or why to use the filter, which keeps it at the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get list') and resource ('all one-page audit project names'), specifies the return format ('array of pages with: pageId, name, url, finishedReportCount'), and distinguishes from siblings by focusing on discovery of audit projects rather than other operations like creation or deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Use this to discover available audit projects'), but does not explicitly mention when not to use it or name specific alternatives among the many sibling tools, such as 'list_projects' or 'get_site_audits_list', which might serve similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_report_drill_downA
Get detailed list of problematic elements for specific error types. ONLY works for errors with hasAdditionRows=true from page_audit_get_results_report response. Returns error 'Try get additional rows in rows-less error' for page-level errors where hasAdditionRows=false. Response structure varies by error type: for multimedia errors (image_no_alt, large_image_size, broken_image_url) returns array of image URLs that have the issue; for page-level errors (miss_favicon, etc) returns array with single object containing page URL. Always check hasAdditionRows flag before calling this method. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Report ID to get error details for | |
| error | Yes | Error type key to get details for. Must match error.key value from page_audit_get_results_report response (e.g., image_no_alt, broken_image_url, large_image_size). Only works for errors where hasAdditionRows=true. | |
| mode | No | Filter mode: all (all errors), new (errors added since compareReportId), solved (errors fixed since compareReportId). Optional, default is all. | |
| compareReportId | No | Report ID to compare with for new/solved filtering (optional, required when mode is new or solved) | |
| page | No | Page number for pagination (optional) | |
| size | No | Number of results per page (optional, max 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool's dependency on hasAdditionRows flag, error conditions, varying response structures by error type, and that it 'Does not consume API credits.' However, it doesn't mention rate limits, authentication needs, or potential side effects, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose. Each sentence adds valuable information without redundancy. However, it could be slightly more concise by combining some clauses, but overall it's efficient with zero waste sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, conditional behavior based on error types) and no output schema, the description does a good job of explaining the varying response structures and prerequisites. It covers the essential context needed for correct usage, though it could benefit from more detail on error handling or example outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema, mainly reinforcing that the 'error' parameter must match error.key from page_audit_get_results_report and only works for errors with hasAdditionRows=true. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed list of problematic elements for specific error types.' It specifies the resource (problematic elements for error types) and distinguishes from siblings by mentioning it only works for errors with hasAdditionRows=true from page_audit_get_results_report, making it highly specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: 'ONLY works for errors with hasAdditionRows=true from page_audit_get_results_report response' and warns about errors where it won't work ('Returns error for page-level errors where hasAdditionRows=false'). It also instructs to 'Always check hasAdditionRows flag before calling this method,' offering clear when-to-use and when-not-to-use criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_rescanA
Rescan existing one-page audit project. Creates new audit report for the page. Returns reportId for the new scan. API COST: 10 credits per rescan. Use page_audit_get_reports_for_page to track progress.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page ID to rescan | |
| name | Yes | Project name (can update if needed) | |
| userAgent | Yes | User agent ID. Recommended: 0 (Chrome) for most use cases. Values: 0=Chrome, 1=Serpstat, 2=Google, 3=Yandex, 4=Firefox, 5=IE | |
| httpAuthLogin | No | Login for Basic HTTP authentication (optional) | |
| httpAuthPass | No | Password for Basic HTTP authentication (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a write operation ('Creates new audit report'), has a cost ('API COST: 10 credits per rescan'), and returns a specific output ('Returns reportId for the new scan'). However, it doesn't mention potential side effects like overwriting existing data or error conditions, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured in three sentences: first states the core action, second covers output and cost, third provides usage guidance. Every sentence adds critical information without redundancy, making it efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (write operation with cost and output), no annotations, and no output schema, the description does well by covering purpose, usage, behavior, and output. However, it lacks details on error handling or response format beyond 'reportId', leaving minor gaps in completeness for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing detailed parameter documentation (e.g., 'Page ID to rescan', enum values for userAgent). The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 for adequate but not enhanced coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Rescan existing one-page audit project') and resource ('page'), distinguishing it from siblings like 'page_audit_start_scan' (which likely initiates new scans) and 'page_audit_get_reports_for_page' (which retrieves existing reports). It explicitly mentions creating a new audit report, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Rescan existing one-page audit project') and when to use an alternative ('Use page_audit_get_reports_for_page to track progress'). It also mentions prerequisites like 'existing' project and cost implications ('API COST: 10 credits per rescan'), offering comprehensive usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_scan_logsA
Get chronological log of scan events for debugging and progress tracking. Returns array of log items with: message (event name like audit_finish, crawl_start, server_check_robots_pass), type (info/warning/error), params (object with event-specific data, may be empty array if no additional info, e.g., {sdo: 64} or []), created_at (timestamp). Useful for debugging scan issues and understanding scan progress. Supports pagination via page and pageSize parameters. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | No | Report ID to get logs for (required). If not specified, returns logs for all scans. | |
| page | No | Page number for pagination (optional, default 0, starts from 0) | |
| pageSize | No | Number of log items per page (optional, default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the return format (array of log items with specific fields), pagination support, and importantly states 'Does not consume API credits' - a crucial operational detail not evident from the schema alone. However, it doesn't mention rate limits, authentication requirements, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with zero waste. The first sentence establishes the core purpose, the second details the return format, the third provides usage context, and the fourth covers operational details. Every sentence earns its place, and the most important information (what the tool does) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 100% schema coverage but no output schema, the description does well by specifying the return format in detail. However, it could be more complete by mentioning potential error cases, response size limitations, or how to interpret specific log types. The absence of annotations means the description should ideally cover more behavioral aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all three parameters thoroughly. The description adds marginal value by mentioning pagination support and implying the reportId parameter's purpose ('for debugging scan issues'), but doesn't provide additional syntax, format details, or examples beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get chronological log of scan events') and resource ('scan events for debugging and progress tracking'). It distinguishes itself from sibling tools like 'page_audit_get_last_scans' or 'page_audit_get_results_report' by focusing specifically on log retrieval rather than scan results or metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('for debugging and progress tracking'), but doesn't explicitly mention when not to use it or name specific alternatives among the many sibling tools. It implies usage for log-related debugging but lacks explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_start_scanA
Scan a single webpage with JavaScript rendering. Returns pageId and reportId for tracking. Use page_audit_get_reports_for_page to check progress via status and progress fields. API COST: 10 credits per scan. Wait for progress=100 before retrieving results with page_audit_get_results_report.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the audit project | |
| url | Yes | Page URL to scan | |
| userAgent | Yes | User agent ID. Recommended: 0 (Chrome) for most use cases. Values: 0=Chrome, 1=Serpstat, 2=Google, 3=Yandex, 4=Firefox, 5=IE | |
| httpAuthLogin | No | Login for Basic HTTP authentication (optional) | |
| httpAuthPass | No | Password for Basic HTTP authentication (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it's a scanning operation that returns tracking IDs, has an associated cost ('API COST: 10 credits per scan'), requires waiting for completion ('Wait for progress=100'), and involves follow-up tools for progress checking and result retrieval. The only minor gap is lack of explicit mention about whether this is a read-only or destructive operation, though 'scan' implies non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and concise with zero wasted words. It uses three sentences that each serve distinct purposes: (1) states the core action and return values, (2) provides follow-up guidance, (3) adds cost and completion requirements. Every sentence earns its place and information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (scanning operation with cost and async behavior), no annotations, and no output schema, the description does an excellent job covering most contextual needs. It explains the scanning purpose, cost implications, async nature with tracking IDs, and follow-up workflow. The only minor gap is that without an output schema, it doesn't fully describe the structure of returned IDs, though 'pageId and reportId' provides sufficient semantic understanding for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no specific parameter information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Scan a single webpage with JavaScript rendering') and resource ('webpage'), distinguishing it from sibling tools like 'start_site_audit' (which appears to be for broader site audits) and 'page_audit_rescan' (which implies re-scanning). It explicitly mentions the return values ('pageId and reportId for tracking'), providing a complete purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Scan a single webpage'), when not to use it (implied: not for site-wide audits), and alternatives ('Use page_audit_get_reports_for_page to check progress' and 'retrieving results with page_audit_get_results_report'). It also includes prerequisites ('Wait for progress=100 before retrieving results'), making usage context very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_audit_stopA
Stop active one-page audit scan. Returns boolean indicating success. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page ID to stop scanning |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and adds valuable behavioral context: it specifies the return type ('boolean indicating success') and operational impact ('Does not consume API credits'). This goes beyond the basic action to disclose practical implications for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place: the first states the core action, the second provides crucial behavioral details. No wasted words, front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no annotations and no output schema, the description provides good context: it explains what the tool does, what it returns, and important operational constraints. The main gap is lack of explicit prerequisites (e.g., requires an active scan) or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting the single 'pageId' parameter. The description doesn't add any additional parameter semantics beyond what's in the schema, so the baseline score of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Stop active one-page audit scan') and resource ('one-page audit scan'), distinguishing it from sibling tools like 'stop_site_audit' which likely stops broader site audits. It uses precise language that leaves no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'active one-page audit scan', suggesting it should be used when such a scan is running. However, it doesn't explicitly state when NOT to use it or name alternatives, though the sibling tool 'stop_site_audit' provides a clear alternative for different audit types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_site_audit_settingsA
Update or create audit project configuration. Use get_site_audit_project_default_settings to get template, then modify and save with this method. Required fields: mainSettings (domain, name, subdomainsCheck, pagesLimit, scanSpeed, etc), scanSetting (type: 1=all site, 2=URL list, 3=sitemap), scheduleSettings, mailTriggerSettings, baseAuthBlock, keyword filters. Does not consume API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to update settings for | |
| mainSettings | Yes | ||
| dontScanKeywordsBlock | Yes | Exclude pages with these keywords in URL | |
| onlyScanKeywordsBlock | Yes | Only scan pages with these keywords in URL | |
| baseAuthBlock | Yes | HTTP Basic authentication credentials | |
| mailTriggerSettings | Yes | Email notification settings | |
| scheduleSettings | Yes | Scan scheduling settings | |
| scanSetting | Yes | Scan type and URL list settings | |
| errorsSettings | No | Error detection thresholds (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool 'Does not consume API credits,' which is useful operational context. However, it lacks details on permissions needed, error handling, or what happens on creation vs. update, leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and usage guidelines, followed by a list of key parameters. It avoids unnecessary fluff, but the parameter list is somewhat dense and could be better structured for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects, no output schema, and no annotations), the description is moderately complete. It covers purpose, usage, and key parameters but lacks details on return values, error cases, or advanced behavioral traits, which are needed for full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is high (89%), so the baseline is 3. The description lists required fields (e.g., 'mainSettings', 'scanSetting') and provides examples (e.g., 'scanSpeed, etc'), adding some semantic context beyond the schema, but it doesn't fully explain complex nested structures or parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update or create audit project configuration') and resource ('audit project'), making the purpose evident. However, it doesn't explicitly distinguish this tool from sibling tools like 'create_project' or 'get_site_audit_settings', which slightly limits differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use get_site_audit_project_default_settings to get template, then modify and save with this method.' This clearly outlines the workflow and references a specific sibling tool, offering strong contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_site_auditA
Launch audit scan for a project. Returns reportId to track progress. Check completion with get_site_audits_list (progress field). API COST: 1 credit per page without JS rendering, 10 credits per page with JS rendering (scanJsPage setting). Wait for progress=100 before analyzing results.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to start audit for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a write operation (implied by 'Launch'), returns a 'reportId' for tracking, has API cost details (credit usage), and specifies asynchronous processing with a wait requirement. However, it doesn't mention error handling, timeouts, or permission requirements, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by essential behavioral details (return value, progress checking, costs, wait condition). Every sentence adds critical information without redundancy, making it highly efficient and well-structured for an agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (asynchronous audit launch with cost implications) and lack of annotations or output schema, the description is largely complete. It covers purpose, usage, costs, and next steps, but could improve by mentioning error cases or linking to result analysis tools more explicitly. The absence of an output schema is partially mitigated by describing the return value ('reportId').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'projectId' well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. This meets the baseline score of 3 for high schema coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Launch audit scan for a project') and resource ('project'), distinguishing it from sibling tools like 'get_site_audits_list' (which checks progress) and 'set_site_audit_settings' (which configures settings). It explicitly identifies the tool's role in initiating scans versus monitoring or analyzing results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Launch audit scan') versus alternatives, naming 'get_site_audits_list' for checking progress and implying that analysis should wait until 'progress=100'. It also includes cost considerations (API credits) and prerequisites ('Wait for progress=100 before analyzing results'), offering comprehensive usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_site_auditA
Stop active audit scan for a project. Partial results may be available. Check get_site_audits_list to see if audit was stopped (stoped field).
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to stop audit for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it's a mutation tool (implied by 'stop'), may have partial results available, and requires checking another tool for confirmation. However, it lacks details on permissions, rate limits, or error handling, which are important for a stop operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by important behavioral notes. Both sentences earn their place by providing critical information without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation to stop an active process), no annotations, and no output schema, the description is mostly complete. It covers purpose, usage, and post-action steps, but could improve by mentioning potential side effects or error cases, which are relevant for a stop operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'projectId' fully documented in the schema. The description does not add any additional meaning or context about the parameter beyond what the schema provides, so it meets the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('stop active audit scan') and resource ('for a project'), distinguishing it from sibling tools like 'start_site_audit' (which initiates scans) and 'get_site_audits_list' (which lists audits). It precisely defines the tool's function without redundancy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides when to use this tool ('stop active audit scan') and when not to (implied for inactive or completed audits). It also names an alternative tool ('get_site_audits_list') for checking the audit status after stopping, offering clear guidance on workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
65 tool updates
- First observed
create_project - First observed
delete_project - First observed
get_active_backlinks - First observed
get_active_outlink_domains - First observed
get_active_outlinks - First observed
get_anchors - First observed
get_backlinks_intersection - First observed
get_backlinks_summary - First observed
get_category_top_domains - First observed
get_credits_for_audit_stats - First observed
get_credits_stats - First observed
get_domain_competitors - First observed
get_domain_keywords - First observed
get_domain_regions_count - First observed
get_domain_uniq_keywords - First observed
get_domain_urls - First observed
get_domains_info - First observed
get_keyword_competitors - First observed
get_keyword_full_top - First observed
get_keyword_suggestions - First observed
get_keyword_top - First observed
get_keyword_top_urls - First observed
get_keywords - First observed
get_keywords_info - First observed
get_lost_backlinks - First observed
get_market_categories - First observed
get_referring_domains - First observed
get_related_keywords - First observed
get_rt_project_keyword_serp_history - First observed
get_rt_project_regions_list - First observed
get_rt_project_status - First observed
get_rt_project_url_serp_history - First observed
get_rt_projects_list - First observed
get_site_audit_bref_info - First observed
get_site_audit_deteailed_report - First observed
get_site_audit_elements_with_issues - First observed
get_site_audit_history - First observed
get_site_audit_pages_spec_errors - First observed
get_site_audit_project_default_settings - First observed
get_site_audit_results_by_categories - First observed
get_site_audit_scanned_urls_list - First observed
get_site_audit_settings - First observed
get_site_audits_list - First observed
get_threat_backlinks - First observed
get_top_pages_by_backlinks - First observed
get_top10_anchors - First observed
get_url_competitors - First observed
get_url_keywords - First observed
get_url_missing_keywords - First observed
get_url_summary_traff - First observed
list_projects - First observed
page_audit_delete - First observed
page_audit_get_last_scans - First observed
page_audit_get_report_by_categories - First observed
page_audit_get_reports_for_page - First observed
page_audit_get_results_report - First observed
page_audit_get_scan_names - First observed
page_audit_report_drill_down - First observed
page_audit_rescan - First observed
page_audit_scan_logs - First observed
page_audit_start_scan - First observed
page_audit_stop - First observed
set_site_audit_settings - First observed
start_site_audit - First observed
stop_site_audit
TDQS
Most tools have distinct purposes with clear resource-action pairs, but there is significant overlap in some areas, such as multiple backlink analysis tools (get_active_backlinks, get_backlinks_summary, get_lost_backlinks, get_threat_backlinks) and keyword analysis tools (get_keywords, get_keywords_info, get_related_keywords), which could cause confusion. Descriptions help differentiate them, but the sheer number of similar tools increases ambiguity.
Tool names follow a consistent verb_noun pattern with snake_case throughout, such as 'get_domain_keywords' and 'start_site_audit'. Minor deviations exist, like 'page_audit_get_last_scans' using 'get' as a prefix rather than a verb, but overall the naming is predictable and readable.
With 65 tools, the count is excessive for an MCP server, making it overwhelming and difficult for agents to navigate. While Serpstat's domain is broad (SEO, audits, rank tracking), the tool set feels bloated with many specialized or overlapping tools that could be consolidated.
The tool set provides comprehensive coverage for Serpstat's domain, including project management, backlink analysis, keyword research, site audits, and rank tracking. It supports full CRUD operations (e.g., create/delete projects, start/stop audits) and lifecycle management, with no obvious gaps that would hinder agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
Query your SEO data in plain language: rankings, audits, backlinks, competitors and AI visibility.
Enables AI assistants to natively interact with the Serpzilla link-building marketplace.
Related MCP Servers
- FlicenseBqualityDmaintenanceProvides AI assistants with access to Semrush SEO API functionality including domain analytics, keyword research, backlink analysis, and competitor insights.716-
- AlicenseCqualityDmaintenanceConnects AI assistants to SE Ranking's SEO and project management APIs to enable natural language queries for keyword research, backlink analysis, and technical audits. It supports comprehensive tasks including competitive analysis, domain traffic tracking, and AI search visibility monitoring.100Apache 2.0
- AlicenseNot gradedqualityFmaintenanceConnects AI assistants to SEO APIs for backlinks analysis, keyword research, and traffic analysis.1628MIT

Babbar MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceIntegrates with the Babbar.tech SEO API to enable AI assistants to perform advanced SEO analysis, competitor research, backlink auditing, and content gap identification.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SerpstatGlobal/serpstat-mcp-server-js'
If you have feedback or need assistance with the MCP directory API, please join our Discord server