TDQS

reports / akhiqdtjjd

agent-data-api

27 tools · specification 1.2 · requested 2026-10-23 16:57:30 UTC

Server

Overall
A4.1definitions 70% · coherence 30%
Definition quality
A4.2mean 4.3 · min 3.9 · 27/27 tools
Coherence
A3.8

The agent-data-api server offers a comprehensive and well-organized set of SEO data tools with clear naming and mostly distinct purposes. The 27-tool count is high but justified by the breadth of data products. Minor overlaps exist between a few keyword/domain tools, but descriptions generally guide correct selection. No shadowing risks were identified among the supplied candidates.

4
DisambiguationMost tools have distinct purposes (e.g., keyword_metrics vs keyword_ideas vs keyword_difficulty), but some overlap exists: ranked_keywords and keywords_for_site both return keywords for a domain, and domain_overview vs traffic_estimate both provide traffic estimates. Descriptions help differentiate, but a few pairs could cause misselection.
4
Naming ConsistencyTool names follow a consistent snake_case verb_noun pattern (list_services, find_location, get_result, retry_request, keyword_metrics, google_serp, etc.). Minor deviations like 'preflight' and 'wishlist' are single-word verbs but still readable and not jarring.
3
Tool Count Appropriateness27 tools is on the higher end for a single server, but the scope (SEO/data API) is broad and each tool covers a distinct data product. It feels heavy but not excessive; a few tools like wishlist and preflight are auxiliary, but they serve clear purposes.
4
CompletenessThe server covers a wide range of SEO data needs: keyword research, SERP, local, news, images, domain analytics, and technical audits. Minor gaps exist (e.g., no tool for backlink analysis or social media metrics), but the core workflows are well-covered and the free tools (preflight, get_result, retry_request) round out the lifecycle.

