Haloscan MCP Server
You can use this server to access Haloscan SEO data for keyword, domain, competitor, expired-domain, and local/GMB analysis.
Check API credit balance.
Keyword research: overview, match, similar, highlights, related, questions, synonyms, find, site structure, bulk, and scrape.
SERP tools: compare periods, list available dates, and track page evolution.
Domain/site intelligence: overview, positions, top pages, historical positions/pages, page best keywords, domain keywords, and bulk metrics.
Competitor analysis: discover competitors, compare keyword gaps, find best competitor pages, and get best competitor positions.
Track visibility trends across multiple sites.
Search and reveal expired domains.
Retrieve Google Business Profile backlink data, map data, and categories.
Note: the README also documents project rank-tracking tools, AI Overview sources, top sites, SERP history, and domain evolution, but these are absent from the provided server schema.
Integrates with n8n workflows to perform SEO analysis using the Haloscan API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Haloscan MCP ServerGet keyword overview for 'digital marketing'"
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.
Haloscan MCP Server
An MCP server that gives AI assistants and automation workflows access to the Haloscan SEO API: keyword research, SERP history, domain intelligence, competitor analysis, expired domains, local SEO data, and rank-tracking projects.
Requirements
Node.js 16 or newer
An API key from the Haloscan API configuration page
Related MCP server: SEO Insights MCP Server
Quick start
Add this entry to your MCP client configuration. In Claude Desktop, the file is named claude_desktop_config.json.
{
"mcpServers": {
"haloscan": {
"command": "npx",
"args": ["-y", "@occirank/haloscan-server", "start"],
"env": {
"HALOSCAN_API_KEY": "YOUR_API_KEY"
}
}
}
}Restart the MCP client after saving the configuration.
KeepHALOSCAN_API_KEY private. Do not commit it or include it in prompts and logs.
Parameter conventions
A parameter without
?is required. A parameter ending in?is optional.Dates use
YYYY-MM-DDunless stated otherwise.modegenerally acceptsauto,root,domain, orurl. Userootfor an entire root domain._minand_maxparameters are inclusive lower and upper filters.Compact notation such as
volume_min/maxmeans the two separate parametersvolume_minandvolume_max._keep_naretains results for which the filtered metric is unavailable.Defaults shown below come from the server's current validation schemas.
Shared keyword-result filters
Tools marked Keyword filters accept all of these optional parameters:
Parameter | Type | Description |
|
| Maximum result count. |
|
| Field used to sort results. |
|
| Sort direction, normally |
|
| Search-volume range. |
|
| CPC range. |
|
| Advertising-competition range. |
|
| Keyword Golden Ratio range. |
|
| Keyword Visibility Index range. |
|
| Keep results without a KVI value. |
|
|
|
|
| Keyword word-count range. |
|
| Include or exclude matching keywords. |
Shared domain-keyword filters
Tools marked Domain filters accept all of these optional parameters:
Parameter | Type | Description |
|
| Input interpretation mode. |
|
| Maximum result count. |
|
| Field used to sort results. |
|
| Sort direction. |
|
| Search-volume range. |
|
| CPC range. |
|
| Advertising-competition range. |
|
| Keyword Golden Ratio range. |
|
| Keyword Visibility Index range. |
|
| Keep results without a KVI value. |
|
|
|
Tool reference
User
get_user_credit
Returns the credits available to the configured API key.
Parameters: none.
Keyword Explorer
get_keywords_overview
Returns selected datasets for one keyword.
Parameter | Type | Required | Default / values |
|
| Yes | — |
|
| No | Default: all supported datasets. Values: |
|
| No | Language selector. |
get_keywords_match
Finds expressions containing the seed keyword.
Parameters: keyword: string; exact_match?: boolean; plus all Keyword filters.
get_keywords_similar
Finds keywords with similar organic SERPs.
Parameters: keyword: string; similarity_min?: number; similarity_max?: number; score_min?: number; score_max?: number; p1_score_min?: number; p1_score_max?: number; plus all Keyword filters.
get_keywords_highlights
Finds expressions for which similar terms are highlighted in the SERP.
Parameters: keyword: string; exact_match?: boolean; similarity_min?: number; similarity_max?: number; plus all Keyword filters.
get_keywords_related
Returns expressions found in related searches.
Parameters: keyword: string; exact_match?: boolean; depth_min?: number; depth_max?: number; plus all Keyword filters.
get_keywords_questions
Returns relevant questions from People Also Ask and related searches.
Parameters: keyword: string; exact_match?: boolean; question_types?: string[]; keep_only_paa?: boolean; depth_min?: number; depth_max?: number; plus all Keyword filters.
get_keywords_synonyms
Returns synonyms for a seed keyword.
Parameters: keyword: string; exact_match?: boolean; plus all Keyword filters.
get_keywords_find
Combines multiple keyword-discovery sources in one request.
Parameters: keyword?: string; keywords?: string[]; keywords_sources?: string[] (match, serp, related, highlights, questions); keep_seed?: boolean; exact_match?: boolean; plus all Keyword filters. Supply keyword or keywords, and at least one source.
get_keywords_site_structure
Clusters supplied or discovered keywords.
Parameter | Type | Required | Description |
|
| No | Seed keyword; used for discovery when |
|
| No | Keywords to cluster. |
|
| No | Use exact-match discovery. |
|
| No | Sources used to find neighboring keywords. |
|
| No | Multipartite clustering modes. |
|
| No | Maximum neighbor sample size. |
|
| No | Clustering mode, such as |
|
| No | Cluster granularity. |
|
| No | Manual-mode common-results threshold in the top 10. |
|
| No | Manual-mode common-results threshold in the top 100. |
get_keywords_top_sites
Returns the strongest sites across a supplied keyword set.
Required: keywords: string[].
Optional: mode: "auto" | "root" | "domain" | "url" = "auto"; order_by = "score" (site, score, unique_keywords, traffic, topical_relevance, top_3_positions, top_10_positions, top_50_positions, top_100_positions, total_traffic, total_keyword_count); order: "asc" | "desc" = "asc"; and numeric ranges unique_keywords_min/max, traffic_min/max, top_3_positions_min/max, top_10_positions_min/max, top_50_positions_min/max, top_100_positions_max, total_keyword_count_min/max, total_traffic_min/max. The implemented type of top_100_positions_min is boolean.
get_keywords_serp_compare
Compares a keyword's SERP at two points in time.
Parameters: keyword: string; period: string; first_date?: string; second_date?: string. The date fields are used for a custom period.
get_keywords_serp_availableDates
Returns dates for which historical SERP data exists.
Parameters: keyword: string.
get_keywords_serp_history
Returns aggregated historical SERP presence for a keyword.
Core parameters: keyword: string; lineCount?: number = 20; mode?: "auto" | "root" | "domain" | "url" = "auto"; date_from?: string; date_to?: string; page?: number = 1; order?: "asc" | "desc" = "asc"; status?: "both" | "active" | "lost"; available?: boolean.
order_by values (default default): default, times_seen, presence_rate, times_in_top_3, times_in_top_10, times_in_top_50, average_position, median_position, best_position, worst_position, first_time_seen, last_time_seen, first_position, last_position, current_position, unique_position_count, average_position_count, pages_seen, unique_pages, domains_seen, unique_domains, root_domain, available, first_page_seen, last_page_seen, most_seen_page, first_domain_seen, last_domain_seen, most_seen_domain.
Optional filters: times_seen_min/max: number; presence_rate_min/max: number; times_in_top_3_min/max: number (0–1); times_in_top_10_min/max: number; times_in_top_50_min/max: number; average_position_max: number; median_position_min/max: number; best_position_min/max: number; worst_position_min/max: number; first_position_min/max: number; last_position_min/max: number; first_time_seen_min/max: string; last_time_seen_min/max: string; current_position_min/max: number; current_position_keep_na?: boolean; unique_position_count_min/max: number; average_position_count_min/max: number; pages_seen_min/max: number; domains_seen_min/max: number. The implemented type of average_position_min is boolean.
get_keywords_serp_pageEvolution
Tracks one URL's position for a keyword between two dates.
Parameters: keyword: string; first_date: string; second_date: string; url: string.
get_keywords_serp_domain_evolution
Tracks a domain's position for a keyword between two dates.
Parameters: keyword: string; first_date: string; second_date: string; url: string (domain or root domain); mode?: "auto" | "root" | "domain" | "url" = "auto".
get_keywords_bulk
Returns keyword metrics in bulk.
Parameters: keywords: string[]; exact_match?: boolean; plus all Keyword filters.
get_keywords_scrap
Requests fresh SERP scraping. Processing can take about 24 hours.
Parameters: keywords: string[].
Site Explorer
get_domains_overview
Returns selected overview datasets for a site.
Parameter | Type | Required | Default / values |
|
| Yes | URL or domain. |
|
| No | Input interpretation mode. |
|
| No | Default: all. Values: |
|
| No | Language selector. |
get_domains_positions
Returns keywords and positions for a site.
Parameters: input: string; plus all Domain filters; traffic_min/max?: number; position_min/max?: number; keyword_word_count_min/max?: number; serp_date_min/max?: string; keyword_include/exclude?: string; title_include/exclude?: string.
get_domains_top_pages
Returns a site's top-performing pages.
Parameters: input: string; mode?: string; lineCount?: number; order_by?: string; order?: string; and numeric ranges known_versions_min/max, total_traffic_min/max, unique_keywords_min/max, total_top_3_min/max, total_top_10_min/max, total_top_50_min/max, total_top_100_min/max.
get_domains_aio_sources
Returns AI Overview source appearances for a URL or domain.
Core parameters: input: string; mode?: "auto" | "root" | "domain" | "url" = "auto"; lineCount?: number = 20; page?: number = 1; order?: "asc" | "desc" = "asc"; order_by?: string = "default" (default, keyword, volume, position, url, cpc, competition, kgr, allintitle, last_scrap, word_count, result_count).
Optional filters: numeric ranges volume_min/max, cpc_min/max, competition_min/max, kgr_min/max, kvi_min/max, allintitle_min/max, traffic_min/max, position_min/max, keyword_word_count_min/max; kvi_keep_na?: boolean; serp_date_min/max?: string; keyword_include/exclude?: string; title_include/exclude?: string; url_include/exclude?: string; redirects?: boolean; spell_suggests?: boolean; spell_both?: boolean; search_intent_includes/excludes?: ("informational" | "transactional" | "commercial" | "navigational" | "local" | "brand")[]; serp_features_includes/excludes?: string[].
get_domains_history_positions
Returns historical keyword positions between two dates.
Required: input: string; date_from: string; date_to: string.
Optional: all Domain filters; numeric ranges word_count_min/max, best_position_min/max, worst_position_min/max, most_recent_position_min/max, subdomain_count_min/max, page_count_min/max; date ranges first_time_seen_min/max, last_time_seen_min/max; still_there?: boolean; keyword_include/exclude?: string. Volume, CPC, competition, KGR, KVI, and allintitle ranges are also accepted through the shared filters.
get_domains_history_pages
Returns historical page-level performance between two dates.
Required: input: string; date_from: string; date_to: string.
Optional: mode?: string; lineCount?: number; order_by?: string; order?: string; and numeric ranges known_versions_min/max, total_traffic_min/max, unique_keywords_min/max, total_top_3_min/max, total_top_10_min/max, total_top_50_min/max, total_top_100_min/max.
get_page_best_keywords
Returns the best keywords for one or more pages.
Parameters: input: string[]; lineCount?: number; strategy?: number. Note that the current server schema expects a number for strategy.
get_domains_keywords
Checks current positions for a supplied domain and keyword list.
Parameters: input: string; keywords: string[]; plus all Domain filters; position_min/max?: number; traffic_min/max?: number; title_word_count_min/max?: number; serp_date_min/max?: string; keyword_include/exclude?: string; title_include/exclude?: string.
get_domains_bulk
Returns domain metrics in bulk.
Parameters: inputs: string[]; mode?: string; lineCount?: number; order_by?: string; order?: string; and numeric ranges total_traffic_min/max, unique_keywords_min/max, total_top_3_min/max, total_top_10_min/max, total_top_50_min/max, total_top_100_min/max.
get_domains_competitors
Finds organic competitors for a site.
Parameters: input: string; mode?: string; lineCount?: number; page?: string.
get_domains_competitors_keywords_diff
Compares a reference site with competitors at keyword level.
Core parameters: input: string; competitors?: string[]; exclusive?: boolean; missing?: boolean; besting?: boolean; bested?: boolean; acceptedTypes?: string[]; page?: number; plus all Domain filters.
Optional filters: best_competitor_traffic_min/max?: number; best_competitor_traffic_keep_na?: boolean; best_reference_traffic_min/max?: number; best_reference_traffic_keep_na?: boolean; best_reference_position_min/max?: number; competitors_positions_min/max?: number; unique_competitors_count_min/max?: number; keyword_word_count_min/max?: number; keyword_include/exclude?: number; volume_keep_na?: boolean; cpc_keep_na?: boolean; competition_keep_na?: boolean; kgr_keep_na?: boolean; allintitle_keep_na?: boolean; google_indexed_min/max?: number; google_indexed_keep_na?: boolean.
get_domains_competitors_best_pages
Returns the best-performing pages among supplied competitors.
Parameters: input: string; competitors?: string[]; mode?: string; lineCount?: number; page?: string; order_by?: string; numeric ranges total_traffic_min/max, positions_min/max, keywords_min/max, exclusive_keywords_min/max, besting_keywords_min/max, bested_keywords_min/max; total_traffic_keep_na?: boolean.
get_domains_competitors_keywords_best_pos
Returns the best competitor position for each supplied keyword.
Required: competitors: string[]; keywords: string[].
Optional: all Domain filters; best_competitor_traffic_min/max?: number; best_competitor_traffic_keep_na?: boolean; best_competitor_position_min/max?: number; competitors_positions_min/max?: number; unique_competitors_count_min/max?: number; keyword_word_count_min/max?: number; keyword_include/exclude?: number; volume_keep_na?: boolean; cpc_keep_na?: boolean; competition_keep_na?: boolean; kgr_keep_na?: boolean; kvi_keep_na?: boolean; allintitle_keep_na?: boolean.
get_domains_visibility_trends
Returns visibility history for multiple sites.
Parameters: input: string[]; mode?: string; type?: string (first, highest, trends, or index; use index for raw visibility values).
get_domains_expired
Searches the expired-domain index.
Core parameters: keyword?: string; lineCount?: number; page?: string; order_by?: string; order?: string; root_domain_include?: string; root_domain_exclude?: string.
Optional numeric ranges: total_pages_min/max, total_domains_min/max, referring_domains_min/max, total_keywords_min/max, total_traffic_min/max, total_top_100_positions_min/max, total_top_50_positions_min/max, total_top_10_positions_min/max, total_top_3_positions_min/max, total_top_100_traffic_min/max, total_top_50_traffic_min/max, total_top_10_traffic_min/max, total_top_3_traffic_min/max, matching_keywords_min/max, matching_pages_min/max, matching_traffic_min/max, matching_most_recent_position_min/max, matching_top_100_positions_min/max, matching_top_50_positions_min/max, matching_top_10_positions_min/max, matching_top_3_positions_min/max, matching_top_100_traffic_min/max, matching_top_50_traffic_min/max, matching_top_10_traffic_min/max, matching_top_3_traffic_min/max, matching_count_min/max, count_min/max, fb_comments_min/max, fb_shares_min/max, pinterest_pins_min/max.
Optional date ranges: first_time_available_min/max, last_time_available_min/max, firstseen_min, first_seen_max, last_seen_min/max.
get_domains_expired_reveal
Reveals expired domains returned as protected keys.
Parameters: root_domain_keys: number[].
get_domains_gmb_backlinks
Returns Google Business Profile backlink data.
Parameters: input?: string; mode?: string; lineCount?: number; page?: number; order_by?: string (default, rating_count, rating_value, is_claimed, total_photos, name, address, phone, longitude, latitude, categories, url, domain, root_domain); order?: string; numeric ranges rating_count_min/max, rating_value_min/max, latitude_min/max, longitude_min/max; rating_count_keep_na?: boolean; rating_value_keep_na?: boolean; latitude_keep_na?: boolean; longitude_keep_na?: boolean; categories_include?: string; categories_exclude?: string; is_claimed?: boolean.
get_domains_gmb_backlinks_map
Returns map data for Google Business Profile backlinks.
Parameters: input: string; mode?: string.
get_domains_gmb_backlinks_categories
Returns category data for Google Business Profile backlinks.
Parameters: input: string; mode?: string.
Projects
MCP tool | Method | API documentation |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
create_project
Creates a project.
Parameters: site: string; name: string; keywords?: string[]; tags?: { tag: string, keywords: string[] }[]; competitors?: string[].
update_project
Replaces the editable settings of an existing project.
Parameters: project_id: string; site: string; name: string; keywords?: string[]; tags?: { tag: string, keywords: string[] }[]; competitors?: string[].
delete_project
Permanently deletes a project. This cannot be undone.
Parameters: project_id: string.
list_projects
Returns existing projects with their keywords and tags.
Parameters: none.
get_project_details
Returns all settings for one project.
Parameters: project_id: string.
get_projects_overview
Returns position graphs, visibility data, and keyword statistics across projects. Costs 1 site credit per call.
Parameters: date_from?: string; date_to?: string; orderBy?: "custom_rank" | "creation_date" | "name" = "creation_date"; order?: "asc" | "desc" = "desc".
get_project_overview
Returns overview data and graphs for one project. Costs 1 site credit per call.
Parameters: project_id: string; date_from?: string; date_to?: string.
get_project_keywords
Returns a project's rank-tracking table. Costs 1 site credit per call plus 1 export/result credit for each returned result.
Parameters: project_id: string; date_from?: string; date_to?: string; tags?: string[]; lineCount?: number = 20; page?: number = 1.
get_project_tracking
Returns ranking-evolution and new/lost-keyword graph data. Costs 1 site credit per call.
Parameters: project_id: string; date_from?: string; date_to?: string; tags?: string[].
Example prompts
“Find related questions for
technical SEO, only keeping keywords with at least 100 searches.”“Show the top pages for
example.com, sorted by total traffic.”“Compare lost keyword positions for
example.combetween 2026-01-01 and 2026-06-30.”“Find keyword gaps between
example.comand these three competitors.”“List my projects, then show tracking data for the project tagged
commercial.”
Troubleshooting
If the server cannot find the API key, confirm that HALOSCAN_API_KEY is inside the MCP server's env object and restart the client.
If the server does not start, verify the runtime:
node --version
npx --versionSome Haloscan endpoints consume site or export credits. Use get_user_credit before large requests or exports.
License
MIT
Available Tools
33 toolsget_domains_bulkC
Obtenir des domaines en masse.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | ||
| mode | No | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| total_traffic_min | No | ||
| total_traffic_max | No | ||
| unique_keywords_min | No | ||
| unique_keywords_max | No | ||
| total_top_3_min | No | ||
| total_top_3_max | No | ||
| total_top_10_min | No | ||
| total_top_10_max | No | ||
| total_top_50_min | No | ||
| total_top_50_max | No | ||
| total_top_100_min | No | ||
| total_top_100_max | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It fails to mention any side effects, authentication needs, rate limits, or pagination behavior, leaving the agent uninformed about the tool's execution.
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 overly terse—a single phrase with no structure or elaboration. While conciseness is valued, this under-specification undermines its utility for a complex tool with 17 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, no output schema, no annotations), the description is severely incomplete. It fails to cover parameter constraints, return data shape, or operational context, making it inadequate for proper 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 only 18%, but the description adds no parameter-level meaning. It does not explain the purpose of the many input parameters, forcing reliance on their names alone, which is insufficient for correct usage.
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 'Obtenir des domaines en masse' indicates the tool retrieves domains in bulk, which is clear but vague. It does not distinguish from sibling tools like get_domains_overview or get_domains_keywords, making it ambiguous what specific domain data is returned.
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 usage guidelines are provided. The description does not specify when to use this tool versus alternatives, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_competitorsD
Obtenir les concurrents des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| mode | No | ||
| lineCount | No | ||
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits like pagination, rate limits, required permissions, or output format. This is a severe gap for a tool with no other behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but insufficiently detailed. It fails to earn its place by providing minimal value; it is under-specified rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (4 parameters, no output schema, many siblings), the description is completely inadequate. It does not explain parameters, output, or how it fits among similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines four parameters (input, mode, lineCount, page) with 0% description coverage. The description offers no explanation of their semantics, leaving the agent without necessary information to use the tool correctly.
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 'Obtenir les concurrents des domaines' clearly indicates the tool retrieves domain competitors, but it lacks specificity on what kind of competitors and how it differs from sibling tools like get_domains_competitors_best_pages or get_domains_competitors_keywords_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_domains_competitors_best_pages or get_domains_competitors_keywords_diff. The context for use is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_competitors_best_pagesC
Obtenir les meilleures pages des concurrents des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| competitors | No | ||
| mode | No | ||
| lineCount | No | ||
| page | No | ||
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| total_traffic_min | No | ||
| total_traffic_max | No | ||
| total_traffic_keep_na | No | ||
| positions_min | No | ||
| positions_max | No | ||
| keywords_min | No | ||
| keywords_max | No | ||
| exclusive_keywords_min | No | ||
| exclusive_keywords_max | No | ||
| besting_keywords_min | No | ||
| besting_keywords_max | No | ||
| bested_keywords_min | No | ||
| bested_keywords_max | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits such as data freshness, pagination, rate limits, or destructive effects. The description simply restates the function without any such details. For a tool with 19 parameters and no output schema, this lack of transparency hinders safe invocation.
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 short sentence, which is concise. However, conciseness sacrifices completeness and structure. It lacks any breakdown or organization that would aid understanding. It is not overly verbose, but the extreme brevity is detrimental to utility.
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 high complexity (19 parameters, no output schema, 30 sibling tools), the description is grossly incomplete. It does not explain what the output contains, how the 'best' metric is defined, or how filtering works. The tool likely returns a list of pages with metrics, but this is omitted, making the tool almost unusable without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 5% of parameters have descriptions in the schema (order_by). The description adds no additional parameter meaning. With 19 parameters including filters like total_traffic_min, positions_min, etc., the agent has no insight into how these affect results. The description should at least explain the role of key parameters or the expected input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it gets 'best pages of competitors of domains', which indicates the tool retrieves top-performing pages from competitor domains. However, the term 'best' is vague and does not define the criteria (e.g., traffic, keywords). With many sibling tools (e.g., get_domains_top_pages, get_domains_competitors_keywords_best_pos), it is unclear how this tool differs, reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or under what conditions it is appropriate. The description does not mention prerequisites, limitations, or scenarios where other tools would be preferred. This omission leaves the agent without context for proper selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_competitors_keywords_best_posC
Obtenir les meilleures positions des mots-clés des concurrents des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| competitors | Yes | ||
| keywords | Yes | ||
| best_competitor_traffic_min | No | ||
| best_competitor_traffic_max | No | ||
| best_competitor_traffic_keep_na | No | ||
| best_competitor_position_min | No | ||
| best_competitor_position_max | No | ||
| competitors_positions_min | No | ||
| competitors_positions_max | No | ||
| unique_competitors_count_min | No | ||
| unique_competitors_count_max | No | ||
| keyword_word_count_min | No | ||
| keyword_word_count_max | No | ||
| keyword_include | No | ||
| keyword_exclude | No | ||
| volume_keep_na | No | ||
| cpc_keep_na | No | ||
| competition_keep_na | No | ||
| kgr_keep_na | No | ||
| allintitle_keep_na | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as whether the tool is read-only, destructive, rate-limited, or requires authorization. For a complex tool with 37 parameters, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it lacks structure and is under-specified for the tool's complexity. While not verbose, it does not earn its place by providing necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 37 parameters, low schema coverage, no output schema, and missing annotations, the description is woefully incomplete. An AI agent cannot effectively determine inputs, outputs, or behavior from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 8%, the description does not compensate. It fails to explain the meaning or relationship of the 37 parameters, many of which have no descriptions in the schema, leaving the AI agent guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves 'best positions' of competitors' keywords, providing a specific verb and resource. However, it is vague about what 'best positions' means and does not differentiate from sibling tools like 'get_domains_competitors_keywords_diff' or 'get_domains_competitors_best_pages'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks any context about prerequisites, use cases, or exclusions given the numerous sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_competitors_keywords_diffD
Obtenir la différence de mots-clés entre les domaines et leurs concurrents.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| input | Yes | ||
| competitors | No | ||
| exclusive | No | ||
| missing | No | ||
| besting | No | ||
| bested | No | ||
| acceptedTypes | No | ||
| page | No | ||
| best_competitor_traffic_min | No | ||
| best_competitor_traffic_max | No | ||
| best_competitor_traffic_keep_na | No | ||
| best_reference_traffic_min | No | ||
| best_reference_traffic_max | No | ||
| best_reference_traffic_keep_na | No | ||
| best_reference_position_min | No | ||
| best_reference_position_max | No | ||
| competitors_positions_min | No | ||
| competitors_positions_max | No | ||
| unique_competitors_count_min | No | ||
| unique_competitors_count_max | No | ||
| keyword_word_count_min | No | ||
| keyword_word_count_max | No | ||
| keyword_include | No | ||
| keyword_exclude | No | ||
| volume_keep_na | No | ||
| cpc_keep_na | No | ||
| competition_keep_na | No | ||
| kgr_keep_na | No | ||
| allintitle_keep_na | No | ||
| google_indexed_min | No | ||
| google_indexed_max | No | ||
| google_indexed_keep_na | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'get difference' with no mention of side effects, rate limits, authentication, or what the output represents. This is a critical gap for a tool with 49 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 concise but under-specified. It is a single sentence that adds no value beyond the name, missing necessary details to be effectively used.
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 high parameter count, lack of annotations, and absent output schema, the description is severely incomplete. It fails to provide enough context for an agent to understand the tool's function or how to use it.
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 only 6%, and the tool description adds no information about parameters. The description does not explain the many filter and sorting parameters, leaving the agent blind to their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool gets keyword differences between domains and competitors, which matches the name. However, it does not distinguish it from sibling tools like get_domains_competitors or get_domains_competitors_keywords_best_pos, and the description is essentially a translation of the name without additional specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, or exclusions, leaving the agent without direction for proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_expiredD
Obtenir les domaines expirés.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | ||
| lineCount | No | ||
| page | No | ||
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Field used for sorting results. Default sorts by descending volume. | |
| total_pages_min | No | ||
| total_pages_max | No | ||
| total_domains_min | No | ||
| total_domains_max | No | ||
| referring_domains_min | No | ||
| referring_domains_max | No | ||
| total_keywords_min | No | ||
| total_keywords_max | No | ||
| total_traffic_min | No | ||
| total_traffic_max | No | ||
| total_top_100_positions_min | No | ||
| total_top_100_positions_max | No | ||
| total_top_50_positions_min | No | ||
| total_top_50_positions_max | No | ||
| total_top_10_positions_min | No | ||
| total_top_10_positions_max | No | ||
| total_top_3_positions_min | No | ||
| total_top_3_positions_max | No | ||
| total_top_100_traffic_min | No | ||
| total_top_100_traffic_max | No | ||
| total_top_50_traffic_min | No | ||
| total_top_50_traffic_max | No | ||
| total_top_10_traffic_min | No | ||
| total_top_10_traffic_max | No | ||
| total_top_3_traffic_min | No | ||
| total_top_3_traffic_max | No | ||
| matching_keywords_min | No | ||
| matching_keywords_max | No | ||
| matching_pages_min | No | ||
| matching_pages_max | No | ||
| matching_traffic_min | No | ||
| matching_traffic_max | No | ||
| matching_most_recent_position_min | No | ||
| matching_most_recent_position_max | No | ||
| matching_top_100_positions_min | No | ||
| matching_top_100_positions_max | No | ||
| matching_top_50_positions_min | No | ||
| matching_top_50_positions_max | No | ||
| matching_top_10_positions_min | No | ||
| matching_top_10_positions_max | No | ||
| matching_top_3_positions_min | No | ||
| matching_top_3_positions_max | No | ||
| matching_top_100_traffic_min | No | ||
| matching_top_100_traffic_max | No | ||
| matching_top_50_traffic_min | No | ||
| matching_top_50_traffic_max | No | ||
| matching_top_10_traffic_min | No | ||
| matching_top_10_traffic_max | No | ||
| matching_top_3_traffic_min | No | ||
| matching_top_3_traffic_max | No | ||
| matching_count_min | No | ||
| matching_count_max | No | ||
| count_min | No | ||
| count_max | No | ||
| first_time_available_min | No | Date in YYYY-MM-DD format | |
| first_time_available_max | No | Date in YYYY-MM-DD format | |
| last_time_available_min | No | Date in YYYY-MM-DD format | |
| last_time_available_max | No | Date in YYYY-MM-DD format | |
| firstseen_min | No | Date in YYYY-MM-DD format | |
| first_seen_max | No | Date in YYYY-MM-DD format | |
| last_seen_min | No | Date in YYYY-MM-DD format | |
| last_seen_max | No | Date in YYYY-MM-DD format | |
| fb_comments_min | No | ||
| fb_comments_max | No | ||
| fb_shares_min | No | ||
| fb_shares_max | No | ||
| pinterest_pins_min | No | ||
| pinterest_pins_max | No | ||
| root_domain_include | No | Regular expression for root domains to be included | |
| root_domain_exclude | No | Regular expression for root domains to be excluded |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as pagination, rate limits, or side effects. The description is minimalist and adds no value beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified for a complex tool. Conciseness without essential information is not effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 75 parameters, no output schema, and no annotations, yet the description provides no context about usage, output format, or parameter relationships. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 16%, but the description adds no meaning to any of the 75 parameters. With such low coverage, the description should compensate but fails to do so.
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 'Obtenir les domaines expirés' is a direct French translation of the tool name 'get_domains_expired', making it a tautology. It does not distinguish the tool from siblings like get_domains_bulk or get_domains_competitors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description lacks any context about scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_expired_revealC
Révéler les domaines expirés.
| Name | Required | Description | Default |
|---|---|---|---|
| root_domain_keys | Yes | Seed keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states the action without disclosing read-only nature, permissions, or side effects. The description adds no behavioral context beyond the title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) but lacks substantive information. It is under-specified, not achieving conciseness with completeness.
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 one parameter and no output schema, the description should explain input expectations and output. It fails to describe what 'reveal' means operationally, what the output looks like, or any edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but the parameter description 'Seed keyword' is vague and does not clarify that 'root_domain_keys' expects an array of numbers. The description fails to explain the semantic meaning of the parameter.
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 ('Révéler les domaines expirés') with verb and resource. However, it does not distinguish this tool from the sibling 'get_domains_expired' tool, missing differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_domains_expired. No context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_gmb_backlinksC
Obtenir les backlinks des domaines GMB.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Requested URL or domain | |
| mode | No | Whether to look for a domain or a full url. Leave empty for auto detection (options: auto, root, domain, url) | |
| lineCount | No | Max number of returned results (default: 20) | |
| page | No | Page number (default: 1) | |
| order_by | No | Field used for sorting results. Options: default, rating_count, rating_value, is_claimed, total_photos, name, address, phone, longitude, latitude, categories, url, domain, root_domain | |
| order | No | Whether results are sorted in ascending or descending order (asc, desc) | |
| rating_count_min | No | ||
| rating_count_max | No | ||
| rating_count_keep_na | No | ||
| rating_value_min | No | ||
| rating_value_max | No | ||
| rating_value_keep_na | No | ||
| latitude_min | No | ||
| latitude_max | No | ||
| latitude_keep_na | No | ||
| longitude_min | No | ||
| longitude_max | No | ||
| longitude_keep_na | No | ||
| categories_include | No | Regular expression for keywords to be included | |
| categories_exclude | No | Regular expression for keywords to be excluded | |
| is_claimed | No | When FALSE, only return unclaimed companies. When TRUE, only return claimed companies. Leave empty if you don't want to filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description is only one sentence. It does not disclose any behavioral traits such as input validation, rate limits, or the nature of the output. The description carries the full burden but fails to deliver.
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?
Extremely concise (one sentence), but it is under-specified rather than concise. Lacks front-loaded essential information; the single sentence does not earn its place as it provides minimal value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 21 parameters, no output schema, and many sibling tools, the description is severely incomplete. It fails to explain input format, filtering capabilities, or even the basic meaning of GMB. The agent cannot effectively invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 43% (only 9 of 21 parameters have descriptions). The description adds no information about parameters, leaving many fields like rating_count_min, latitude_min, and filtering options unexplained. The description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves backlinks of GMB domains, which is clear but does not differentiate from sibling tools like get_domains_gmb_backlinks_categories or get_domains_gmb_backlinks_map. The acronym GMB is not explained, assuming domain knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, no conditions for use. The agent has no context to choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_gmb_backlinks_categoriesC
Obtenir les catégories des backlinks des domaines GMB.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only implies a read operation ('obtenir') but discloses no traits like auth needs, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (one sentence) but fails to include essential information about parameters or behavior. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two undocumented parameters, no output schema, and no annotations, the description is completely inadequate for an agent to reliably use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the parameters 'input' or 'mode'. An agent cannot determine what values to supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves categories of backlinks for GMB domains. It uses a specific verb-resource combination and implicitly distinguishes from sibling tools like get_domains_gmb_backlinks (which gets backlinks, not 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?
No guidance on when to use this tool versus alternatives. No context, prerequisites, or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_gmb_backlinks_mapC
Obtenir la carte des backlinks des domaines GMB.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only says 'carte des backlinks' without specifying output format (e.g., URL, data map) or safety profile (read vs. destructive). Lack of detail leaves agent guessing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, efficient in length but lacks critical details. Some waste by not explaining parameters; conciseness is acceptable but not optimal given missing 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?
With no output schema, no annotations, and two undocumented parameters, the description is insufficient. Agent cannot determine expected output, parameter usage, or when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with no parameter descriptions. The description adds no meaning for 'input' or 'mode'. Agent has no clue what these parameters represent or how to format them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Obtenir la carte des backlinks des domaines GMB.' It directly indicates the tool's purpose and distinguishes it from siblings like get_domains_gmb_backlinks (likely list) and get_domains_gmb_backlinks_categories, though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_domains_gmb_backlinks or get_domains_gmb_backlinks_categories. No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_history_pagesC
Obtenir l’historique des positions des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| mode | No | ||
| date_from | Yes | ||
| date_to | Yes | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| known_versions_min | No | ||
| known_versions_max | No | ||
| total_traffic_min | No | ||
| total_traffic_max | No | ||
| unique_keywords_min | No | ||
| unique_keywords_max | No | ||
| total_top_3_min | No | ||
| total_top_3_max | No | ||
| total_top_10_min | No | ||
| total_top_10_max | No | ||
| total_top_50_min | No | ||
| total_top_50_max | No | ||
| total_top_100_min | No | ||
| total_top_100_max | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., read-only, side effects, permissions). The agent gains no insight beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single vague sentence. While concise, it fails to provide necessary detail; it does not earn its place because it adds little value beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex schema with 21 parameters and no output schema or annotations, the description is severely incomplete. It fails to explain filtering, output format, or usage context, leaving the agent with almost no useful 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 only 14% (3 out of 21 parameters have descriptions). The tool description adds no parameter information, leaving the agent to infer meaning from parameter names alone, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves the history of domain positions, which is a clear verb+resource. However, it is vague and does not distinguish from similar siblings like 'get_domains_history_positions' or 'get_domains_positions'.
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 guidelines on when to use this tool versus alternatives. With many similar sibling tools, the description fails to provide any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_history_positionsD
Obtenir l’historique des positions des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| input | Yes | ||
| date_from | Yes | ||
| date_to | Yes | ||
| word_count_min | No | ||
| word_count_max | No | ||
| best_position_min | No | ||
| best_position_max | No | ||
| worst_position_min | No | ||
| worst_position_max | No | ||
| first_time_seen_min | No | ||
| first_time_seen_max | No | ||
| last_time_seen_min | No | ||
| last_time_seen_max | No | ||
| most_recent_position_min | No | ||
| most_recent_position_max | No | ||
| subdomain_count_min | No | ||
| subdomain_count_max | No | ||
| page_count_min | No | ||
| page_count_max | No | ||
| still_there | No | ||
| keyword_include | No | ||
| keyword_exclude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility for behavioral disclosure. It only states the action without any details on side effects, authentication needs, rate limits, output format, or whether the operation is read-only. This is a complete lack of 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 short sentence, which is concise but at the expense of essential information. It does not front-load critical details like required parameters, output format, or behavioral notes. The brevity reduces its utility significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 39 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain the tool's purpose, filtering capabilities, or return data. The agent cannot understand how to use the tool effectively based solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to the 39 parameters. With only 8% schema description coverage (only 3 parameters have descriptions), the description fails to compensate by explaining key parameters like 'mode', 'still_there', or filter ranges. The agent is left to infer from parameter names alone, which are often ambiguous.
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 'Get the history of domain positions' indicates a specific verb and resource, but it lacks differentiation from sibling tools like get_domains_positions (likely current positions) and get_domains_history_pages (history of pages). It does not clarify what 'positions' means (e.g., search engine rankings), making the purpose somewhat vague among many similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_domains_positions or get_domains_overview. The agent receives no contextual cues about prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_keywordsD
Obtenir les mots-clés des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| input | Yes | ||
| keywords | Yes | ||
| position_min | No | ||
| position_max | No | ||
| traffic_min | No | ||
| traffic_max | No | ||
| title_word_count_min | No | ||
| title_word_count_max | No | ||
| serp_date_min | No | ||
| serp_date_max | No | ||
| keyword_include | No | ||
| keyword_exclude | No | ||
| title_include | No | ||
| title_exclude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as rate limits, output format, or side effects. The minimal description fails to inform the agent about what the tool does beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but severely under-specified. It lacks any structure or critical details, making it insufficient for correct tool usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 31 parameters, no output schema, and no annotations, the description is completely inadequate. The agent has no information about how to invoke the tool correctly or what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 10% schema description coverage, the description does not add meaning beyond the input schema. It provides no context for the 31 parameters, many of which are undocumented.
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 'Obtenir les mots-clés des domaines' indicates the tool retrieves keywords for domains, but it is vague and does not differentiate from many sibling tools like get_keywords_find or get_keywords_related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description lacks any context about prerequisites, filters, or comparison with similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_overviewC
Obtenir un aperçu des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Seed keyword | |
| mode | No | ||
| requested_data | No | Specific data fields to request | |
| lang | No | Seed keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only states 'get an overview' with no mention of read-only behavior, side effects, or any behavioral traits. This is insufficient for an agent to understand the tool's impact.
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 short sentence, which is concise but overly minimal. It front-loads the basic purpose but lacks structure and necessary details for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It fails to explain what the overview consists of, how parameters affect output, or what a typical response looks like.
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 75%, but the tool description adds no explanation of parameters. The schema itself has some descriptions (e.g., 'Seed keyword' for input and lang), but the overall description does not help an agent understand how to use parameters like 'mode' or 'requested_data' in 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 'Obtenir un aperçu des domaines' (Get an overview of domains) gives a general idea of retrieving domain overview data, but it is vague. It does not specify what data is included in the overview, making it hard to distinguish from sibling tools like get_domains_bulk or get_domains_competitors.
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. There is no mention of use cases, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_positionsD
Obtenir les positions des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| input | Yes | ||
| traffic_min | No | ||
| traffic_max | No | ||
| position_min | No | ||
| position_max | No | ||
| keyword_word_count_min | No | ||
| keyword_word_count_max | No | ||
| serp_date_min | No | ||
| serp_date_max | No | ||
| keyword_include | No | ||
| keyword_exclude | No | ||
| title_include | No | ||
| title_exclude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as data freshness, mutation effects, rate limits, or other side effects. The agent has no insight into what the tool does besides the minimal 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 a single short sentence, which is concise but lacks structure. It is too minimal for a tool with 30 parameters and many siblings.
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 (30 params, no output schema, many siblings), the description is woefully incomplete. It does not describe return values, filtering behavior, or any contextual details needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 10%, and the description adds no information about the 30 parameters. The required 'input' parameter is not explained. The description fails to compensate for the low 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 'Obtenir les positions des domaines' gives a verb and resource, but it is vague and does not distinguish from sibling tools like get_domains_history_positions. The schema includes many keyword metrics (volume, cpc), suggesting the tool might not simply return positions. The purpose is unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its many siblings. There is no mention of use cases, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_top_pagesC
Obtenir les pages principales des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| mode | No | ||
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| known_versions_min | No | ||
| known_versions_max | No | ||
| total_traffic_min | No | ||
| total_traffic_max | No | ||
| unique_keywords_min | No | ||
| unique_keywords_max | No | ||
| total_top_3_min | No | ||
| total_top_3_max | No | ||
| total_top_10_min | No | ||
| total_top_10_max | No | ||
| total_top_50_min | No | ||
| total_top_50_max | No | ||
| total_top_100_min | No | ||
| total_top_100_max | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits; it only implies a read operation without details on data source, freshness, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but under-specified; it borders on being too sparse 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?
With 19 parameters, no output schema, and no annotations, the description provides virtually no context, making the tool very incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 16%, and the description adds no parameter information, failing to compensate for low coverage. Many parameters like known_versions_min remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'get the main pages of domains', which indicates the tool retrieves top pages but does not define 'main' (e.g., by traffic or ranking) and does not distinguish from siblings like get_domains_history_pages or get_domains_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?
No guidance on when to use this tool versus alternatives; no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domains_visibility_trendsC
Obtenir les tendances de visibilité des domaines.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| mode | No | ||
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral aspects such as data freshness, permissions, rate limits, or side effects. It merely states the purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It does not front-load key details or break down information effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of three parameters with no schema descriptions and no output schema, the description is grossly incomplete. It fails to explain what the tool returns or how to use the 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 0%. The three parameters (input, mode, type) are not explained in the description, leaving the agent to guess their meanings.
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 'domain visibility trends'. It distinguishes from sibling tools like get_domains_overview or get_domains_keywords, though it does not specify the exact nature of 'trends'.
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 provided on when to use this tool vs alternatives, no prerequisites, no context about typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_bulkD
Obtenir des mots-clés en masse.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| word_count_min | No | ||
| word_count_max | No | ||
| include | No | ||
| exclude | No | ||
| keywords | Yes | ||
| exact_match | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose any behavioral traits (e.g., read-only nature, sorting behavior, pagination). The terse phrase 'Obtenir des mots-clés en masse' adds no behavioral insight beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short clause), which is efficient, but at the expense of necessary detail. It is front-loaded but lacks substantive 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 tool's complexity (22 parameters, no output schema, no annotations), the description is grossly insufficient. It fails to explain return values, parameter usage, or how this 'bulk' keyword tool differs from siblings despite a large sibling group.
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 only 14% schema description coverage, the description does not clarify any of the 22 parameters. The required 'keywords' parameter is not explained, nor are filtering fields like cpc_min, exclude, etc.
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 translates the name into French, indicating bulk keyword retrieval, but lacks specificity about what 'bulk' entails (e.g., batch lookup by keyword list) and does not differentiate from siblings like get_keywords_find or get_keywords_match.
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 over alternative keyword tools. Context about prerequisites, filtering logic, or the intended bulk operation is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_findD
Trouver des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| word_count_min | No | ||
| word_count_max | No | ||
| include | No | ||
| exclude | No | ||
| keyword | No | Seed keyword | |
| keywords | No | ||
| keywords_sources | No | ||
| keep_seed | No | ||
| exact_match | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., read-only, destructive, rate limits) beyond the verb 'find', which is already obvious from the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While short, the description is severely underspecified, not concise. It lacks any front-loaded essential information and contains no meaningful 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?
With 25 parameters, no output schema, and no annotations, the description is completely inadequate. It fails to explain what the tool returns, how to use filters, or any operational 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 only 16%, and the tool description adds no parameter explanations whatsoever. The 84% of undocumented parameters lack any context from 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 'Trouver des mots-clés' is a tautology of the tool name (get_keywords_find), restating it in French. It fails to specify what kind of keyword finding operation this performs, especially given numerous sibling tools like get_keywords_related, get_keywords_similar, etc.
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 usage guidance provided; there is no mention of when to use this tool versus alternatives, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_highlightsD
Obtenir les points forts des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| word_count_min | No | ||
| word_count_max | No | ||
| include | No | ||
| exclude | No | ||
| keyword | Yes | Seed keyword | |
| exact_match | No | ||
| similarity_min | No | ||
| similarity_max | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as read/write nature, rate limits, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks essential detail and structure to be helpful.
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 24 parameters, no output schema, and no annotations, the description is severely incomplete; it does not explain return values, filtering, or 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 only 17% schema description coverage, the description adds no meaning to the 24 parameters; many parameters remain undocumented and the description does not clarify them.
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 'Get the highlights of keywords' is vague; it does not specify what constitutes 'highlights' or distinguish it from siblings like get_keywords_overview or get_keywords_bulk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives; the description lacks context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_matchD
Obtenir la correspondance des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| word_count_min | No | ||
| word_count_max | No | ||
| include | No | ||
| exclude | No | ||
| keyword | Yes | Seed keyword | |
| exact_match | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It does not mention side effects, data requirements, rate limits, or any behavioral traits beyond the vague purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase), which might seem concise, but it lacks substance. It fails to convey necessary details, making it under-specification rather than efficient conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 22 parameters and no output schema or annotations, the description is severely incomplete. An agent cannot understand the tool's purpose, parameters, or behavior from this definition.
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 only 18%, meaning most parameters lack descriptions. The description does not add any information about what parameters like 'include', 'exclude', or range filters are used for, leaving agents underinformed.
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 'Obtenir la correspondance des mots-clés.' is vague; it does not specify what 'match' means or what the tool actually returns. Given the large set of sibling tools (e.g., get_keywords_find, get_keywords_similar), there is no differentiation, making it hard for an agent to select correctly.
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 over its siblings or alternatives. There is no context about prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_overviewD
Obtenir un aperçu des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Seed keyword | |
| requested_data | No | Specific data fields to request | |
| lang | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides no behavioral details (e.g., read-only, data returned, side effects). The single sentence 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 extremely concise but at the expense of informativeness. It is under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and sibling diversity, the description is completely inadequate. It fails to convey what the overview includes or when to use the tool, making it unhelpful 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 coverage is 67%, but the description adds no extra meaning to the parameters. It does not explain the purpose of 'keyword', 'requested_data', or 'lang' beyond their 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 'Obtenir un aperçu des mots-clés' (Get an overview of keywords) is almost a tautology of the tool name. It does not specify what kind of overview or distinguish it from sibling tools like get_keywords_bulk or get_keywords_find.
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 vs alternatives. The description lacks context for the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_questionsC
Obtenir les questions liées aux mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| word_count_min | No | ||
| word_count_max | No | ||
| include | No | ||
| exclude | No | ||
| keyword | Yes | Seed keyword | |
| exact_match | No | ||
| question_types | No | ||
| keep_only_paa | No | ||
| depth_min | No | ||
| depth_max | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and a one-sentence description, the tool's behavioral traits are completely undisclosed. The agent does not know about pagination, rate limits, data freshness, or the nature of 'questions' returned. This is a critical 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?
While extremely concise, the description is too minimal to be useful. It sacrifices essential information for brevity, resulting in a single vague sentence that does not earn its place given 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 26 parameters, minimal schema coverage, no annotations, and no output schema, the description is grossly incomplete. An agent cannot infer required parameters beyond 'keyword', nor understand the filters, return format, or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no value beyond the schema for 26 parameters. With only 15% schema description coverage, the burden on the description is high, but it fails to clarify any parameter's meaning, purpose, or 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 'Get questions related to keywords' clearly states the tool's function and distinguishes it from sibling tools that return keywords, domains, or other data. However, it lacks specificity about the source of questions (e.g., SERP People Also Ask, forums) which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_keywords_find or get_keywords_related. There is no mention of prerequisites or typical use cases, leaving the agent without context for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_scrapD
Extraire les mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no behavioral details such as whether the tool performs reading or mutation, its side effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but under-specified; it sacrifices clarity for brevity and does not earn its place as a complete explanation.
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 simple structure but many siblings, the description is severely incomplete, failing to convey the tool's unique function or output.
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 0% schema description coverage, the description does not explain the purpose or expected format of the 'keywords' parameter beyond its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Extraire les mots-clés' (extract keywords) indicates a basic verb+resource, but it lacks specificity about what is extracted (e.g., search volume, SERP data) and does not distinguish the tool from many siblings like get_keywords_overview or get_keywords_related.
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, nor any conditions or prerequisites for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_serp_availableDatesB
Obtenir les dates disponibles des mots-clés dans les SERP.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Seed keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Aucune annotation fournie, la description doit compenser. Elle ne mentionne pas le comportement (ex: format des dates, gestion des erreurs, limites de requêtes). Pour un outil sans annotations, c'est insuffisant.
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?
Phrase unique, sans information superflue. Efficace mais pourrait inclure davantage de détails sans nuire à la concision.
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?
Outil simple avec un seul paramètre et sans schéma de sortie. La description reste trop minimaliste : elle n'explique pas ce que l'agent peut attendre en retour ni comment interpréter les dates.
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?
La couverture du schéma est de 100% (paramètre 'keyword' décrit comme 'Seed keyword'). La description n'ajoute pas de valeur sémantique au-delà du schéma. Baseline 3 justifié.
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?
Le verbe 'Obtenir' et le nom 'dates disponibles des mots-clés dans les SERP' décrivent précisément l'action et la ressource. Cette description se distingue clairement des outils frères comme get_keywords_serp_compare qui compare des SERP.
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?
Aucune indication sur quand utiliser cet outil par rapport aux alternatives (ex: get_keywords_serp_compare, get_keywords_overview). L'absence de contexte d'utilisation ou de contre-indications limite l'aide à l'agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_serp_compareC
Comparer les mots-clés dans les SERP.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Seed keyword | |
| period | Yes | ||
| first_date | No | ||
| second_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states 'compare keywords'. It does not disclose whether the tool is read-only, any destructive actions, authentication needs, or output nature. The brief description leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it sacrifices essential information for brevity. It is too minimal to be useful for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and minimal parameter descriptions, the description is insufficient for complete understanding. It lacks return value info, usage context, and behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only 'keyword' has a description). The description adds no explanation for 'period', 'first_date', or 'second_date', failing to clarify their roles or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Comparer les mots-clés dans les SERP' clearly indicates comparing keywords in search engine results pages. It aligns with the tool name and distinguishes from siblings like get_keywords_serp_availableDates and get_keywords_serp_pageEvolution.
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 other SERP-related tools (e.g., get_keywords_serp_availableDates, get_keywords_serp_pageEvolution). The agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_serp_pageEvolutionC
Obtenir l'évolution des pages SERP des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Seed keyword | |
| first_date | Yes | ||
| second_date | Yes | ||
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It only says 'get evolution', but does not disclose if this is a read-only operation, any side effects, or authentication needs. The behavior is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence and concise. However, it sacrifices informativeness for brevity, missing key details that would make it more useful without being longer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters, no output schema, and no annotations, the description is incomplete. It does not explain the return format, date semantics, or how the URL is used, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only 'keyword' described). The description adds no meaning to 'first_date', 'second_date', or 'url', leaving their purpose ambiguous. This is a critical gap for a tool with 4 required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it retrieves SERP page evolution for keywords, which is clear. However, it does not distinguish from sibling tools like get_keywords_serp_compare or get_keywords_serp_availableDates, missing an opportunity for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description is minimal and provides no context about prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_similarD
Obtenir la correspondance des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| word_count_min | No | ||
| word_count_max | No | ||
| include | No | ||
| exclude | No | ||
| keyword | Yes | Seed keyword | |
| similarity_min | No | ||
| similarity_max | No | ||
| score_min | No | ||
| score_max | No | ||
| p1_score_min | No | ||
| p1_score_max | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavioral traits. It provides none—no mention of read-only nature, side effects, limitations, or output characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but not concisely helpful—it is under-specified. A single vague phrase does not earn its place, as it fails to convey 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?
Given the high parameter count (27), no output schema, and no annotations, the description is utterly incomplete. It provides no context about return values, filtering logic, or how the tool operates.
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 only 15%, yet the description adds no value by explaining any of the 27 parameters or their interplay. The single phrase does not help interpret the many filter options.
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 'Obtenir la correspondance des mots-clés' (Get the correspondence of keywords) is vague and does not clarify what 'correspondence' means. It fails to distinguish this tool from siblings like get_keywords_related or get_keywords_match, which likely have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it describe prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_site_structureC
Obtenir la structure du site des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | Seed keyword | |
| keywords | No | ||
| exact_match | No | ||
| neighbours_sources | No | ||
| multipartite_modes | No | ||
| neighbours_sample_max_size | No | ||
| mode | No | ||
| granularity | No | ||
| manual_common_10 | No | ||
| manual_common_100 | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does not disclose whether the tool is read-only, requires authentication, has rate limits, or what the output structure is. The minimal description adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but insufficient. It lacks structure, front-loading critical information, and does not provide enough detail to be useful. The brevity sacrifices 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 (10 parameters, no output schema, many siblings), the description is severely incomplete. It does not explain return values, parameter usage, or the meaning of 'site structure,' leaving the agent with little actionable 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?
The schema description coverage is only 10% (only 'keyword' has a description). The tool description does not explain any parameters beyond the schema, failing to compensate for the low coverage. Agents cannot infer parameter roles or combinations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool gets the site structure of keywords, indicating a verb and resource. However, it is vague and does not clarify what 'site structure' means (e.g., sitemap, URL hierarchy). It fails to distinguish this tool from similar siblings like get_keywords_overview or get_keywords_bulk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. No examples, context, or conditions are mentioned, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywords_synonymsD
Obtenir les synonymes des mots-clés.
| Name | Required | Description | Default |
|---|---|---|---|
| lineCount | No | Max number of returned results. | |
| order_by | No | Field used for sorting results. Default sorts by descending volume. | |
| order | No | Whether the results are sorted in ascending or descending order. | |
| volume_min | No | ||
| volume_max | No | ||
| cpc_min | No | ||
| cpc_max | No | ||
| competition_min | No | ||
| competition_max | No | ||
| kgr_min | No | ||
| kgr_max | No | ||
| kvi_min | No | ||
| kvi_max | No | ||
| kvi_keep_na | No | ||
| allintitle_min | No | ||
| allintitle_max | No | ||
| word_count_min | No | ||
| word_count_max | No | ||
| include | No | ||
| exclude | No | ||
| keyword | Yes | Seed keyword | |
| exact_match | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose any behavioral traits beyond the basic purpose. With 22 parameters and no behavioral context, the description is severely lacking.
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 short sentence, but it is under-specified and lacks necessary detail. It does not earn its place, as it provides minimal utility.
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 22 parameters, no output schema, and no annotations, the description is woefully incomplete. It fails to cover essential aspects like filtering, sorting, or 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?
Schema description coverage is only 18%, and the description adds no meaning to any parameter. Critical parameters like volume_min, cpc_min, etc., remain unexplained. The description does not compensate for the schema 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 states 'Get synonyms of keywords,' which identifies a verb and resource, but it is vague and does not distinguish from sibling tools like get_keywords_related or get_keywords_similar. With many similar keyword tools, the purpose is unclear.
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. Sibling tools suggest overlapping functionality, but the description offers no exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_best_keywordsC
Obtenir les meilleurs mots-clés de la page.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| lineCount | No | ||
| strategy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It states 'get best keywords' but fails to disclose that this is a read operation, what 'best' means, or any side effects, rate limits, or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, achieving conciseness but lacking structure. It is not front-loaded with critical details beyond the purpose. Every word is necessary given the brevity, but the description is underspecified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain input format, lineCount, strategy, or return values, leaving major gaps for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has three parameters (input, lineCount, strategy) with 0% description coverage. The description does not mention or explain any parameter meaning, usage, or expected values, leaving the agent entirely in the dark.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the best keywords of a page. The verb 'obtenir' and resource 'meilleurs mots-clés de la page' are specific, and the tool name mirrors this. However, it does not differentiate from siblings like 'get_keywords_find' or 'get_domains_top_pages'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its many siblings, such as 'get_keywords_find' or 'get_domains_top_pages'. No context, exclusions, or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_creditA
Obtenir les informations de crédit de l'utilisateur.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as read-only nature, side effects, or authentication requirements. The description fails to compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence that is front-loaded with the action. No extraneous content; every word is necessary.
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 parameters and no output schema, the description provides the minimal information needed. However, it lacks details about what the credit info contains (e.g., balance, usage) and the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so baseline is 4. Description adds no parameter-specific meaning but this is appropriate given the absence of 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?
Description clearly states the tool retrieves user credit information. Distinct from sibling tools which focus on domains/keywords, so no ambiguity about purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. However, given the distinct subject (user credit vs. domains/keywords), usage context is implied. Still lacks formal 'when-to-use' or 'when-not-to-use' instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
33 tool updates
v2.0.13- First observed
get_domains_bulk - First observed
get_domains_competitors - First observed
get_domains_competitors_best_pages - First observed
get_domains_competitors_keywords_best_pos - First observed
get_domains_competitors_keywords_diff - First observed
get_domains_expired - First observed
get_domains_expired_reveal - First observed
get_domains_gmb_backlinks - First observed
get_domains_gmb_backlinks_categories - First observed
get_domains_gmb_backlinks_map - First observed
get_domains_history_pages - First observed
get_domains_history_positions - First observed
get_domains_keywords - First observed
get_domains_overview - First observed
get_domains_positions - First observed
get_domains_top_pages - First observed
get_domains_visibility_trends - First observed
get_keywords_bulk - First observed
get_keywords_find - First observed
get_keywords_highlights - First observed
get_keywords_match - First observed
get_keywords_overview - First observed
get_keywords_questions - First observed
get_keywords_related - First observed
get_keywords_scrap - First observed
get_keywords_serp_availableDates - First observed
get_keywords_serp_compare - First observed
get_keywords_serp_pageEvolution - First observed
get_keywords_similar - First observed
get_keywords_site_structure - First observed
get_keywords_synonyms - First observed
get_page_best_keywords - First observed
get_user_credit
TDQS
Scored across 33 tools
Most tools have distinct purposes, but there is some overlap among keyword-related tools (e.g., get_keywords_match, get_keywords_similar) and between get_domains_history_pages and get_domains_history_positions, which could cause confusion.
All tool names follow a consistent get_entity_action pattern using snake_case, making it easy to infer the purpose from the name.
33 tools is on the high side, but the broad scope of SEO analysis (domains, keywords, competitors, SERPs) may justify the count. However, some tools seem redundant, so the count could be trimmed.
The tool set covers a wide range of SEO data retrieval needs (domains, keywords, competitors, SERP, backlinks). Minor gaps include lack of user management beyond credit info and potential redundancy between match and similar tools.
Maintenance
Related MCP Connectors
AI-powered SEO and marketing: keyword research, SERP analysis, and content optimization tools.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
SEO research, AI visibility, content, and audits through your Rankability workspace.
SEO analysis of your Google Search Console, Bing Webmaster Tools and GA4 data. Google sign-in.
Related MCP Servers
- -licenseCqualityNot gradedmaintenanceA Model Context Protocol server that exposes Haloscan SEO API functionality, allowing users to access keyword insights, domain analysis, and competitor research through Claude for Desktop and other MCP-compatible clients.32203 npm-
- AlicenseNot gradedqualityFmaintenanceConnects AI assistants to SEO APIs for backlinks analysis, keyword research, and traffic analysis.9 npm28MIT
- FlicenseNot gradedqualityDmaintenanceEnables professional SEO/SEM research with geolocalized keyword discovery, competitor analysis, and SERP ranking insights using DataForSEO API.-
- FlicenseBqualityCmaintenanceEnables SEO analysis and data retrieval through DataForSEO API, including keyword research, backlinks, competitor analysis, and on-page audits.24-