Tools

  • list_services

    443454A3.9

    This is a well-crafted description for a simple, parameterless tool. It clearly states the purpose, provides usage guidance ('Call this first'), and adds value beyond the annotations by detailing the content of the list. The only minor improvement would be to describe the output format, but overall it's effective and concise.

    4
    Purpose Clarity · 25%The description clearly states the tool lists all paid data services with price, limits, notices, and example requests. It distinguishes itself from siblings by focusing on paid services and being a listing tool, though it doesn't explicitly name alternatives.
    4
    Usage Guidelines · 20%The description includes 'Call this first,' which provides clear usage context as an initial step. It implies that this tool should be used before others to understand available services, but doesn't explicitly state when not to use it or name alternatives.
    3
    Behavioral Transparency · 20%Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. It adds context about the content (price, limits, notices, example requests) and the 'FREE' aspect, which is useful. However, it doesn't disclose any potential side effects or additional behaviors beyond what annotations provide.
    4
    Parameter Semantics · 15%The tool has zero parameters, and the schema coverage is 100% (vacuously). The description adds value by explaining what the tool returns (price, limits, notices, example requests), which is more than the schema provides. Since there are no parameters to document, a baseline of 4 is appropriate.
    5
    Conciseness & Structure · 10%The description is extremely concise, with two short sentences that convey purpose, content, and usage guidance. Every word earns its place, and it's front-loaded with the key information ('FREE' and 'List all paid data services').
    4
    Contextual Completeness · 10%Given the tool's simplicity (no parameters, no output schema), the description is complete enough. It covers what the tool does, what it returns, and when to use it. The only minor gap is not describing the output format, but with no output schema, the description could have been more explicit about the structure of the list.
    params
    0 (0 required, 100% described)
    annotations
    readOnly=true openWorld=false
    output schema
    no
    cost
    0
    bytes
    341
    hash
    6b6e2ebe18264140
  • preflight

    554354A4.4

    The description is well-crafted, clearly explaining the tool's purpose, usage, and key behavioral traits. It effectively differentiates itself from paid tools and provides actionable guidance. The only minor gap is not detailing failure behavior, but overall it's a strong description that earns high scores across dimensions.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: to validate input for a paid tool and check budget/limits without incurring costs. It specifies the action (validate) and the resource (input for a paid tool), and it distinguishes itself from paid tools by emphasizing the free nature and the avoidance of payment.
    5
    Usage Guidelines · 20%The description explicitly says 'Use it before a paid call to avoid wasted payments,' providing clear guidance on when to use the tool. It also implies when not to use it (for actual paid calls) and contrasts with paid tools, though it doesn't name specific alternatives. This is sufficient for a preflight check tool.
    4
    Behavioral Transparency · 20%Annotations already declare readOnlyHint=true, so the description doesn't need to repeat that. The description adds valuable context: it's free, validates input, checks budget/limits, and returns normalized input. It also clarifies that it doesn't call any data provider, which is beyond the annotation. The only minor gap is not detailing what happens if validation fails, but the core behavior is well disclosed.
    3
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents both parameters. The description adds context that 'input' should be the same arguments as for the paid tool, which is helpful, but it doesn't add much beyond that. The baseline of 3 is appropriate since the schema does the heavy lifting.
    5
    Conciseness & Structure · 10%The description is two sentences, front-loaded with the key benefit (FREE) and purpose. Every sentence adds value: the first explains what it does, the second gives usage guidance. No wasted words.
    4
    Contextual Completeness · 10%Given the tool's simplicity (2 params, no output schema, read-only annotation), the description is quite complete. It covers the purpose, usage, and key behavioral aspects. The only minor omission is not explaining the return format beyond 'normalized input', but that's acceptable given the lack of output schema and the tool's straightforward nature.
    params
    2 (2 required, 100% described)
    annotations
    readOnly=true openWorld=false
    output schema
    no
    cost
    2
    bytes
    643
    hash
    ee362cc82f061a7f
  • free_sample

    554444A4.5

    The description is highly effective, clearly explaining the tool's purpose, usage, and behavioral constraints. It distinguishes itself from siblings and provides actionable guidance on when to use it and what to expect. The only minor gaps are the lack of explicit error response structure and the density of the text, but overall it is a strong, well-rounded description.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: to try a service for free, with two distinct modes (keyword-metrics lookup or a service call up to 0.05 USDC). It explicitly distinguishes from the paid tool by noting the same arguments and the added sample: true field, and it differentiates from siblings by mentioning packages like local_market_check that have no sample.
    5
    Usage Guidelines · 20%The description provides explicit usage guidance: when to use (for free trials), what to send (keyword or service+input), and when not to use (packages like local_market_check and services above 0.05 USDC). It also directs the agent to list_services to check free_sample per service, which is a clear alternative and prerequisite.
    4
    Behavioral Transparency · 20%Annotations include readOnlyHint=true and openWorldHint=true, but the description adds significant behavioral context: it explains the limits (one sample per service per day, shared daily total, max 3 failed samples), the error types (sample_used, sample_exhausted, sample_failures), and the return format (same JSON as paid tool plus sample: true, no result_token). This goes beyond the annotations, though it doesn't detail auth or rate limits beyond the daily caps.
    4
    Parameter Semantics · 15%Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the relationship between parameters: keyword is for the legacy keyword-metrics sample, while service and input are for per-service samples, and it clarifies that input takes the same arguments as the paid tool. It also mentions the 0.05 USDC threshold and the need to check list_services for free_sample, which enriches the parameter semantics beyond the schema.
    4
    Conciseness & Structure · 10%The description is a single dense paragraph, but it is front-loaded with the core purpose and then covers limits and exceptions. It is efficient with no wasted words, though the density might make it slightly harder to parse quickly. It earns a 4 because it packs a lot of necessary information without redundancy.
    4
    Contextual Completeness · 10%Given the tool's complexity (two modes, multiple limits, error conditions) and the absence of an output schema, the description is quite complete. It explains the return format, the limits, and the exceptions. It could be more complete by specifying the exact structure of the error responses or the format of the sample field, but it covers the essential operational details.
    params
    5 (0 required, 100% described)
    annotations
    readOnly=true openWorld=true
    output schema
    no
    cost
    0
    bytes
    1380
    hash
    92ee7e3ab2ef4525
  • find_location

    554355A4.5

    This is a well-crafted description that clearly explains the tool's purpose, usage context, and output applicability. It effectively distinguishes itself from sibling tools by specifying which tools require location codes versus country codes. The description adds value beyond the schema and annotations, making it highly useful for an AI agent.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: looking up city/region location codes in Germany, Austria, and Switzerland. It provides concrete examples (Rosenheim, Wien, Zürich) and explicitly distinguishes its output from country codes used by other tools, making it distinct from siblings.
    5
    Usage Guidelines · 20%The description explicitly states when to use this tool: for location codes needed by specific tools (google_serp, local_business, etc.) and when not to use it (for tools that take country codes). It also mentions the tool is free, which is a usage consideration. This is clear guidance on when to use versus alternatives.
    4
    Behavioral Transparency · 20%Annotations already declare readOnlyHint=true, so the description doesn't need to repeat that. The description adds value by stating the tool is free, which is a behavioral trait not in annotations. It also clarifies the scope (Germany, Austria, Switzerland) and the relationship to country codes, which is useful context beyond annotations. No contradiction.
    3
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents both parameters (query and country). The description adds examples of place names and clarifies that the query is a partial name, but it doesn't add much beyond the schema. Baseline 3 is appropriate.
    5
    Conciseness & Structure · 10%The description is two sentences, front-loaded with the key purpose and free status. Every sentence adds value: the first states what it does and gives examples, the second explains the output's applicability and the distinction from country codes. No wasted words.
    5
    Contextual Completeness · 10%For a simple lookup tool with two parameters, full schema coverage, and readOnlyHint annotation, the description is complete. It covers the purpose, scope, usage context, and output applicability. No output schema is needed for a simple code lookup, and the description sufficiently explains what the tool returns (location codes).
    params
    2 (1 required, 100% described)
    annotations
    readOnly=true openWorld=false
    output schema
    no
    cost
    1
    bytes
    791
    hash
    2611df3617b0ae4f
  • wishlist

    444354A4.0

    A well-crafted, concise description that clearly defines a simple write-only tool with explicit behavioral disclosures (write-only, no reply, rate limit) and parameter constraints. It does not need to compensate for schema gaps since the schema is fully covered, but it provides transparent usage guidance. Minor improvement would be explicitly stating when not to use it or alternatives.

    4
    Purpose Clarity · 25%The description clearly states the tool's purpose: to tell the operator which data tool you would pay for, with constraints on text length and frequency. It distinguishes itself from siblings by mentioning 'write-only' and 'no reply', which is unique among the sibling tools.
    4
    Usage Guidelines · 20%The description implies the tool is for submitting a wishlist request, but it does not explicitly contrast with alternatives. However, the 'FREE' and 'no personal data' guidance helps the agent decide when to use it, and the limit of 3 per day is a clear usage constraint.
    4
    Behavioral Transparency · 20%Annotations provide readOnlyHint=false and openWorldHint=false, but the description adds explicit behavioral traits: 'Write-only: nothing is published and no reply is sent' and frequency limit. This goes beyond the annotations, offering clear expectations of side effects and limitations.
    3
    Parameter Semantics · 15%The schema description for the single parameter is detailed ('Which data tool would you pay for, and roughly what for?') and covers 100% of parameters, so the description adds minimal additional semantic value. However, it reinforces constraints (10-300 chars, no personal data) already in the schema.
    5
    Conciseness & Structure · 10%The description is concise, front-loaded with 'FREE' and purpose, and every sentence adds valuable information: constraints, write-only behavior, and rate limit. No wasted words.
    4
    Contextual Completeness · 10%Given the tool's simplicity (one parameter, no output schema), the description is complete and sufficient. It explains the purpose, constraints, behavior, and limits, which is all an agent needs to invoke it correctly.
    params
    1 (1 required, 100% described)
    annotations
    readOnly=false openWorld=false
    output schema
    no
    cost
    1
    bytes
    581
    hash
    9c9ae4380db7ad7b
  • get_result

    554354A4.4

    This is a well-crafted description that clearly explains the tool's purpose, usage, and safety profile. It effectively differentiates from siblings and provides necessary behavioral context like expiration. Minor gaps in response format details are acceptable given the tool's simplicity and strong annotations.

    5
    Purpose Clarity · 25%The description clearly states the tool fetches a stored result of a paid call using request_id and result_token, and also reports status. It distinguishes itself from siblings by explicitly noting it is for retrieving results without paying again, which is unique among the listed tools.
    5
    Usage Guidelines · 20%The description explicitly says to use this tool instead of paying again when an answer was lost, and notes that it never charges or triggers a new data call. This provides clear when-to-use guidance and implicitly contrasts with paid tools like retry_request or other data-fetching tools.
    4
    Behavioral Transparency · 20%Annotations already declare readOnlyHint=true, and the description reinforces this with 'FREE and read-only' and 'never charges'. It adds valuable context about the 30-day retention and the 'expired' error, which is beyond the annotations. However, it doesn't detail the exact response format or error handling beyond expiration, but given the annotations cover the safety profile, this is sufficient.
    3
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents both parameters well. The description adds context that these come from the original response and that result_token is secret, but this is marginal beyond the schema. Baseline 3 is appropriate.
    5
    Conciseness & Structure · 10%The description is a single, well-structured paragraph that front-loads the key information (free, read-only) and then explains usage, retention, and error behavior. Every sentence adds value with no redundancy.
    4
    Contextual Completeness · 10%Given the tool's simplicity (2 params, no output schema, no nested objects), the description covers the essential aspects: purpose, usage, safety, and expiration. It could mention the response format, but the lack of an output schema and the tool's straightforward nature make this adequate. The description is complete enough for an agent to use it correctly.
    params
    2 (2 required, 100% described)
    annotations
    readOnly=true openWorld=false
    output schema
    no
    cost
    2
    bytes
    935
    hash
    9767a4bdfde6bae0
  • retry_request

    544354A4.2

    The description is clear and concise, effectively explaining the tool's purpose and usage. It provides sufficient behavioral context beyond the annotations, and the parameter semantics are well-covered by the schema. Minor gaps include lack of explicit exclusions or alternatives, but overall it is a well-crafted tool definition.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: to re-run a failed paid call at no extra charge, using request_id and result_token from the error response. It specifies the exact conditions (paid call failed after payment settled) and the required inputs, distinguishing it from other tools.
    4
    Usage Guidelines · 20%The description explicitly states when to use this tool: when a paid call failed at the data provider after payment was settled. It does not explicitly mention when not to use it or alternatives, but the context is clear enough for an agent to decide.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, but the description adds key behavioral context: it is free, re-runs the call once, and requires specific tokens from the error response. This goes beyond the annotations by explaining the cost and retry semantics.
    3
    Parameter Semantics · 15%The schema already provides 100% coverage for both parameters, describing them as coming from the error response. The description reinforces this by mentioning 'request_id and result_token from the error response', but adds no new details beyond the schema. Baseline 3 is appropriate.
    5
    Conciseness & Structure · 10%The description is a single, concise sentence that packs all essential information: the free nature, the condition (paid call failed after payment), the action (re-run once), and the required inputs. No wasted words.
    4
    Contextual Completeness · 10%Given the tool's simplicity (2 parameters, no output schema), the description is complete enough. It explains the trigger condition and the inputs, and the annotations cover safety aspects. It could mention what the response looks like, but that is not critical for a retry tool.
    params
    2 (2 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=false openWorld=true
    output schema
    no
    cost
    2
    bytes
    712
    hash
    9a2bd136b7e50e9f
  • keyword_metrics

    554444A4.5

    The description is highly effective, clearly stating the tool's purpose, usage prerequisites, and payment requirements. It provides strong guidance on when to use it and what to expect, with no contradictions to annotations. Minor improvements could include a more structured format and a sample response, but overall it is a well-crafted description.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: retrieving Google Ads search volume, competition, CPC, and 12-month history for up to 1000 keywords. It names the underlying data source (DataForSEO) and distinguishes it from siblings like 'keyword_ideas' and 'keyword_difficulty' by focusing on metrics and history.
    5
    Usage Guidelines · 20%The description explicitly states when to use this tool (for keyword metrics) and provides critical usage context: it requires a payment, specifies the exact payment amount and method, and explains the prerequisite of an x402-capable MCP client. It also mentions that without payment, the tool returns a 'payment required' result, guiding the agent on expected behavior.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds transparency about the paid nature, the exact cost, and the payment mechanism, which is not covered by annotations. It also clarifies that unsupported country/language pairs are refused before payment, preventing unexpected charges. However, it does not detail the exact structure of the returned JSON beyond 'JSON with keywords', but given the output schema is absent, this is a minor gap.
    4
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents all three parameters. The description adds value by explaining the default location code (2840) and providing examples for other countries, and by clarifying the language_code default behavior. It also mentions the free location lookup endpoint, which is helpful for agents. However, it does not add much beyond the schema for the 'keywords' parameter, but the schema is already detailed.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, then provides essential payment and usage details. It is a single paragraph but well-structured, with clear separation of the tool's function, return value, and payment requirements. It could be slightly more structured with bullet points, but it is not overly verbose.
    4
    Contextual Completeness · 10%Given the tool's complexity (paid, requires specific client, has multiple parameters), the description covers the essential aspects: what it does, how to pay, what to expect without payment, and parameter defaults. It lacks an output schema, but the description mentions the return type. It also provides enough context for an agent to decide when to use it versus siblings. The only missing piece is a more detailed example of the response structure, but that is not critical.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1637
    hash
    8988ed645090a30d
  • keyword_ideas

    554444A4.5

    This is a well-crafted description that clearly explains the tool's purpose, differentiates it from siblings, and provides critical usage context including payment and client requirements. It leverages the schema well and adds meaningful behavioral transparency. Minor gaps include lack of error handling details, but overall it's a strong example of a helpful tool description.

    5
    Purpose Clarity · 25%The description clearly states the tool's function: generating up to 25 keyword suggestions from a seed phrase, with specific metrics (search volume, CPC, competition). It explicitly distinguishes from sibling tools by naming keyword_metrics and keyword_difficulty as alternatives for different use cases, which is strong differentiation.
    5
    Usage Guidelines · 20%The description provides explicit guidance on when to use this tool ('find new phrases around one seed') and when not to (use keyword_metrics for exact volumes, keyword_difficulty for ranking difficulty). It also mentions the payment requirement and the need for an x402-capable client, which is critical usage context.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, but the description clarifies it's a paid call (0.025 USDC) and that without payment it returns a 'payment required' result without charging. It also discloses the output structure (JSON with seed_keywords, total_available, ideas) and the requirement for a specific MCP client. This adds significant behavioral context beyond annotations, though it doesn't detail error handling or rate limits.
    4
    Parameter Semantics · 15%Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the 'keywords' parameter as a seed phrase and clarifying the output is suggestions, not exact metrics. It also provides context for location_code with examples and default behavior, which goes beyond the schema's basic description.
    4
    Conciseness & Structure · 10%The description is dense but well-structured, with key information front-loaded (purpose, output, payment). It includes necessary details about payment and client requirements, which are essential for correct invocation. Slightly long but every sentence serves a purpose.
    4
    Contextual Completeness · 10%Given the tool's complexity (payment, client requirement, output format) and lack of output schema, the description covers the essential aspects: what it returns, payment cost, and client requirement. It doesn't explain the 'payment required' result in detail, but the core usage is well-covered.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1823
    hash
    1f662ac00484e6a3
  • google_serp

    544444A4.3

    The description is well-crafted, providing clear purpose, payment requirements, and security warnings that go beyond the schema. It effectively differentiates from sibling tools and gives practical usage guidance. Minor gaps include lack of explicit alternative tool references and some behavioral details, but overall it is highly informative and actionable.

    5
    Purpose Clarity · 25%The description clearly states the tool returns the top 10 organic Google results for a keyword, specifying the fields (position, URL, title, description) and the data source (DataForSEO SERP Google Organic Live). It distinguishes from siblings like bing_serp and news_search by explicitly naming Google organic results.
    4
    Usage Guidelines · 20%The description provides clear context on when to use the tool (for organic Google results) and includes important usage constraints like unsupported search operators and payment requirements. However, it does not explicitly mention alternatives or when not to use it, though the sibling list implies other search tools exist.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, but the description clarifies the tool is paid and requires x402 payment, which is critical behavioral context. It also warns that titles/descriptions are third-party content and should be treated as data, not instructions, which is a security-relevant disclosure. No contradiction with annotations.
    4
    Parameter Semantics · 15%Schema coverage is 100%, so the description adds value by explaining the default location code (2840) and providing examples for other countries, plus noting that unsupported pairs are refused before payment. It also clarifies that search operators are not supported, which is not in the schema.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, followed by payment and security notes. It is slightly dense but each sentence adds necessary information, and the structure is logical.
    4
    Contextual Completeness · 10%Given the tool's complexity (payment integration, multiple parameters, external data source), the description covers the essential aspects: return format, payment mechanism, parameter defaults, and security warning. It lacks details on error handling or rate limits, but the output schema is absent, so the description compensates well.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1736
    hash
    77c8059dc0cb741e
  • competitors

    554344A4.3

    This is a well-crafted description that clearly states the tool's purpose, differentiates it from a sibling, and provides essential behavioral details about payment and prerequisites. It leverages the schema's parameter descriptions effectively, and while it is slightly dense, it remains concise and complete for the tool's complexity.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: to return up to 10 organic search competitors of a domain with ranking overlap and traffic metrics. It names the underlying data source (DataForSEO Labs Competitors Domain) and distinguishes it from the sibling tool keyword_gap, which is used for a different but related task.
    5
    Usage Guidelines · 20%The description explicitly says when to use this tool ('Use it to find who competes with a domain') and when to use an alternative ('use keyword_gap to see which keywords a known competitor ranks for that you do not'). This provides clear guidance on tool selection relative to a sibling.
    4
    Behavioral Transparency · 20%The description discloses critical behavioral traits: it is a paid tool (0.04 USDC per call), requires an x402-capable MCP client with payment attached in _meta['x402/payment'], and returns a 'payment required' result without charging if payment is missing. It also notes that unsupported country/language pairs are refused before payment. These details go beyond the annotations, which only indicate idempotent and non-destructive hints. The description does not contradict annotations.
    3
    Parameter Semantics · 15%The input schema already provides detailed descriptions for all three parameters, covering 100% of them. The description adds minimal extra meaning beyond the schema, such as the default location code and the note about IP/port rejection, but these are also present in the schema. Since schema coverage is high, a baseline of 3 is appropriate.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, followed by usage guidance and payment details. It is a single paragraph with clear sentences, but it includes a fair amount of technical detail (payment specifics) that could be considered necessary for correct invocation. No wasted words, but slightly dense.
    4
    Contextual Completeness · 10%Given the tool's complexity (paid, requires specific client setup, has multiple parameters), the description covers the essential aspects: what it returns, how to pay, and when to use it. It does not describe the output structure in detail, but since there is no output schema, the description's mention of 'Returns: JSON with target, total_available, competitors' is sufficient. The description is complete enough for an agent to invoke it correctly.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1712
    hash
    bd2bd30828e2ad47
  • search_intent

    544344A4.1

    The description is well-crafted, clearly stating the tool's purpose, usage context, and critical behavioral requirements (payment, client capability, data source limitations). It effectively complements the schema and annotations, providing necessary transparency for a paid tool. Minor gaps include lack of explicit alternative tool references and detailed output structure, but overall it is a strong description.

    5
    Purpose Clarity · 25%The description clearly states the tool's function: classifying search intent (informational, navigational, commercial, transactional) with probability for up to 10 keywords. It names the specific data source (DataForSEO Labs) and explicitly mentions the use case of deciding keyword suitability for different page types, distinguishing it from sibling tools like keyword_metrics or keyword_ideas.
    4
    Usage Guidelines · 20%The description provides clear context on when to use the tool (to decide whether a keyword suits a page type) and mentions the payment requirement and client capability. However, it does not explicitly state when not to use it or name alternative tools, though the sibling list implies alternatives exist. The guidance is sufficient for most use cases.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds critical behavioral context: it is a paid tool (0.04 USDC per call), requires an x402-capable client with payment attached, and returns a 'payment required' result if not paid. It also discloses that intent labels come from DataForSEO and language coverage is not guaranteed. This goes beyond annotations, though it does not detail the exact response structure beyond mentioning keywords and not_classified.
    3
    Parameter Semantics · 15%The schema already provides a detailed description of the 'keywords' parameter (1-10 entries, max 80 chars, lowercased, duplicates removed). The description adds the context that keywords are used for intent classification and mentions the output includes 'keywords' and 'not_classified', but does not add significant new meaning beyond the schema. With 100% schema coverage, a baseline of 3 is appropriate.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, followed by payment details and caveats. It is a single paragraph but well-structured with clear sentences. It could be slightly more structured (e.g., bullet points for payment and caveats), but it is efficient and every sentence adds value.
    4
    Contextual Completeness · 10%Given the tool's complexity (paid, requires specific client, external data source), the description covers essential aspects: purpose, payment, client requirement, and data source limitations. It lacks an output schema, but the description mentions the return format (JSON with keywords, not_classified). It is complete enough for an agent to invoke correctly, though it could specify the exact JSON structure or error handling.
    params
    1 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1246
    hash
    c409f96b692259c2
  • ai_keyword_demand

    555445A4.8

    This is an exemplary tool description that goes beyond the schema and annotations to provide critical operational details: payment requirements, estimation methodology, and usage guidance. It clearly distinguishes itself from sibling tools and sets correct expectations for a paid, modeled-data service. The only minor improvement would be to trim some redundancy, but it is already highly effective.

    5
    Purpose Clarity · 25%The description clearly states the tool models AI-search demand for up to 10 keywords with 12-month history, and explicitly distinguishes it from measured counts. It names the data source (DataForSEO) and the return fields, making the purpose unambiguous and distinct from sibling tools like keyword_metrics or google_trends.
    5
    Usage Guidelines · 20%The description explicitly states when to use it (as a relative demand indicator) and when not to (not actual prompt counts), and provides clear prerequisites: requires an x402-capable MCP client and payment attachment. It also notes that unsupported country/language pairs are refused before payment, guiding the agent on valid usage.
    5
    Behavioral Transparency · 20%The description discloses critical behavioral traits beyond annotations: it is a paid tool (0.04 USDC per call), requires payment in _meta['x402/payment'], and returns a 'payment required' result if payment is missing. It also explains the estimation methodology and its limitations, which is essential for the agent to set expectations. No contradiction with annotations (readOnlyHint=false, idempotentHint=true) is present.
    4
    Parameter Semantics · 15%Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the default behavior for language_code (English if available) and providing concrete examples for location_code (2840, 2276, etc.) and the free lookup endpoint. It also clarifies that unsupported pairs are refused before payment, which is not in the schema.
    4
    Conciseness & Structure · 10%The description is dense but well-structured, with key information front-loaded (purpose, returns, payment) and important caveats at the end. It is longer than ideal but every sentence adds value, covering payment, methodology, and usage constraints. Slight redundancy in the note about modeled estimates, but overall efficient.
    5
    Contextual Completeness · 10%Given the tool's complexity (paid, external API, estimation methodology), the description is remarkably complete. It covers payment requirements, return structure, data source, limitations, and parameter defaults. No output schema exists, but the description lists the return fields (estimate, source, methodology, keywords, not_found), which is sufficient for the agent to understand the response.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1966
    hash
    9f459809e5d18f72
  • ranked_keywords

    544344A4.1

    The description is strong, clearly stating the tool's purpose, output, and critical payment requirements. It provides good behavioral transparency beyond the annotations, especially regarding payment and error handling. The parameter semantics are adequately covered by the schema, and the description adds useful context on defaults and lookups. Minor gaps include lack of explicit usage guidance versus siblings and some verbosity in payment details, but overall it is a well-crafted description.

    5
    Purpose Clarity · 25%The description clearly states the tool returns up to 25 Google keywords a domain ranks for, with specific metrics (position, ranking page, search volume, CPC, difficulty). It names the data source (DataForSEO Labs Ranked Keywords) and the output structure (JSON with target, total_available, keywords), distinguishing it from sibling tools like keyword_ideas or keyword_metrics.
    4
    Usage Guidelines · 20%The description explains the payment requirement and the need for an x402-capable MCP client, which is a critical usage condition. It also notes that unsupported country/language pairs are refused before payment, providing clear context. However, it does not explicitly state when to use this tool versus alternatives like keyword_ideas or competitors, though the purpose is specific enough to infer.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds critical behavioral details: the tool is paid (0.04 USDC per call), requires a specific payment mechanism, and returns a 'payment required' result without charging if payment is absent. It also mentions that IP addresses and ports are rejected, and unsupported language/location pairs are refused before payment. This goes beyond the annotations, which do not mention payment or error handling.
    3
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents all three parameters. The description adds some value by explaining the default location code (2840 = US) and the free lookup endpoint for city/region codes, but it does not add much beyond the schema's own descriptions. The domain parameter's behavior (reducing URLs to domains) is already in the schema. Thus, a baseline 3 is appropriate.
    4
    Conciseness & Structure · 10%The description is a single paragraph that is information-dense but not overly long. It front-loads the core purpose and output, then covers payment and requirements. Every sentence adds value, though the payment details could be more concise. It is well-structured for an agent to parse.
    4
    Contextual Completeness · 10%Given the tool's complexity (paid, requires specific client, has error conditions), the description covers the essential aspects: output format, payment, prerequisites, and validation behavior. There is no output schema, so the description's mention of the JSON structure is helpful. It does not detail pagination or rate limits, but for a tool with a max of 25 keywords, that is less critical. Overall, it is complete enough for an agent to use correctly.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1597
    hash
    e13be08c96a086a0
  • keyword_difficulty

    554344A4.3

    This is a high-quality description for a paid API tool. It clearly states purpose, usage context, and essential payment behavior, making it highly actionable for an AI agent. The schema is thorough, and the description adds necessary payment transparency, though it could potentially be slightly more concise by trimming redundant details.

    5
    Purpose Clarity · 25%The description clearly states the tool computes keyword difficulty scores (0-100) for up to 100 keywords, using DataForSEO Labs Bulk Keyword Difficulty. It distinguishes itself from siblings like keyword_metrics or keyword_ideas by focusing specifically on difficulty scores.
    5
    Usage Guidelines · 20%The description specifies when to use this tool (for keyword difficulty lookups), what it returns, and importantly, the payment requirement and client prerequisites. It implies it's for bulk queries (up to 100 keywords) and distinguishes from alternatives by name.
    4
    Behavioral Transparency · 20%The description clearly discloses the PAID nature, exact cost, payment method (USDC, chain), and that without payment it returns a 'payment required' result. This is critical behavioral info not in annotations. Annotations provide readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false, which are consistent. No contradiction.
    3
    Parameter Semantics · 15%The schema description coverage is 100%, with detailed parameter descriptions including defaults, ranges, and examples. The description adds little beyond restating the core function, but the schema already provides rich semantics. Baseline 3 is appropriate.
    4
    Conciseness & Structure · 10%The description is relatively concise, but includes essential pricing and payment details. It is front-loaded with the core purpose. Some redundancy with schema (e.g., 'up to 100 keywords') but not excessive.
    4
    Contextual Completeness · 10%Given the tool has an output schema (not present), but the description provides enough for an agent to understand the return format (JSON with keywords, not_found). It covers payment prerequisites and error handling. For a paid tool, it's quite complete.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1610
    hash
    4141506f9e80c60a
  • domain_overview

    544444A4.3

    The description is well-crafted, clearly stating the tool's purpose and usage context, with strong parameter semantics and behavioral transparency around the payment requirement. It slightly lacks explicit alternatives or when-not-to-use guidance, but overall it is a high-quality description that effectively guides an agent.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: 'Organic and paid search footprint of a domain' with specific metrics (keyword count, estimated traffic, traffic value, ranking distribution). It distinguishes itself from siblings by naming the underlying DataForSEO Labs Domain Rank Overview and explicitly mentions the output structure (target, organic, paid).
    4
    Usage Guidelines · 20%The description provides clear context on when to use the tool (for domain-level search footprint analysis) and includes important usage prerequisites (x402 payment requirement, client setup). However, it does not explicitly state when not to use it or mention alternatives among siblings, though the unique paid nature and specific data source imply differentiation.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds critical behavioral context: it is a paid tool (0.04 USDC per call), requires a specific payment mechanism, and returns a 'payment required' result without charging if payment is missing. It also notes that unsupported country/language pairs are refused before payment. This goes beyond annotations, though it does not detail response format or error handling beyond payment.
    4
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents all three parameters. The description adds value by explaining the domain parameter's normalization (URLs reduced to domain, IPs/ports rejected) and the location_code's default and country-level examples, which are not fully in the schema. It also clarifies the language_code default behavior. This is a solid enhancement over the schema.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, followed by payment and parameter details. It is a single paragraph but well-structured, with no redundant sentences. Slightly dense but each sentence adds necessary information.
    4
    Contextual Completeness · 10%Given the tool's moderate complexity (3 params, no output schema), the description covers the essential aspects: purpose, payment requirements, parameter nuances, and refusal behavior. It lacks explicit return value details, but since there is no output schema, the description could have elaborated on the JSON structure beyond 'target, organic, paid'. However, the payment and usage context is well covered, making it nearly complete.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1602
    hash
    4d9740f953aa5033
  • keyword_gap

    544344A4.1

    The description is well-crafted, clearly explaining the tool's purpose, payment requirements, and client prerequisites. It effectively differentiates from siblings and provides necessary behavioral transparency. Minor gaps include lack of explicit alternatives and some parameter details already covered by schema, but overall it is a high-quality description.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: it returns keywords a competitor ranks for that your domain does not, with specific details on sorting and data source. It distinguishes itself from siblings like keyword_metrics and keyword_ideas by focusing on domain intersection.
    4
    Usage Guidelines · 20%The description provides clear context on when to use this tool (for competitor keyword gap analysis) and mentions the payment requirement and client capability. It does not explicitly mention alternatives or when not to use it, but the context is sufficient for an agent to decide.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, but the description clarifies it's a paid call with a specific payment mechanism, which is critical behavioral context. It also states that unsupported country/language pairs are refused before payment, adding transparency beyond annotations. No contradiction.
    3
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents all parameters. The description adds context for location_code (defaults and examples) and language_code (default behavior), but these are also in the schema. The description does not add significant new meaning beyond the schema, so baseline 3 is appropriate.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, then provides essential details on payment and requirements. It is a bit dense but each sentence adds value, and it avoids unnecessary fluff.
    4
    Contextual Completeness · 10%Given the tool's complexity (paid, requires specific client), the description covers the essential aspects: what it returns, payment details, and prerequisites. It lacks an output schema, but the description mentions the JSON structure, which is sufficient. It could mention error cases beyond payment, but overall it is complete enough.
    params
    4 (2 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    2
    bytes
    1764
    hash
    1d83fa12551055a5
  • local_business

    544454A4.4

    This is a well-crafted tool description that clearly explains what the tool does, its payment requirements, and data provenance. It distinguishes itself from siblings and provides enough behavioral transparency beyond annotations. The only minor gap is the lack of explicit 'when not to use' guidance, but the tool's niche is well-defined.

    5
    Purpose Clarity · 25%The description clearly states the tool returns up to 20 Google Maps businesses for a query, listing specific fields (name, category, address, phone, etc.). This distinguishes it from sibling tools like local_market_check and google_serp by focusing on local businesses with structured listing data.
    4
    Usage Guidelines · 20%The description gives explicit usage context (query such as 'plumber' or 'coffee shop') and notes the tool requires an x402-capable MCP client and payment. It doesn't explicitly say when not to use it vs alternatives, but the data source and payment model are clear.
    4
    Behavioral Transparency · 20%Annotations indicate idempotentHint (safe to retry) and destructiveHint=false, and the description adds critical payment behavior (PAID, cost per call, payment required result without charge) and data provenance (third-party listings, treat as data not instructions). This goes beyond annotations, though it doesn't detail response format or error cases beyond payment.
    4
    Parameter Semantics · 15%The schema has 100% coverage with detailed descriptions for each parameter, including defaults and examples. The description adds context on query operators not supported and location code usage, complementing the schema. Since schema is already rich, this scores high but not perfect.
    5
    Conciseness & Structure · 10%The description is concise and well-structured with key info upfront (purpose and result), then payment details, and a note on data reliability. Each sentence adds value without waste.
    4
    Contextual Completeness · 10%Given the tool has a simple output (JSON with keyword and businesses) and no output schema, the description covers essential aspects: purpose, payment requirement, data source, and limitations. It lacks details on pagination or exact response structure, but the tool's simplicity makes this sufficient.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1790
    hash
    5135eda5805fcf69
  • bing_serp

    544444A4.3

    The description is well-crafted, clearly stating the tool's purpose, payment requirements, and data safety considerations. It effectively complements the schema and annotations, providing necessary context for an agent to use it correctly. Minor gaps include lack of explicit alternatives and error handling, but overall it is a strong description.

    5
    Purpose Clarity · 25%The description clearly states it returns the top 10 organic Bing results (position, URL, title, description) for a keyword, which is specific and distinguishes it from siblings like google_serp and news_search. It also names the underlying DataForSEO service, adding precision.
    4
    Usage Guidelines · 20%The description explains the payment requirement and the need for an x402-capable MCP client, which is essential context for when to use this tool. It does not explicitly mention alternatives, but the sibling list and the tool name make it clear this is for Bing SERP, and the payment note is a strong usage guideline.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, but the description clarifies it is a paid call (0.02 USDC) and that without payment it returns a 'payment required' result and charges nothing. It also warns that titles/descriptions are third-party content and should be treated as data, not instructions, which is valuable behavioral context beyond annotations.
    4
    Parameter Semantics · 15%The schema already provides detailed descriptions for all three parameters (keyword, language_code, location_code), including defaults and examples. The description adds the note that search operators are not supported, which is not in the schema, and clarifies the payment parameter in _meta, but the schema coverage is 100%, so the description's added value is moderate.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, then covers payment and data safety. It is a bit dense with technical details (eip155:8453, x402 v2) but each sentence adds necessary information. No fluff.
    4
    Contextual Completeness · 10%Given the tool's complexity (payment, external service, data safety), the description covers the essential aspects: what it returns, payment requirements, and the nature of the content. It lacks details on error handling or rate limits, but the output schema is absent, so the description does not need to explain return values beyond the JSON structure mentioned.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1727
    hash
    d0059ce9dbc51c58
  • page_audit

    544444A4.3

    The description is well-crafted, providing clear purpose, usage context, and critical behavioral details like payment and security. It effectively compensates for the lack of an output schema by listing return fields. The only minor improvement would be to explicitly mention alternatives or when not to use this tool, but overall it is a high-quality description.

    5
    Purpose Clarity · 25%The description clearly states the tool performs a 'Quick technical SEO audit of one public page' and lists the specific checks (status code, title, meta description, headings, links, images, load time, on-page checks). It distinguishes itself from siblings by specifying the DataForSEO On-Page Instant Pages source and the no-JavaScript-rendering limitation, which is unique among the listed tools.
    4
    Usage Guidelines · 20%The description provides clear context on when to use the tool (for a quick technical SEO audit of a single public page) and explicitly states the requirement for an x402-capable MCP client with payment attached. It does not explicitly mention alternatives or when not to use it, but the context is sufficient for an agent to decide.
    4
    Behavioral Transparency · 20%The description discloses key behavioral traits: it is a paid tool (0.02 USDC per call), requires a specific payment mechanism, and returns a 'payment required' result if no payment is attached. It also warns that title and description are third-party content and should be treated as data, not instructions. Annotations indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, which align with the description's implication of a read-only, idempotent operation. The description adds value by explaining the payment behavior and the security note, which are not in annotations.
    4
    Parameter Semantics · 15%The schema already provides a description for the 'url' parameter, including the example and rejection criteria (IP addresses, ports, credentials). The description adds context about the tool's scope (one public page) and the payment requirement, but does not add much beyond the schema for the parameter itself. Since schema coverage is 100%, the baseline is 3, but the description's clarification that the URL must be public and the payment requirement adds a bit more, so a 4 is justified.
    4
    Conciseness & Structure · 10%The description is moderately long but packed with essential information: what it does, what it returns, cost, payment mechanism, and a security note. It is front-loaded with the purpose and then details. It could be slightly more concise, but every sentence adds value, so it earns a 4.
    4
    Contextual Completeness · 10%Given the tool's complexity (paid, requires specific client, returns a detailed JSON), the description is quite complete. It covers the return fields, the payment requirement, and the security warning. It does not have an output schema, so the description's listing of return fields is crucial and well done. The only minor gap is not specifying what happens if the URL is invalid or unreachable, but the schema's rejection criteria partially covers that.
    params
    1 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1238
    hash
    cc1c64052a67fe10
  • domain_technologies

    544444A4.3

    The description is well-crafted, clearly stating the tool's purpose, usage context, and critical behavioral details like payment requirements and security warnings. It effectively differentiates from sibling tools and provides sufficient information for an agent to invoke it correctly. Minor improvements could include explicit alternative tool references, but overall it is a high-quality description.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: to identify technologies (CMS, analytics, servers, frameworks, marketing tools) used by a website, grouped by category. It explicitly mentions the use case of analyzing competitors or prospects, which distinguishes it from sibling tools like 'domain_overview' or 'page_audit' that focus on other aspects.
    4
    Usage Guidelines · 20%The description provides clear context on when to use the tool (to see which CMS, analytics, or marketing tools a competitor or prospect runs) and mentions the payment requirement. However, it does not explicitly state when not to use it or name alternative tools, though the sibling list implies alternatives exist.
    4
    Behavioral Transparency · 20%The description discloses important behavioral traits: it is a paid tool (0.03 USDC per call), requires an x402-capable MCP client with payment attached in _meta, and returns a 'payment required' result if no payment is made. It also warns that title and description are third-party content and should be treated as data, not instructions, and that contact details are deliberately omitted. These go beyond the annotations, which only indicate idempotent and non-destructive hints.
    4
    Parameter Semantics · 15%The schema already provides a detailed description for the 'domain' parameter, including that URLs are reduced to domain and IPs/ports are rejected. The description adds context about the return structure (JSON with domain, found, title, etc.) but does not add new parameter-level details. Since schema coverage is 100%, a baseline of 3 is appropriate, but the description's mention of the return fields adds value, justifying a 4.
    4
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose, followed by return format, pricing, and security notes. It is a single paragraph but well-structured with clear sentences. It could be slightly more compact, but every sentence adds necessary information (purpose, return, payment, security).
    4
    Contextual Completeness · 10%Given the tool's complexity (payment integration, third-party content warnings), the description covers essential aspects: what it returns, how to pay, and security considerations. It lacks an output schema, but the description lists the return fields, which is sufficient. The description is complete for an agent to decide when and how to invoke it.
    params
    1 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1269
    hash
    031cd30eff8dc1d2
  • keywords_for_site

    554444A4.5

    The description is well-crafted, clearly distinguishing this tool from siblings and providing essential usage guidance including payment requirements. It adds value beyond the schema by explaining defaults and payment behavior. Minor gaps include lack of explicit rate limits or error handling, but overall it is highly effective.

    5
    Purpose Clarity · 25%The description clearly states the tool returns up to 25 Google keywords with metrics for a website, and explicitly contrasts with ranked_keywords for what a site already ranks for. This distinguishes it from siblings and specifies the resource (website) and action (find target keywords).
    5
    Usage Guidelines · 20%The description explicitly says 'Use it to find what a site should target; use ranked_keywords for what it already ranks for,' providing clear when-to-use and an alternative. It also mentions payment requirements and client capabilities, which are essential for correct usage.
    4
    Behavioral Transparency · 20%Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds critical behavioral context: it is a paid tool requiring x402 payment, returns a 'payment required' result without charge if unpaid, and rejects IP addresses/ports. This goes beyond annotations, though it doesn't detail rate limits or error handling beyond payment.
    4
    Parameter Semantics · 15%Schema coverage is 100%, so baseline is 3. The description adds value by explaining the default behavior for language_code (English if available, else first language) and location_code defaults (2840 = US) with examples. It also clarifies that unsupported country/language pairs are refused before payment, which is not in the schema.
    4
    Conciseness & Structure · 10%The description is a single paragraph but front-loads the core purpose and key metrics. It includes necessary payment and client details, which are verbose but essential. Slightly long, but every sentence adds value; no fluff.
    4
    Contextual Completeness · 10%Given the tool's complexity (payment, multiple parameters, output structure), the description covers the return format (JSON with domain, total_available, keywords), payment requirements, and parameter defaults. It lacks details on output schema (no output schema provided) but the description mentions the key fields. It is complete enough for an agent to invoke correctly.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1696
    hash
    a7ca14b37bc89312
  • traffic_estimate

    544455A4.5

    This is a high-quality tool description that clearly explains the tool's purpose, usage constraints, and critical payment requirements. It effectively complements the schema and annotations, providing essential behavioral transparency for a paid API call. The only minor gap is the lack of explicit alternative tool references, but the description is otherwise exemplary.

    5
    Purpose Clarity · 25%The description clearly states the tool's purpose: 'Estimated monthly organic and paid Google traffic for up to 10 domains in one call'. It specifies the resource (domains), the action (estimate traffic), and the scope (up to 10 domains). It also names the underlying service (DataForSEO Labs Bulk Traffic Estimation), which distinguishes it from sibling tools like keyword_metrics or domain_overview.
    4
    Usage Guidelines · 20%The description provides clear context on when to use the tool (for bulk traffic estimation) and includes important usage constraints: 'up to 10 domains in one call' and the requirement for an x402-capable MCP client with payment attached. It does not explicitly name alternative tools for single-domain traffic estimates, but the sibling list includes domain_overview and keyword_metrics, which could serve that purpose. The description implies the tool is for bulk estimation, which is sufficient.
    4
    Behavioral Transparency · 20%Annotations declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds critical behavioral context: the tool requires a payment of 0.04 USDC per call, and without payment it returns a 'payment required' result and charges nothing. It also explains the payment mechanism (x402, _meta['x402/payment']) and that unsupported country/language pairs are refused before payment. This goes beyond the annotations and is essential for the agent to use the tool correctly.
    4
    Parameter Semantics · 15%Schema description coverage is 100%, so the schema already documents all three parameters. The description adds value by explaining the payment requirement and the behavior for unsupported language/location pairs, but it does not add much beyond the schema for the parameters themselves. The schema descriptions are already detailed (e.g., domain format, location codes, language defaults), so the description's contribution is minimal. Baseline 3 is appropriate, but the description's note on 'unsupported country/language pairs are refused before payment' adds a small semantic layer, so a 4 is justified.
    5
    Conciseness & Structure · 10%The description is concise and front-loaded with the core purpose. It uses a clear structure: purpose, return format, cost, payment requirement, and failure behavior. Every sentence adds value, and there is no fluff. It is appropriately sized for the tool's complexity.
    5
    Contextual Completeness · 10%Given the tool's complexity (payment integration, multiple parameters, external service), the description is complete. It covers the return format (JSON with domains, not_found), the payment mechanism, the failure mode, and the parameter constraints. The schema covers parameter details, and the description covers the behavioral aspects. No output schema exists, but the description explicitly states the return format, which is sufficient.
    params
    3 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    1713
    hash
    61cc945d656bf650
  • local_market_check

    544534A4.3

    The description is strongly purpose-driven, clearly explaining a paid local search package with specific output fields and payment handling. It provides valuable parameter context with location code examples and behavioral transparency around payments and third-party content. Minor verbosity exists but overall it's above average in clarity and usefulness.

    5
    Purpose Clarity · 25%The description clearly states it is a package for one local search returning top 10 Google organic results, local pack, and Maps businesses, explicitly listing output fields. It distinguishes itself from siblings like google_serp and local_business by specifying the combined organic+Maps scope with optional domain position check.
    4
    Usage Guidelines · 20%It explains the tool is for local searches with keyword format (business type + city) and notes the default location codes for US/DE/AT/CH. However, it does not explicitly say when to use this over sibling tools like local_business or google_serp, though the description implies it for local market analysis.
    4
    Behavioral Transparency · 20%Annotations are minimal (readOnly=false, idempotent=true), so description carries the load. It clearly states the payment requirement, x402 client necessity, that unpaid calls return 'payment required' and charge nothing, and warns about third-party content not being instructions. It also notes unsupported location/language pairs are refused before payment, which is valuable.
    5
    Parameter Semantics · 15%Schema coverage is 100% but description adds crucial examples for location_code (2840=US, 2276=Germany, etc.) and keyword format examples. It also clarifies language_code default behavior and that city/region codes are accepted in certain countries, which the schema doesn't imply.
    3
    Conciseness & Structure · 10%The description is fairly dense and front-loaded with purpose, but it repeats some info (e.g., 'one payment' mentioned twice, 'package' repeated). The payment and client requirements are detailed but could be tightened without losing critical information.
    4
    Contextual Completeness · 10%Given it's a paid tool with no output schema, the description provides an explicit list of returned keys, payment flow, and error behavior. It lacks details on rate limits or exact error formats, but the complexity is moderate and the essentials are covered despite the lack of output schema.
    params
    4 (1 required, 100% described)
    annotations
    readOnly=false destructive=false idempotent=true openWorld=true
    output schema
    no
    cost
    1
    bytes
    2236
    hash
    304f90705bfc3ae8

Deterministic findings

  • infolist_services no-output-schemalist_services has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infopreflight no-output-schemapreflight has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infofree_sample no-output-schemafree_sample has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infofind_location no-output-schemafind_location has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infowishlist no-output-schemawishlist has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infoget_result no-output-schemaget_result has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • inforetry_request no-output-schemaretry_request has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infokeyword_metrics no-output-schemakeyword_metrics has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infokeyword_ideas no-output-schemakeyword_ideas has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infogoogle_serp no-output-schemagoogle_serp has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infocompetitors no-output-schemacompetitors has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infosearch_intent no-output-schemasearch_intent has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infoai_keyword_demand no-output-schemaai_keyword_demand has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • inforanked_keywords no-output-schemaranked_keywords has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infokeyword_difficulty no-output-schemakeyword_difficulty has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infodomain_overview no-output-schemadomain_overview has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infokeyword_gap no-output-schemakeyword_gap has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infogoogle_trends no-output-schemagoogle_trends has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infolocal_business no-output-schemalocal_business has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infobing_serp no-output-schemabing_serp has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infopage_audit no-output-schemapage_audit has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infodomain_technologies no-output-schemadomain_technologies has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infokeywords_for_site no-output-schemakeywords_for_site has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infotraffic_estimate no-output-schematraffic_estimate has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infonews_search no-output-schemanews_search has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infoimage_search no-output-schemaimage_search has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.
  • infolocal_market_check no-output-schemalocal_market_check has no output schema, so the description has to explain return values itself. Providing one lets the description spend those words elsewhere.

Share

The badge shows the overall tier and score, and links here. The JSON is the same report the CLI's hosted mode prints.

README badge
[![TDQS](https://tdqs.dev/reports/akhiqdtjjd/badge.svg)](https://tdqs.dev/reports/akhiqdtjjd)
Report as JSON

Automate

The same check from a terminal, a CI job or a script, with an API key from your account. Submitting spends one of the account's daily calls; reading the result spends nothing.

The exit code is the verdict, so the command is the gate. A stdio command or a server URL can stand in for the file.

export TDQS_API_KEY=tdqs_...

# exit code 1 below B, so the command is the gate; uvx runs the same command from PyPI
npx mcp-tdqs score --file tools.json --hosted https://tdqs.dev --fail-under B
Command line reference