Skip to main content
Glama

Server Details

135 MCP tools: geo, email, phone, company, DNS, FX, equities, weather, tax, econ, intel — one key.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

129 tools
address_enrichAddress EnrichmentA
Read-onlyIdempotent
Inspect

Validate a US address and return the full ZIP enrichment (demographics, risk, climate, nearest airport, hazards) in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesFree-form US address: street, city, state, ZIP.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already communicate read-only, idempotent, and non-destructive behavior. The description adds valuable context about the actual output payload — full ZIP enrichment including demographics, risk, climate, nearby airport, and hazards. It does not describe behavior on invalid addresses, but given the strong annotation coverage, this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence with no filler. It front-loads the action and resource, then packs the key enrichment categories into a parenthetical list. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a tool with a single required parameter, strong annotations, and no nested schemas, the description is complete enough for selection and invocation. It states the input type, the US scope, and the main output categories. The absence of an output schema is partially mitigated by the explicit enrichment list, though exact response structure is not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, and the schema already states 'Free-form US address: street, city, state, ZIP.' The description only repeats the 'US address' concept and adds no new parameter semantics beyond the schema. A baseline of 3 is appropriate because the schema carries the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Validate') and resource ('US address'), then clearly lists the enrichment output: demographics, risk, climate, nearest airport, hazards. This distinguishes address_enrich from sibling tools like address_validate and geo_zip_lookup without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The 'in one call' phrase and the enumerated enrichment categories give an agent clear context for when this tool is appropriate. It does not explicitly name alternatives or exclusion criteria, such as using address_validate when only validation is needed, but the use case is clearly understandable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

address_validateUS Address ValidationA
Read-onlyIdempotent
Inspect

Parse and validate a free-form US address: standardize street/unit/city/state/ZIP and cross-check the ZIP against the geo dataset for state and city consistency.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesFree-form US address — street, city, state, ZIP.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds useful behavioral detail beyond annotations: it standardizes street/unit/city/state/ZIP and cross-checks ZIP against the geo dataset for state and city consistency. No contradiction exists, though it does not cover error handling or output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the primary purpose and then adds necessary specifics. There is no redundant text or filler; every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a one-parameter read-only tool, the description sufficiently defines the input form and the underlying validation/standardization process. The absence of an output schema is slightly mitigated by the description's mention of standardized components and ZIP consistency, but it never explicitly states the return value or invalid-address behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already documents the address parameter with 100% coverage, so the baseline is 3. The description reinforces that the address is free-form and lists components, but it adds no syntax examples, format expectations, or canonicalization rules beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description names a specific resource (US address) and specific operations: parse, validate, standardize, and cross-check ZIP consistency. It is clear about what the tool does, but it does not explicitly differentiate from siblings like address_validate_batch or address_enrich, so it stops short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description makes clear this tool is for a single free-form US address needing normalization and validation, which implies appropriate use. It does not explicitly state when to prefer address_enrich or address_validate_batch, so exclusion guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

address_validate_batchAddress Validation BatchA
Read-onlyIdempotent
Inspect

Validate up to 50 US addresses in one request. Per-item errors are returned inline.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesUp to 50 free-form US addresses.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the operation is read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond those hints by disclosing that per-item errors are returned inline, which tells the agent that one invalid address will not necessarily fail the entire batch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The first sentence leads with the action and scope, and the second adds the key error-handling behavior. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple single-parameter tool with rich annotations and full schema coverage, the description is largely sufficient. It covers scope, batch limit, and inline error behavior. A minor gap is the lack of any statement about the success response shape, though no output schema exists to compensate for that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the items parameter well. The description largely restates this ('up to 50 US addresses') rather than adding new parameter-level meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb ('Validate'), a clear resource ('US addresses'), and a concrete scope ('up to 50... in one request'). This clearly distinguishes it from the single-item sibling address_validate and from enrichment-oriented siblings like address_enrich.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides clear context: use this when validating multiple US addresses in a single call. It does not explicitly name alternatives or state when-not-to-use, but the batch scope and limit make the intended use obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bin_lookupBIN / Card LookupA
Read-onlyIdempotent
Inspect

Identify the issuing bank, scheme (Visa / Mastercard / Amex / etc), card type (credit/debit/prepaid), and country behind a card BIN. Accepts a 6-8 digit BIN or a full PAN (Luhn-checked, never echoed). Returns scheme + card_type + brand + issuer_bank + country + risk_band. PCI-safe.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_or_binYes6-8 digit BIN or full PAN (with or without spaces/dashes).
use_binlist_fallbackNoWhen false, force offline-only response (curated table + scheme prefix detection only).

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses meaningful behavior: Luhn-checking, that full PANs are never echoed, PCI-safety, and the exact fields returned. This gives an agent a concrete safety and data-handling picture without needing to inspect external documentation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense, front-loaded sentences with no wasted words. The first sentence establishes purpose and outputs, the second covers input validation and safety, and the third summarizes the return contract. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

With no output schema, the description compensates by explicitly listing return fields: scheme, card_type, brand, issuer_bank, country, and risk_band. It also covers input formats, validation, and PCI-safety. Combined with the schema and readOnly annotations, this is complete enough for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying that input is validated via Luhn and that the PAN is never echoed, going beyond the schema's format description. The use_binlist_fallback parameter is already well-described in the schema, so no additional compensation is needed there.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb ('Identify') and resource ('card BIN'), listing the exact data points returned: issuing bank, scheme, card type, and country. It is clearly distinct from any sibling tool, as nothing else in the sibling list covers BIN/card lookup. The input and output scope are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description makes the use case clear: use this when you need to identify card/BIN issuer, scheme, type, country, and risk band. It does not explicitly name alternatives or state when not to use it, but the context is strong enough that an agent can infer the appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_business_days_addAdd US Business DaysB
Read-onlyIdempotent
Inspect

Add N business days to a date and return the resulting business day.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesStart date YYYY-MM-DD.
daysYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior, so the safety profile is covered. The description states the additive behavior and that it returns a business day, but it does not disclose the definition of 'business day' (e.g., weekends and US holidays), how non-business-day start dates are treated, or whether negative day counts are supported. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single direct sentence with no filler, and the core operation is front-loaded. It is appropriately concise, though slightly too terse to include the US-holiday context and output format details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple two-parameter tool, the description is close to sufficient: the schema covers the date format and the description covers the operation. But with no output schema, it does not state the output date format, and it leaves the exact business-day calendar ambiguous, so an agent must make reasonable assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already documents the date format, and the description maps the days parameter to 'N business days', giving it basic semantic meaning. However, it does not specify constraints such as negative values, zero, maximum size, or how a non-business-day start date is handled, so the description only partially compensates for the schema's 50% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description uses a specific verb and resource: 'Add N business days to a date' and states the return value, making the core operation clear. It does not explicitly distinguish itself from siblings like calendar_is_business_day or calendar_holidays, but 'add' is unambiguous enough that an agent can identify when it applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance on when to use this tool over related siblings such as calendar_is_business_day or calendar_holidays. It also does not mention use cases, prerequisites, or exclusions, leaving the agent to infer when this is the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_holidaysUS Federal HolidaysA
Read-onlyIdempotent
Inspect

List US federal holidays for a year, including observed dates per OPM rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral context by specifying that dates are observed per OPM rules, which is a non-obvious detail since holidays can shift to weekdays. This goes beyond what the annotations alone provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every part contributes: the verb, the resource, the time scope, and the OPM observation rule.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple read-only tool with one optional parameter, the description conveys the essential output: a list of holidays with observed dates. There is no output schema, so a bit more detail about return fields or date formatting could help, but the description is adequate for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The schema has zero description coverage for the year parameter, so the description must carry the semantic load. 'For a year' only weakly signals the year parameter and adds little beyond the parameter's name. It does not explain accepted ranges, how OPM observation affects the parameter's meaning, or any other interpretation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The verb 'List' is explicit and the resource 'US federal holidays' is precisely scoped. Adding 'including observed dates per OPM rules' clarifies the exact content and distinguishes this holiday tool from business-day siblings like calendar_business_days_add and calendar_is_business_day.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The use case is implied by the resource name, but the description never states when to choose this over the business-day sibling tools or when not to use it. There are no exclusions or conditional routing notes, so the agent has to infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_is_business_dayIs US Business DayA
Read-onlyIdempotent
Inspect

Check whether a US date is a business day (weekday and not a federal holiday).

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesISO date YYYY-MM-DD.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so no further action is expected. The description adds behavioral context beyond the schema by specifying the US scope and the internal rule (weekday and not a federal holiday), which clarifies exactly what is being evaluated. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One clear sentence with no filler. The verb and resource are front-loaded, and the parenthetical definition efficiently explains the logic. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a one-parameter, read-only predicate tool, this description is essentially complete. The return value is implied as boolean by 'Check whether.' The US qualifier handles geographic scope, and the holiday definition is explicit. The only minor gap is not stating the response format outright, but it is not necessary for such a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema fully documents the single parameter as an ISO date (100% schema coverage), so the baseline applies. The description does not add parameter-format details, but it does add meaning to the date by framing it as a 'US date' in the context of the business-day check. This adds modest value but is not essential.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb ('Check whether'), a clear resource ('a US date'), and the exact predicate ('business day (weekday and not a federal holiday)'). This fully distinguishes it from sibling tools like calendar_business_days_add or calendar_holidays without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description makes the tool's use case obvious: call when you need to know if a given date is a US business day. However, it does not explicitly mention when not to use it or point to alternatives (e.g., calendar_business_days_add for adding business days, calendar_holidays for holiday lists). Usage is implied, not contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_changeCompany Change SignalB
Read-onlyIdempotent
Inspect

SEC 8-K change-signal envelope for a public company. Pulls recent 8-K filings live from EDGAR, classifies item codes into change categories (M&A, leadership, restructuring, material agreement, financial, auditor, governance, disclosure), and returns a change-velocity score (0-100), dominant theme, and buyer-shaped action_hint tuned by buyer profile (sales_outreach, recruiter, investor_research, competitive_intel).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
domainNoCompany domain. One of domain or ticker required.
tickerNoStock ticker. Used when domain not provided.
window_daysNo
buyer_profileNosales_outreach

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already establish a safe read-only, idempotent operation, and the description adds substantive behavior: it pulls live EDGAR data, classifies 8-K item codes into seven categories, and computes a score and action hint. This goes beyond the structural hints without contradicting them. It stops short of explaining failure modes or data freshness, but the live-source caveat is helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two-sentence description is compact and front-loaded with the SEC/EDGAR anchor before listing outputs. Minor redundancy, such as '8-K' and 'public company' appearing twice, keeps it from being perfect, but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a tool with no output schema, the description does communicate the key return elements: score range, dominant theme, and buyer-tuned action hint. It also names the filing source and change categories. Gaps remain for limit/window_days semantics and the exact output shape, so the description is useful but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 40%, so the description needed to compensate. It does clarify buyer_profile by listing its values and tying it to the action_hint output, and domain/ticker are already described in the schema. However, limit and window_days remain wholly unexplained beyond their raw min/max/default constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description names a specific resource (SEC 8-K filings from EDGAR) and a precise processing pipeline: classify item codes into change categories and return a change-velocity score, theme, and action hint. This makes the tool's purpose unmistakable. However, it never explicitly distinguishes itself from near-siblings like company_changes or company_signal, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies use cases through 'buyer-shaped action_hint tuned by buyer profile' with enumerated profiles like sales_outreach and recruiter, which tells an agent roughly when this tool is valuable. But it provides no explicit when-to-use/when-not-to-use guidance and does not name alternative tools or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_changesCompany Change LogA
Read-onlyIdempotent
Inspect

Vendor / counterparty change monitoring. Returns time-ordered entity changes (status flips, parent acquisitions, renames) filtered by since-date, LEI, change_type, or country. Critical for continuous KYC and M&A monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoRestrict to a single LEI.
pageNo1
sinceNoISO 8601 datetime or date. Default 7 days ago.
domainNoRestrict via domain resolution.
countryNoISO 3166-1 alpha-2 country.
per_pageNo50
change_typeNoFilter by change type. Comma-separated for multiple.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is structurally covered. The description adds genuinely useful behavioral context ('time-ordered' ordering, monitoring-oriented change types) that goes beyond the schema, but it does not disclose pagination behavior, response volume implications, or that an unfiltered call returns a default 7-day window. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight, front-loaded sentences with zero waste: sentence one frames the domain, sentence two states mechanics (output and filters), sentence three gives the why. Every clause earns its place and the most decision-relevant information appears first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a read-only, idempotent monitoring tool with rich annotations, this is nearly complete: the agent knows what is returned, how results are ordered, the main filters, and the intended use case. Minor gaps remain — no guidance on valid change_type values (no enums exist in the schema) and pagination semantics are left to the schema, but the default values there partially mitigate this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 71% — between the low and high thresholds — so the schema does much of the documenting work. The description echoes the semantically central filters (since-date, LEI, change_type, country) and ties them to the monitoring purpose, adding light value. However, page and per_page have no schema descriptions and the description does not compensate for them, so those parameters remain under-explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description names a specific resource (vendor/counterparty entity changes) with a concrete output ('time-ordered entity changes' with examples like status flips, parent acquisitions, renames) and explicit filter axes. It is clear and specific, but it does not explicitly differentiate this plural company_changes tool from the sibling company_change (singular) or company_timeline, which an agent would have to disambiguate by opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Usage context is implied through 'Vendor / counterparty change monitoring' and 'Critical for continuous KYC and M&A monitoring,' which signals the monitoring scenario where this tool fits. However, there is no explicit when-to-use statement, no exclusion guidance, and no mention of the likely-overlapping sibling tools (company_change, company_timeline, company_signal), so the agent must infer when this is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_cikCompany by SEC CIKA
Read-onlyIdempotent
Inspect

Resolve a SEC EDGAR Central Index Key (CIK) to a unified company profile. Accepts CIK with or without leading zeros (320193 = 0000320193 = Apple).

ParametersJSON Schema
NameRequiredDescriptionDefault
cikYesSEC EDGAR CIK, e.g. '320193' or '0000320193'.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the read-only, non-destructive, idempotent nature of the tool. The description adds useful behavioral context by explaining that CIKs are accepted with or without leading zeros and that the result is a normalized 'unified company profile'. This goes beyond the schema and annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence followed by a compact illustrative example. Every element earns its place, and there is no redundant filler. It is highly scannable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a one-parameter lookup with safety annotations and no output schema, the description is complete. It explains what input is accepted, how the input may be formatted, and what kind of result is returned. No additional details are necessary for a correct tool selection or invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description and schema both give the '320193' / '0000320193' examples, adding only the Apple mapping. The parameter's meaning is clear, but the description does not substantially enrich the schema's own documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb ('Resolve') and resource ('SEC EDGAR Central Index Key') with a precise output ('unified company profile'). The example '320193 = 0000320193 = Apple' makes the tool's purpose unmistakable. It also differentiates from sibling company identifier tools by focusing specifically on SEC CIK rather than ticker, domain, or EIN.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly implies the use case: when you have an SEC CIK and want a company profile. It notes that CIK formatting is flexible, which removes a common usage question. It does not explicitly mention alternatives like company_ticker or company_domain, so it lacks the 'when-not-to-use' guidance needed for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_classifyCompany ClassifyB
Read-onlyIdempotent
Inspect

Classify a domain using the loaded curated company profile set.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesDomain or URL, for example nvidia.com.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already signal that this is read-only, idempotent, and non-destructive, so the behavioral burden on the description is lower. The description adds one useful fact: classification relies on a 'loaded curated company profile set,' implying offline/predefined data rather than live enrichment. It does not disclose behavior for unknown domains, output structure, or fallback semantics, but the annotations carry much of the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that starts with the action verb and object. There is no redundant filler, though the phrase 'loaded curated company profile set' is somewhat vague. It is concise without being overly skeletal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a one-parameter tool, the schema covers the input and the annotations cover safety, so the description does not need to be long. However, with no output schema, the description's failure to define what 'classify' returns leaves the agent uncertain about the result format or categories. The absence of any pointer to sibling tools also weakens completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already fully documents the single 'url' parameter with an example ('nvidia.com'), so schema coverage is 100%. The description's 'domain' wording simply reinforces the schema rather than adding new normalization, formatting, or validation semantics. A baseline of 3 is appropriate because the description adds no meaningful parameter-level detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a clear verb and object ('Classify a domain'), making it easy to identify as a classification tool. However, it does not specify what classification result is returned or how it differs from sibling tools like company_industry or company_enrich. It is clear but not fully specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance on when to use company_classify versus alternatives such as company_search, company_industry, company_signal, or company_enrich. The phrase 'using the loaded curated company profile set' hints at a conditional data source but does not state when this tool should be preferred. The agent is left to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_domainCompany DomainB
Read-onlyIdempotent
Inspect

Return a company profile by domain. Demo mode allows selected sample domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain or URL.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, so the description is not required to restate safety. It adds the behavioral note that 'Demo mode allows selected sample domains,' which hints at restricted availability but is vague about what demo mode entails, who it applies to, or when it activates. This is minor added context beyond annotations but lacks clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with the core action front-loaded. The 'Demo mode' clause adds a behavioral footnote but is not verbose or redundant. It earns its place by informing about a limitation, though it could be worded more transparently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a one-parameter, read-only lookup tool with rich annotations, the description is nearly sufficient but leaves gaps. The term 'Demo mode' is unexplained, and the output shape of a 'company profile' is not described, which could matter given there is no output schema. The domain input format is covered by the schema, but the overall tool behavior is only partially contextualized.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, with the parameter 'domain' described as 'Company domain or URL.' The description echoes this by using 'by domain' and 'sample domains' but does not add format examples, normalization rules, or edge-case handling. Baseline 3 is appropriate because the schema already documents the parameter sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific verb and resource ('Return a company profile by domain'), making the tool's primary function clear. It does not explicitly distinguish itself from siblings like company_enrich or company_lookup_auto, but the domain-based lookup is evident from the name and phrasing. The mention of 'Demo mode' introduces a slightly ambiguous secondary detail but does not obscure the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as company_enrich, company_lookup_auto, or company_search. The phrase 'by domain' implies the input type, but there is no explicit context for selecting this tool over siblings, nor any exclusion or preference statement. The 'Demo mode' reference is not actionable usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_domains_batchCompany Domain BatchA
Read-onlyIdempotent
Inspect

Return multiple company profiles by domain in one bounded request. Demo mode allows selected sample domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainsYesCompany domains, for example ["apple.com", "microsoft.com"]. A comma-separated string is also accepted.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to repeat safety. It does add context with 'bounded request' and 'demo mode allows selected sample domains', which provides a useful constraint, though demo mode remains vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core action and scope. The demo-mode sentence adds useful context, though it is somewhat imprecise and could arguably be refined without harming clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a single-parameter read-only batch tool with strong annotations and 100% schema coverage, the description is almost complete. It lacks detail on what a returned 'company profile' contains and on demo-mode sample selection, but the low complexity makes this a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, with the domains parameter clearly documented including min/max items, example values, and comma-separated string acceptance. The description adds no parameter details, but the baseline 3 is appropriate since the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly states it returns multiple company profiles by domain in one bounded request, conveying both the verb and resource. It distinguishes itself from single-domain lookups through 'multiple' and from unbounded queries through 'bounded', though it does not name sibling tools explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The 'multiple company profiles by domain in one bounded request' phrasing implies batch usage when several domains are needed at once, which is a weak usage cue. However, it gives no explicit guidance about when not to use it or which alternative to choose (e.g., company_domain for a single lookup).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_enrichCompany EnrichmentA
Read-onlyIdempotent
Inspect

One-call company enrichment: identity + DNS + tech stack + SEC filings (if public) + cyber risk score.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain, e.g. stripe.com.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds useful context beyond that: it lists the data domains covered, flags SEC filings as conditional on public status, and positions the tool as an aggregate response rather than a single-field lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, dense sentence with no filler. The headline value proposition "One-call" is front-loaded, followed by a compact list of included data categories, and the conditional SEC note is efficiently embedded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given a single required parameter, rich annotations, and no output schema, the description does enough by enumerating expected result categories and flagging the public-company condition for SEC filings. It could go further by explaining response format or handling of missing data, but these are minor for a one-parameter enrichment tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The input schema already documents the only parameter (domain) with an example, so description-level parameter guidance is not needed. The description adds no new parameter semantics, but the schema's 100% coverage justifies the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific resource (company domain) and lists concrete output categories: identity, DNS, tech stack, SEC filings, and cyber risk score. It clearly distinguishes this aggregated tool from specialized siblings like tech_stack, dns_lookup, and cyber_risk by emphasizing a single consolidated call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

"One-call" implies use when a consolidated company enrichment snapshot is needed, and the component list clarifies scope. However, the description does not explicitly name alternatives, state when not to use this tool, or explain how it compares to company_insights or company_lookup_auto.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_industryCompany Industry SearchB
Read-onlyIdempotent
Inspect

Search loaded curated company profiles by industry, category, or description signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryYesIndustry query, for example technology.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 'loaded curated' and the ability to match on category or description signals, but it does not disclose match semantics, result limits, or whether the query is exact or fuzzy. With annotations present, this is adequate but not deeply transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the action and resource, and no filler. Every word contributes to understanding; the description is efficient for its scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a one-parameter, read-only search tool, the description is mostly sufficient, but there is no output schema and no mention of what fields are returned or how results behave (e.g., fuzzy matching, pagination). It also leaves the choice between this and similar company search tools ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The schema already describes the sole parameter 'industry' with an example, and schema coverage is 100%. The description adds useful meaning by clarifying that the query applies across industry, category, or description signals, which the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a concrete operation ('Search') and a specific resource ('loaded curated company profiles'), and names the search dimensions (industry, category, description signals). This sufficiently conveys what the tool does, though it does not explicitly differentiate it from sibling tools like company_search or company_classify.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus related siblings such as company_search, company_lookup_auto, or company_classify. The description implies a use case but leaves the selection logic entirely to inference, which is risky given the large sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_insightsCompany Insights (everything)B
Read-onlyIdempotent
Inspect

Single-call mega-endpoint — subject profile + hierarchy + corporate-family network + lifecycle timeline + peer benchmark in one response. The 'everything we know' company call.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNo
domainNo
tickerNo
include_peersNo
include_changesNo
include_filingsNoLive SEC EDGAR filings fetch (adds latency; public companies only).
include_networkNo
include_timelineNo
include_hierarchyNo
include_risk_indicatorsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive behavior, so the description only needs to add context beyond safety. It does add meaningful behavioral context by disclosing that this endpoint aggregates multiple distinct data sets into one response, which implies a larger combined payload than a single-purpose endpoint. It does not mention latency or output shape, but with annotations covering the safety profile this is a reasonable contribution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: the first line states the core value proposition and the included categories. Minor marketing phrasing like 'mega-endpoint' and the redundant 'everything we know' label add a little color without adding much information, but overall it is efficiently written.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

This is a complex 10-parameter aggregator with no output schema and dozens of narrower sibling tools. The description does not clarify which identifier parameter to provide, whether at least one is required, what the response structure looks like, or how this relates to focused tools like company_enrich. An agent can infer broad intent but not safely invoke it for a specific use case without more guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema coverage is only 10%, with just include_filings documented. The description does not explain how to choose between lei, domain, and ticker, whether any identifier is required, or how the include_* flags map to the listed data categories. For a heavily optional-flag endpoint with low schema coverage, the description supplies almost no parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies this as a single-call aggregate company endpoint and enumerates the bundled data categories: profile, hierarchy, corporate-family network, lifecycle timeline, and peer benchmark. This distinguishes it from narrower company tools, though it relies on a label ('everything we know') rather than a precise verb and resource statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

It implies use when you want broad company intelligence in one call ('Single-call mega-endpoint', 'everything we know'), which is useful guidance. However, it never states when not to use it or names alternatives like company_enrich, company_network, company_timeline, or company_peer_comparison, leaving routing to inference despite many siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_lookup_autoCompany Smart LookupA
Read-onlyIdempotent
Inspect

Auto-detect identifier type and route. Accepts LEI, CIK, domain, email, ticker, or exact name. Returns resolution.matched_on so caller can confirm what type was used.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesAny of: LEI (20 chars), CIK (digits), domain (has dot), email (has @), ticker (1-5 letters), or exact company name.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by explaining that the tool auto-detects and routes the identifier and returns resolution.matched_on for confirmation. This goes beyond the annotations and helps the caller verify which identifier type was actually used.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences with no filler. The core routing behavior is front-loaded, followed by the accepted identifier types and the key return field. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a single-parameter, read-only, idempotent lookup tool with no output schema, the description covers the essential call context well: accepted inputs, auto-routing behavior, and the confirmation field. It could mention ambiguity handling or what the full resolution response contains, but given the low complexity and strong annotations, the definition is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, and the identifier property already enumerates the accepted types with helpful detection hints. The description repeats the same list without adding new semantic detail about formatting, normalization, or conflict resolution. Baseline 3 is appropriate because the schema carries the parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific behavior: auto-detect identifier type and route. It lists the accepted identifier types and explicitly distinguishes this tool from siblings like company_cik, company_domain, and company_ticker by its auto-detection behavior. It is clearly a generic entry point for identifier-based company lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when to use this tool: when the identifier type is unknown or mixed. However, it does not explicitly say to prefer this over company_cik, company_domain, company_ticker, or company_lookup_batch when the type is already known. No alternatives or exclusion criteria are named, so usage guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_lookup_batchCompany Batch Multi-Identifier LookupA
Read-onlyIdempotent
Inspect

Resolve up to 50 mixed identifiers (domain, LEI, ticker, name) in a single POST. Each result preserves the original input for join-back.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYes

TDQS

A4.2/5.0
Behavior4/5

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

The annotation set already covers read-only, idempotent, and non-destructive behavior. The description adds valuable behavior beyond that: the batch size ceiling, the mixed-identifier capability, the single POST transport, and the join-back property of results. No contradiction with annotations is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry all essential information with no filler. The limit, identifier types, HTTP method, and join-back property are all front-loaded and each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple read-only batch lookup, the combination of schema and description is sufficient for correct invocation: the input shape is fully specified, safety is covered by annotations, and the join-back note clarifies a key output expectation. It could go further with examples or unresolved-identifier behavior, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already fully constrains the single parameter: an array of {type, value} objects with an enum and min/max items. The description reinforces that identifiers can be mixed and that original inputs are preserved for join-back, but it does not add per-type value format examples. Since there is only one well-schematized parameter, this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Resolve') and clearly identifies the resource and action: batch lookup of company identifiers. It also names the accepted identifier types and the 50-item limit, which distinguishes it from single-identifier siblings like company_domain, company_ticker, and company_lookup_auto.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly signals when to use this tool: when you need to resolve multiple mixed identifiers in one POST. It does not name alternatives or state exclusions, but the batch framing and identifier-type enumeration give an agent sufficient context to select it over single-lookup siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_networkCompany Corporate FamilyA
Read-onlyIdempotent
Inspect

Walk the GLEIF ultimate-parent hierarchy and return every entity sharing the same conglomerate root. Excludes pension/retirement trusts by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoResolve subject by GLEIF LEI.
pageNo
domainNoResolve subject by domain.
per_pageNo1-200.
include_pension_trustsNo

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnly, idempotent, and non-destructive annotations, the description discloses the traversal source (GLEIF), the aggregation behavior (every entity sharing the root), and a non-obvious default filter (pension/retirement trusts excluded). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences that front-load the core behavior and then add a meaningful default-filter detail. No filler or redundant restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

The description sufficiently explains what the tool returns and the default filter for a hierarchy-walking function, even without an output schema. Pagination behavior is left to the schema; additional detail about result item shape or no-root cases would be nice but is not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 60%, with lei/domain/per_page described. The description adds meaning to include_pension_trusts by noting the default exclusion, and reinforces the subject-resolution concept. Page remains undescribed in both schema and description, but the overall parameter intent is reasonably clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a concrete action ('Walk the GLEIF ultimate-parent hierarchy') and result ('return every entity sharing the same conglomerate root'), naming both the resource and scope. This clearly distinguishes it from broad sibling tools like company_search or company_timeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when to use the tool—when you need the full corporate family under a conglomerate root—and adds the default exclusion of pension/retirement trusts. However, it does not explicitly state when to prefer this over alternatives 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.

company_nonprofit_einCompany Nonprofit EINA
Read-onlyIdempotent
Inspect

Return a nonprofit identity profile by EIN.

ParametersJSON Schema
NameRequiredDescriptionDefault
einYesEmployer Identification Number, for example 20-0049703.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not contradict them. It adds little beyond labeling the return as a 'nonprofit identity profile'; it does not describe not-found behavior, data coverage, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise, front-loaded sentence with no filler or redundant restatement. Every word contributes to the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a single-parameter, read-only lookup with rich annotations, the description is reasonably complete. It covers the main input and the general nature of the result; the main gap is lack of guidance toward the sibling search tool when an EIN is unknown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100% and the ein parameter already includes a type and example format. The description adds no additional parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb ('Return'), a specific resource ('nonprofit identity profile'), and the lookup key ('by EIN'). This clearly distinguishes it from sibling tools such as company_nonprofit_search, which likely searches rather than looks up by EIN.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'by EIN' implies this tool is for use when the caller already has an EIN, but the description does not explicitly guide an agent to company_nonprofit_search when an EIN is unavailable. Usage context is present but largely left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_peer_comparisonCompany Peer ComparisonA
Read-onlyIdempotent
Inspect

Benchmark a company against same-industry/same-country peers — employee distribution, jurisdiction mix, founding-decade histogram, and where the subject ranks within the peer set.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoResolve subject by GLEIF LEI.
scopeNoindustry_country
domainNoResolve subject by domain.
tickerNoResolve subject by ticker.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful behavioral detail beyond annotations by specifying the exact nature of the comparison and the output dimensions, giving the agent a concrete picture of what the tool will produce.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is information-dense without padding. The main action is front-loaded, followed by concrete output specifics. Every phrase contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description states outputs and scope but leaves gaps: no output schema, no guidance on required identifiers, no mention that one of lei/domain/ticker is presumably needed, and no detail on how 'scope' alternatives behave. For a 4-parameter tool with zero required parameters, this is a notable completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema covers 75% of parameters with descriptions for lei, domain, and ticker. The description does not add meaningful semantics about the 'scope' parameter beyond implying default same-industry/country behavior. It does not clarify how to choose among resolution identifiers or that at least one is expected, though schema provides basic resolution meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific verb, 'Benchmark', and a clear resource: a company against same-industry/same-country peers. It lists concrete output dimensions (employee distribution, jurisdiction mix, founding-decade histogram, rank) that distinctly separate this tool from sibling tools like company_enrich or company_industry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly conveys the context for use: when a peer benchmark is needed, including what the comparison covers. It does not explicitly mention when not to use this tool or name alternative tools, but the context is unambiguous enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_registrationCompany Registration NumberA
Read-onlyIdempotent
Inspect

Resolve a registry-assigned registration number (Companies House, Delaware file number, Handelsregisternummer, etc.) to a company profile. Pass country= to disambiguate since regnums aren't globally unique.

ParametersJSON Schema
NameRequiredDescriptionDefault
regnumYesRegistration number, e.g. Stripe's Delaware file number '4675506'.
countryNoOptional ISO 3166-1 alpha-2 country code to disambiguate.
jurisdictionNoOptional ISO 3166-2 jurisdiction for finer scoping.

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, and open-world behavior. The description adds the non-uniqueness caveat, which is a meaningful behavioral detail for interpreting results, and it does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with no filler. The core purpose and the key caveat both earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple 3-parameter lookup with full schema coverage and strong annotations, this is nearly complete. It lacks only a brief note on match behavior or returned profile shape, but nothing essential blocks correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the baseline applies. The description reinforces country's disambiguation role but adds little beyond the schema's own parameter descriptions and does not mention jurisdiction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

States a specific action ('Resolve a registry-assigned registration number ... to a company profile') with concrete registry examples. It is clearly distinct from other company_* tools by targeting registry-assigned identifiers, though it does not explicitly name a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Provides explicit guidance to pass country= because registration numbers are not globally unique, which is important for disambiguation. It does not spell out when to choose this over company_lookup_auto or company_search, so it stops short of a full routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_signalCompany Buyer SignalA
Read-onlyIdempotent
Inspect

Composite B2B buyer-signal score (0-100) for a company. Joins curated identity + live SEC EDGAR filings + DNS/DMARC + WHOIS + curated hiring signals into one explainable score tuned by buyer profile (enterprise_sales, smb_sales, investor_research, vendor_diligence). Returns overall score, tier, verdict, six sub-scores with notes, tech-stack hint, and SEC activity summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain (e.g. apple.com). One of domain or ticker is required.
tickerNoStock ticker (e.g. AAPL). Used when domain is not provided.
buyer_profileNoBuyer profile that tunes the sub-score weights.enterprise_sales
include_filingsNoFetch live SEC EDGAR filings (adds ~400ms upstream).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds context about data sources and the returned fields, but doesn't disclose any extra behavioral traits like rate limits or auth requirements, which would push it higher.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose and followed by key details. No wasted words; every clause adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description explicitly lists all return components (overall score, tier, verdict, sub-scores, tech-stack hint, SEC summary). It also explains the tuning by buyer profile and the optional filings parameter. The description is complete enough for an agent to invoke correctly, though it lacks edge-case or error-handling details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema; it mentions buyer_profile values and include_filings, but the schema already explains these. No additional parameter semantics are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool computes a composite B2B buyer-signal score (0-100) for a company, specifying the data sources (identity, SEC EDGAR, DNS/DMARC, WHOIS, hiring signals) and the output. This distinguishes it from siblings like compliance_signal or company_enrich by focusing on buyer intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear context on what the tool is for (buyer signals tuned by buyer_profile) and its output, making it obvious when to use it. However, it does not explicitly exclude alternatives or mention when not to use it, which would be needed for a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_statsCompany Stats AggregationsA
Read-onlyIdempotent
Inspect

Return aggregate counts across the 3.3M-entity registry — by country, jurisdiction, industry, entity_type, employee_range, decade founded, plus hierarchy/data-quality coverage. Filter the slice with country/jurisdiction/industry/naics.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNoItems returned per facet (1-50).
countryNoISO 3166-1 alpha-2 country, e.g. 'US'.
industryNoIndustry keyword.
naics_codeNo2-digit NAICS sector code.
jurisdictionNoISO 3166-2 jurisdiction, e.g. 'US-DE'.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive hints. The description adds value beyond those by disclosing the behavioral trait that it returns only aggregate counts (not entity-level data) across defined facets, and that the registry is 3.3M entities. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences. The first front-loads the action and resource, the second specifies filter parameters. No filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description adequately conveys the return nature (aggregate counts per facet) and the available filters. It does not detail the exact output structure or what 'hierarchy/data-quality coverage' includes, but for a stats tool with safe annotations this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The tool description goes further by explaining the role of country/jurisdiction/industry/naics as slice filters, and implicitly clarifies that entity_type, employee_range, and decade founded are facet dimensions rather than filter parameters — useful semantic context beyond the individual property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific verb and resource: 'Return aggregate counts across the 3.3M-entity registry,' and enumerates the exact facet dimensions (country, jurisdiction, industry, entity_type, employee_range, decade founded, plus hierarchy/data-quality coverage). This clearly distinguishes it from sibling tools like company_enrich or company_search, which return individual entity data rather than aggregations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides clear context for when this tool is appropriate: when aggregate counts over the registry are needed, not individual records. It also gives filter usage ('Filter the slice with country/jurisdiction/industry/naics'), but does not explicitly name alternatives or state when-not-to-use, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_tickerCompany TickerC
Read-onlyIdempotent
Inspect

Return a loaded curated company profile by public ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, for example NVDA.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive, so the description does not need to restate safety. The word 'loaded' hints at a pre-built snapshot, but it is too vague to disclose meaningful behavior such as data freshness, failure modes, or coverage limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with the action and resource front-loaded. It contains no filler or redundant restatement of the input schema, making it easy for an agent to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

With no output schema, the description leaves the contents of a 'company profile' undefined, so an agent cannot know whether it returns identifiers, fundamentals, ownership, or summary data. Given the large sibling family, this missing specificity is a significant gap for a tool whose only parameter is already fully documented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema fully documents the single ticker parameter and even gives 'NVDA' as an example, so schema coverage is 100%. The description only restates 'by ticker' and adds no format, alias, or usage detail beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific action ('Return') and resource ('curated company profile') keyed by public ticker, so an agent can tell it is a lookup tool. However, it does not distinguish company_ticker from adjacent siblings such as company_enrich, company_search, or equities_ticker, and the qualifier 'loaded' is ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is given about when to use this tool instead of the many sibling company/equities tools, and no alternative tools are named. The phrase 'curated company profile' hints at a use case but does not establish selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_timelineCompany TimelineB
Read-onlyIdempotent
Inspect

Chronological lifecycle event list for any company — founding year, SEC former-name rebrand events, current status, parent disclosures.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoResolve subject by GLEIF LEI.
domainNoResolve subject by domain.
tickerNoResolve subject by ticker.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already communicate that the tool is read-only, idempotent, open-world, and non-destructive. The description adds useful content-level context, such as SEC former-name rebrand events and parent disclosures, but it does not disclose behavior around the three optional identifiers, such as precedence when multiple are provided or whether the list is ordered differently.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with the core concept front-loaded before the em dash and supporting examples after. Every element earns its place, and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a read-only event-list tool without an output schema, the description names the expected output categories well enough for an agent to understand what it returns. It does not cover disambiguation behavior among the three optional resolvers, but the schema and annotations already cover parameter and safety aspects, so the remaining gap is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already fully documented in the schema. The description adds no parameter-specific semantics beyond what the input schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies the resource (a chronological lifecycle event list for a company) and names specific content: founding year, SEC former-name rebrand events, current status, and parent disclosures. It is specific enough to convey the tool's purpose, though it does not explicitly differentiate it from siblings like company_enrich or company_change.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description implies the tool is used to obtain a company's lifecycle events, but it provides no explicit when-to-use guidance or alternatives. With a large sibling list including company_change, company_insights, and company_enrich, an agent is given no criteria for choosing 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.

compliance_signalCompliance Signal (Sanctions + Enforcement)A
Read-onlyIdempotent
Inspect

Compliance-status snapshot for a company: screens against Treasury OFAC SDN entries and SEC enforcement actions, and returns a 0-100 compliance score, tier, decision_hint (proceed / proceed_with_review / escalate / block_pending_review), and critical flags. Tuned by buyer profile (kyc_onboarding, vendor_diligence, regulated_industry, marketplace_listing). SCOPE: decision-support only — does not replace formal KYC or licensed sanctions screening.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain — used to resolve canonical name.
tickerNoStock ticker — used to resolve canonical name + CIK.
companyNoCompany name. One of company / domain / ticker required.
buyer_profileNokyc_onboarding

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value beyond those by revealing data sources, output semantics, profile-dependent tuning, and the decision-support boundary. It does not fully describe edge cases such as unknown companies or data freshness, but those are less critical given the existing annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, uses a clear output list, and ends with a scannable scope warning. Every sentence provides selection- or invocation-relevant information, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description names the key return elements and decision_hint values, which is essential and mostly sufficient. It could specify more about critical flags and resolution behavior when multiple identifiers are provided, but the core invocation information is present and openWorldHint supports partial or unstructured responses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 75% and the schema already explains company/domain/ticker resolution. The description adds meaning to buyer_profile by enumerating the tuning contexts (kyc_onboarding, vendor_diligence, regulated_industry, marketplace_listing), which the schema only lists as an enum. It does not add much beyond the schema for the identifier parameters, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific 'Compliance-status snapshot for a company' and names concrete data sources (Treasury OFAC SDN, SEC enforcement) and output fields (0-100 score, tier, decision_hint, critical flags). This clearly differentiates it from sibling tools like sanctions_search or company_signal by emphasizing a scored snapshot rather than raw search or general enrichment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

It states when to use the tool (decision-support compliance snapshots for company screening) and explicitly scopes out formal KYC or licensed sanctions screening, which is a clear when-not. It also ties usage to specific buyer profiles, indicating the contexts in which the tool is tuned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

counterparty_riskCounterparty Risk SnapshotA
Read-onlyIdempotent
Inspect

B2B counterparty-risk composite: should we extend terms to this company? Joins curated identity + live SEC EDGAR filings + DNS/DMARC + WHOIS into a risk-weighted 0-100 score (higher = lower risk), plus a tier and a decision_hint that maps to AR/AP actions (approve_net_30, approve_with_credit_check, require_prepayment, decline_pending_review). Supports four risk profiles for different underwriting postures.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCompany domain. One of domain or ticker required.
tickerNoStock ticker. Used when domain not provided.
risk_profileNoar_default
include_filingsNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds important behavioral context beyond annotations: it joins multiple live data sources, returns a 0-100 score where higher means lower risk, and emits a decision_hint mapped to specific credit actions. It does not disclose failure modes or data freshness details, but the annotation coverage lowers the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: it leads with the business question, then the composite inputs, then the output semantics, then the profile variation. Each sentence adds substantive information, though the middle sentence packs multiple clauses and enumerated values that could be slightly easier to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a complex composite tool with no output schema, the description does a good job of explaining the output shape and score direction. However, it leaves gaps: the risk_profile values are not explained, include_filings is never mentioned, and there is no guidance on what happens when domain or ticker cannot be resolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 50%, with risk_profile and include_filings effectively undocumented in the schema. The description only says the tool 'supports four risk profiles for different underwriting postures' without explaining the individual enum values or the effect of include_filings, so it fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with an explicit business question ('should we extend terms to this company?') and names the tool as a counterparty-risk composite producing a score, tier, and decision_hint. It clearly distinguishes this from sibling data-lookup tools by tying the output to concrete AR/AP actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It gives clear context for when to use the tool ('should we extend terms') and mentions four risk profiles for 'different underwriting postures'. It does not explicitly name alternative sibling tools or state when not to use them, but the credit-decision framing is a sufficiently clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cyber_riskCyber Risk SignalA
Read-onlyIdempotent
Inspect

DNS-hygiene + tech-stack-exposure surface for a domain. Returns a 0-100 cyber score (higher = lower risk) with six sub-scores (email security, DNS hardening, domain hygiene, infra exposure, tech-stack exposure, spoofability), critical flags, and concrete recommended actions. Tuned by buyer profile. SCOPE: inspects published DNS only — no port scans, breach lookups, or CVE matching.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain, e.g. example.com.
buyer_profileNocyber_insurance_underwriting

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already convey readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond those annotations: the score scale semantics ('higher = lower risk'), the exact components returned, the 'Tuned by buyer profile' behavior, and the hard scope limitation to published DNS with explicit non-actions. This is valuable and consistent with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loads the core purpose in the first sentence, and packs output details, score interpretation, and scope constraints into a compact structure. Every sentence adds distinct value with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

Even though there is no output schema, the description fully characterizes what the caller should expect: a 0-100 score with directionality, six named sub-scores, critical flags, recommended actions, and buyer-profile tuning. It also states the operational scope and exclusions, giving an agent enough context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 50%: 'domain' has a description but 'buyer_profile' does not. The description adds that the result is 'Tuned by buyer profile,' which gives the parameter purpose beyond the schema enum/default. However, it does not explain how different buyer_profile values affect the score or which profiles exist, leaving the undocumented parameter only partially clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly identifies the tool as assessing a 'DNS-hygiene + tech-stack-exposure surface' for a domain and explicitly states the output: a 0-100 cyber score, six sub-scores, critical flags, and recommended actions. This distinguishes it from sibling DNS tools like dns_lookup or dns_profile by emphasizing the risk-signal output rather than raw DNS records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides clear context on what the tool covers and explicitly states exclusions: 'inspects published DNS only — no port scans, breach lookups, or CVE matching.' It also notes the score is 'Tuned by buyer profile,' indicating when parameter customization matters. However, it does not name specific sibling tools or state explicit when-to-use versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_certificatesDomain Certificate HistoryA
Read-onlyIdempotent
Inspect

Recent SSL certificates from Certificate Transparency logs (crt.sh). Returns recent certs with issuer + expiry, plus the deduped subdomain list discovered across all CT entries. Useful for shadow-IT detection, sales-intel hostname discovery, and phishing-cert monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
domainYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare this as read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond annotations by naming the external source (crt.sh), stating the output fields, and noting deduplication of subdomains across CT entries. It stops short of caveats like data freshness or pagination, but this is sufficient for a read-only lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core function and source, and each sentence earns its place. Use cases are deferred to the end, keeping the most operationally relevant information first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description conveys the tool's purpose, external source, and main output components, and the schema documents the required domain and optional limit. However, with no output schema and no parameter explanation, an agent is left to infer how the limit affects results and exactly what the returned structure looks like. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the meaning or interplay of the domain and limit parameters. The domain parameter is implied by the domain-focused output, but limit is never mentioned, so the description adds no value beyond the raw input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description explicitly states the tool returns SSL certificates from Certificate Transparency logs, including issuer, expiry, and a deduped subdomain list. This clearly differentiates it from sibling DNS tools by naming its data source and unique subdomain extraction behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It openly lists concrete use cases: shadow-IT detection, sales-intel hostname discovery, and phishing-cert monitoring. It provides clear context for when the tool is valuable, though it does not explicitly say when not to use it or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_compareDomain Comparison (Phishing/Typosquat Detection)A
Read-onlyIdempotent
Inspect

Compare a target domain against a reference for phishing / typosquatting / lookalike detection. Computes edit distance, apex/TLD diff, homoglyph substitution detection (0↔o, 1↔l, rn↔m). Flags is_likely_typosquat + is_likely_lookalike with drivers. Pure analytical comparison — no DNS query.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesSuspect domain, e.g. striipe.com.
referenceYesKnown-good domain, e.g. stripe.com.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already signal readOnly/idempotent/non-destructive, and the description adds valuable behavioral specifics: the computation includes edit distance, apex/TLD diff, and homoglyph substitution with concrete substitutions, and the result flags are is_likely_typosquat and is_likely_lookalike with drivers. Stating 'no DNS query' clarifies there are no network side effects, which is beyond annotation semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences deliver the purpose, the algorithmic internals, and the key caveat without filler. The most selection-relevant information (compare, no DNS query) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given there is no output schema, the description usefully names the output flags and drivers, plus the computed dimensions. It doesn't fully specify the response shape or define 'drivers,' but for tool selection and invocation the inputs, outputs, and side-effect boundary are sufficiently covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already documents both parameters with descriptions and examples (target: 'Suspect domain, e.g. striipe.com'; reference: 'Known-good domain, e.g. stripe.com'), and description coverage is 100%. The description merely mirrors this relationship rather than adding new constraints, formats, or default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific action ('Compare a target domain against a reference') and a concrete detection purpose (phishing/typosquatting/lookalike). It distinguishes dns_compare from the many dns_* siblings by closing with 'Pure analytical comparison — no DNS query,' so an agent can select it without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Explicitly frames this as pure analytical comparison and rules out DNS querying, which prevents confusion with dns_lookup/dns_history/dns_profile. It neither lists alternatives by name nor gives a when-not-to-use rule (e.g., 'for resolution use dns_lookup'), but the exclusion plus sibling context supplies adequate guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_historyObserved DNS History (passive)A
Read-onlyIdempotent
Inspect

Snapshot-on-query passive-DNS view. Returns every (record_type, value) tuple seen for this domain during /dns/lookup calls, with first_seen + last_seen + observation_count. Useful for detecting when A records moved or recovering historical NS/MX values. Not a global feed — accumulates from when our users first resolve a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
record_typeNoOptional filter: A / AAAA / MX / TXT / NS / CNAME / SOA / CAA.
limit_per_typeNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds valuable behavioral context beyond annotations by explaining the snapshot-on-query semantics, the data provenance ('accumulates from when our users first resolve a domain'), and the implication that results are not a complete global DNS history.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact, information-dense sentences. The core behavior is front-loaded, followed by practical use cases and a key limitation. No filler or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Despite having no output schema, the description enumerates the returned fields (record_type, value, first_seen, last_seen, observation_count), which is sufficient for basic use. The main completeness gap is the unaddressed limit_per_type behavior, but overall this is a well-specified tool for a simple three-parameter query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 33%; only record_type has an inline description. The description mentions 'this domain' and 'record_type' but does not compensate for limit_per_type, which is undocumented in the schema and unmentioned in the description. The phrase 'Returns every tuple' also conflicts with the existence of limit_per_type, potentially misleading the agent about result completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb and resource: 'Snapshot-on-query passive-DNS view' that 'Returns every (record_type, value) tuple seen for this domain.' It clearly distinguishes itself from siblings like dns_lookup and dns_profile by emphasizing the historical, observed nature and its accumulation from /dns/lookup calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives concrete use cases: 'detecting when A records moved or recovering historical NS/MX values,' and a clear exclusion: 'Not a global feed — accumulates from when our users first resolve a domain.' It does not explicitly name alternative sibling tools, but the context and limitations are clear enough for routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_lookupDNS LookupB
Read-onlyIdempotent
Inspect

Resolve A, AAAA, MX, TXT, NS, CNAME, SOA, and CAA records for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
typesNoOptional comma-separated record types.
domainYesDomain name, e.g. example.com.

TDQS

B3.2/5.0
Behavior2/5

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

The description is consistent with the annotations (readOnlyHint, idempotentHint, destructiveHint=false) but adds no behavioral context beyond them. It does not mention default behavior, caching, response shape, or error conditions. The annotations carry the safety profile, but no extra transparency is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no unnecessary words, front-loading the verb and the full list of supported record types. It is immediately scannable and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple two-parameter read-only lookup, the core usage is clear, and the annotations cover the safety profile. However, the description does not state what happens if 'types' is omitted, and there is no output schema to clarify the return structure. Sibling tools cover related DNS areas, so a brief scope statement would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The schema already documents both parameters with 100% coverage. The description adds value by listing the valid record types for the 'types' parameter, which the schema only describes generically as 'comma-separated record types.' It does not explain defaults or exact formatting beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description uses a specific verb ('Resolve') and clearly names the resource: DNS records for a domain, enumerating exact record types. It is easy to tell this is a current DNS lookup tool, though it does not explicitly contrast with sibling tools like dns_history or dns_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided about when to use dns_lookup versus siblings such as dns_history, dns_compare, or dns_profile. The phrase 'resolve records' implies current-record lookup, but there are no explicit exclusions or alternative routing instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_profileDomain Full ProfileA
Read-onlyIdempotent
Inspect

Complete DNS + WHOIS + security + hosting + email-infrastructure + subdomain-probe + health-verdict picture in one call. Sales-intel and security-audit workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
skip_whoisNo
skip_subdomainsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds behavioral context beyond that by disclosing that the tool performs subdomain probing and produces a health verdict, which implies active enumeration and synthesized judgment. It does not mention latency or cost, but it provides meaningful disclosure of the tool's composite behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence communicates the full scope and workflows with no filler. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a three-parameter composite tool with no output schema, the description provides sufficient context for an agent to select and invoke it correctly. It enumerates all major data domains and gives workflow context. The main gap is the lack of explicit treatment of the skip parameters and the exact nature of the health verdict, but this does not critically impair usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. The required 'domain' parameter is self-evident, and 'skip_whois' and 'skip_subdomains' are reasonably inferable from their names and from the WHOIS/subdomain-probe components mentioned in the description. However, the description does not explain how skipping affects the overall profile or health verdict, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool produces a comprehensive DNS + WHOIS + security + hosting + email-infrastructure + subdomain-probe + health-verdict profile for a domain in one call. This distinguishes it from narrower sibling tools like dns_lookup, dns_whois, and dns_reputation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description identifies concrete workflows ('Sales-intel and security-audit workflow') and emphasizes 'one call', clearly implying this tool is for broad investigative use cases rather than single-aspect DNS queries. It does not explicitly name alternative tools or exclusion conditions, but the use context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_reputationDomain Reputation ScoreA
Read-onlyIdempotent
Inspect

Composite 0-100 reputation score combining domain age, registrar tier, expiration window, security grade, NS diversity, and hosting tier. Returns band (high/moderate/low/suspect) + contributing factors. Designed for fraud-screening pipelines.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only/idempotent/non-destructive behavior. The description adds meaningful behavioral context by revealing the calculation inputs, the 0-100 scale, and the band outputs, without contradicting the annotations. It stops short of disclosing potential latency, data freshness, or error conditions, but the annotation coverage lowers the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences: the first front-loads what the tool computes and returns, the second adds a clear use case. No filler, repeated schema content, or vague boilerplate. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description adequately describes the return value (score, band, contributing factors) and the input context. It covers the main behavioral scope and use case for a single-parameter read-only tool. Slight gaps remain around domain input formatting and edge-case behavior, but nothing critical for a fraud-screening call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 0%, so the description carries the burden, but the only parameter (domain) is self-evident from the tool name and schema. The description refers to 'domain age' and the overall purpose, implicitly confirming the input is a domain, yet it adds no format details (e.g., no protocol, punycode, or subdomain handling). This is adequate but not compensating beyond the obvious.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool returns a composite 0-100 reputation score for a domain, listing the specific factors (domain age, registrar tier, expiration window, security grade, NS diversity, hosting tier) and outputs (band + contributing factors). This verb+resource+scope formulation distinguishes it from siblings like dns_lookup or dns_whois, which are unlikely to produce a scored band.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The phrase 'Designed for fraud-screening pipelines' gives clear intended use context, signaling when an agent should pick this tool (domain reputation assessment for fraud risk). It does not explicitly name alternatives or when not to use it, but the context is specific enough to guide selection among the many sibling DNS/site/risk tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_tlsLive TLS PostureA
Read-onlyIdempotent
Inspect

Open a TLS handshake on :443, capture the presented cert + protocol version + cipher, and grade the result A-F. Surfaces days-until-expiry, SAN list, self-signed detection, and findings like 'CBC-mode cipher in use'.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNo
domainYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior. The description adds valuable behavioral detail beyond annotations: that it actively initiates a network handshake and grades the result, plus what findings it surfaces. This helps the agent understand the real-world side effect despite readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences with no filler. The first sentence states the core operation and outputs, the second lists key surfaces. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description explains the main returned fields (expiry, SAN, self-signed, findings, grade). Annotations cover safety, and the input schema covers the port range and default. It is complete enough for selection and basic invocation, though parameter semantics could be stronger.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description bears the burden of explaining parameters. It mentions ':443' but does not clarify that 'port' is an overridable parameter or describe that 'domain' is the target hostname. The only parameter it implicitly addresses is the default port, leaving the required domain parameter essentially unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific action ('Open a TLS handshake'), the resource (port 443), and the specific data captured (cert, protocol version, cipher, A-F grade, expiry, SAN, self-signed detection). This clearly distinguishes it from sibling tools like dns_lookup or dns_certificates, which are not live handshakes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description conveys that this is a live, active check by explicitly saying 'Open a TLS handshake on :443', implying it is for current TLS posture rather than historical or registry-based DNS data. It does not name alternatives or exclusions, but the live-handshake framing provides clear context for when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_whoisDomain WHOISA
Read-onlyIdempotent
Inspect

Public WHOIS profile: registrar, creation date, expiration, name servers, age in years.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name, e.g. example.com.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds useful behavioral context by specifying the exact response fields and the computed 'age in years', which is valuable because no output schema exists. It does not detail failure modes such as unknown domains, but this is a minor gap for a simple read-only lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that delivers the key semantic content upfront: it is public WHOIS data, followed by the returned fields. There is no wasted wording or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a one-parameter read-only tool with complete annotations and an in-description output field list, the description is largely complete. The only notable omission is guidance on when to prefer a sibling DNS/WHOIS tool, but that is a routing concern rather than a calling-context gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The single parameter 'domain' is fully described in the schema with an example, so schema coverage is 100%. The description mentions WHOIS data but does not add any extra meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a clear resource ('Public WHOIS profile') and enumerates the data returned: registrar, creation date, expiration, name servers, and age in years. It is easy to understand what the tool does, though it lacks an explicit verb and does not differentiate itself from dns_profile or dns_lookup among the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance about when to use this tool instead of siblings such as dns_profile, dns_history, or dns_lookup. An agent must infer the intended use from the name and description, with no exclusions or explicit conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

email_disposableDisposable Email CheckA
Read-onlyIdempotent
Inspect

Test whether a domain belongs to the curated disposable-email-domain list.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to test, e.g. mailinator.com.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a useful behavioral nuance — the result is a membership test against a 'curated' list, implying outcomes can evolve as the list changes — but it does not disclose return shape, fallback behavior, or list refresh semantics. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action verb 'Test' and carries only the essential scoping detail ('curated disposable-email-domain list'). Every word earns its place; there is no redundant boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a one-parameter, read-only, idempotent membership check, the description is largely sufficient for correct invocation: the input is clear and the test criterion is explicit. Minor gaps remain — there is no output schema to imply the return format, and the description does not differentiate itself from the closely named email_free_provider sibling — but these are small for a tool of this simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents 'domain' as 'Domain to test, e.g. mailinator.com.' The description's mention of 'domain' adds no meaning beyond the schema; it neither clarifies edge cases (e.g., whether full emails are accepted) nor enriches the parameter semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific verb ('Test'), resource ('domain'), and the exact criterion ('belongs to the curated disposable-email-domain list'), which clearly conveys what the tool does. It is distinguishable from siblings like email_validate and email_smtp_probe by the unique 'curated disposable-email-domain list' object, though it never explicitly names or contrasts a sibling (closest is email_free_provider), so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The usage context is implied: invoke when you need to determine whether a domain is on the disposable-email list. However, there is no explicit guidance on when to choose this over the adjacent email tools (email_free_provider, email_validate, email_smtp_probe), and no exclusion statements or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

email_free_providerFree Email Provider CheckA
Read-onlyIdempotent
Inspect

Test whether a domain belongs to the curated free consumer-email-provider list.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to test, e.g. gmail.com.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the 'curated' qualifier, which implies the list is maintained and possibly non-exhaustive—useful context beyond annotations. However, it does not disclose edge cases, return format, or what happens with invalid domains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action ('Test whether') and the object ('domain') followed by the precise list qualifier. There is no filler or redundant phrasing; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a one-parameter, boolean-style lookup with annotations covering safety, the description conveys the core behavior adequately. It could mention that it returns a boolean or doesn't handle full email addresses, but 'Test whether a domain belongs' strongly implies a boolean result and the scope is clear. Minor gap, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100% and the parameter description already explains 'Domain to test, e.g. gmail.com.' The tool description adds no extra meaning beyond what the schema provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb ('Test whether'), a clear resource ('domain'), and a precise criterion ('belongs to the curated free consumer-email-provider list'). It distinguishes this tool from siblings like email_disposable (disposable domains) and email_validate (general email validation) by highlighting the curated provider-list scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description makes the purpose clear but does not explicitly state when to use this tool over alternatives such as email_disposable or email_validate. Usage context is implied ('free consumer-email-provider') but no exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

email_smtp_probeEmail SMTP RCPT ProbeA
Read-onlyIdempotent
Inspect

Live SMTP RCPT probe (HELO + MAIL FROM + RCPT TO; no DATA). Reports deliverability verdict (deliverable / catch_all / undeliverable / greylisted / inconclusive). Catch-all detection via random-fake-RCPT comparison. Skipped automatically for Gmail / Outlook / Yahoo / iCloud / Fastmail / ProtonMail. ~3-8s latency.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to probe.
check_catch_allNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark readOnly/idempotent/nondestructive, and the description adds materially: no DATA, catch-all detection via random-fake-RCPT comparison, automatic skip for specified providers, and ~3-8s latency. This gives the agent useful behavioral expectations beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four compact sentences, each carrying distinct information: mechanism, output, catch-all method, provider exemptions, and latency. Core action and output are front-loaded with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

With no output schema, the description still enumerates the possible verdicts, explains the probing protocol, discloses provider skips, and gives latency. That is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema documents only email; check_catch_all is a bare boolean. The description adds meaning to catch-all behavior via 'random-fake-RCPT comparison' and the auto-skip caveat, but it never explicitly names check_catch_all or states that it can be disabled, so the compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource: 'Live SMTP RCPT probe (HELO + MAIL FROM + RCPT TO; no DATA)' with a concrete output enum. The protocol detail and verdict list distinguish it from sibling email/address validation tools even without naming an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly implies use for live SMTP deliverability checking, includes catch-all detection, and notes automatic skipping for major providers. It does not explicitly name alternatives or state when not to use it, so it has strong contextual guidance but no formal exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

email_validateEmail ValidationA
Read-onlyIdempotent
Inspect

Validate an email address: RFC syntax, MX lookup, disposable/free/role-account flags, typo correction, and a composite deliverability score. Demo mode is allowed; no live SMTP probe.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to validate.
check_dnsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond that: it performs MX lookup, flags disposable/free/role accounts, suggests typo corrections, returns a composite score, and importantly does NOT perform a live SMTP probe. It also notes demo mode is allowed, which is useful operational context not captured in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the core action and then efficiently lists the key checks and limitations. Every clause adds information: the validation scope, the behavioral boundary (no SMTP probe), and the demo-mode allowance. There is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description is adequate for a moderately complex read-only tool: it explains what checks are performed and the composite score, and the annotations cover safety. However, with no output schema, the description does not fully characterize the return shape beyond the score/flags, and the check_dns parameter remains unexplained. These gaps make it complete enough to use but not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 50%: 'email' is described, but 'check_dns' has no schema description and no description-level explanation. The description mentions 'MX lookup' but never links it to the check_dns parameter or explains that toggling check_dns controls DNS checking. With one undocumented parameter and no compensating explanation, the description fails to fully convey parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Description states a specific verb ('Validate') and resource ('an email address') and enumerates exactly what the validation covers: RFC syntax, MX lookup, disposable/free/role-account flags, typo correction, and composite deliverability score. This clearly distinguishes it from sibling tools like email_smtp_probe or email_disposable by positioning it as the comprehensive validation entry point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when to use this tool by presenting it as full email validation and by explicitly noting 'no live SMTP probe,' which hints that live probing is out of scope. However, it does not name sibling alternatives such as email_smtp_probe for live deliverability checks or email_disposable/email_free_provider for narrower checks, so usage guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

equities_conceptSEC XBRL Concept HistoryA
Read-onlyIdempotent
Inspect

Full observation history for one XBRL concept (any us-gaap tag). Use for fields outside our 35-item headline catalog. Returns every observation across every reported unit, most-recent first.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
conceptYesus-gaap XBRL tag, e.g. ResearchAndDevelopmentExpense.
include_segmentsNo

TDQS

A4/5.0
Behavior4/5

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

With readOnlyHint, idempotentHint, and non-destructive annotations already present, the description leverages that coverage and adds behavioral context: 'Returns every observation across every reported unit, most-recent first.' This tells the agent about completeness and ordering without needing to re-state safety. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the core behavior, then usage, then ordering, with no waste or repetition. Every sentence adds value and the structure is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description covers purpose, usage, and ordering, but because there is no output schema it does not describe what an observation record contains (e.g., date, value, filer). The unexplained include_segments parameter is another gap, leaving an otherwise simple tool slightly incomplete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Only concept has schema documentation, and the description merely echoes 'any us-gaap tag' without adding format details. ticker is left as a bare string with no accepted format, and include_segments has no explanation in either the schema or the description. Given 33% schema description coverage, the description fails to compensate for two of the three parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with 'Full observation history for one XBRL concept (any us-gaap tag)', naming the specific verb, resource, and scope. It also explicitly differentiates the tool from the '35-item headline catalog', clarifying its niche among siblings. The title reinforces the same content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The sentence 'Use for fields outside our 35-item headline catalog' explicitly states when to choose this tool and implicitly excludes catalog fields. However, it does not name the alternative tool (e.g., equities_fundamentals) that provides the catalog, so the alternative remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

equities_filingsRecent SEC FilingsA
Read-onlyIdempotent
Inspect

Live SEC EDGAR submissions API: most recent filings (10-K, 10-Q, 8-K, ...) for a ticker or CIK. Filter by form type.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikNoSEC CIK. Either ticker or cik is required.
formsNoOptional comma-separated form types, e.g. '10-K,10-Q'.
limitNo
tickerNoStock ticker. Either ticker or cik is required.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already cover readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the safety profile is fully transparent. The description adds the 'live' nature and the focus on 'most recent' filings, which is helpful, but it does not disclose response shape, pagination, or rate-limit behavior. This is acceptable given the strong annotation coverage but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence that front-loads the core behavior and then adds the key filtering capability. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple read-only tool with four parameters and no nested output schema, the description plus annotations cover the essential invocation context. The main gap is the absence of any hint about the response format, but the tool's simplicity and strong annotations make this a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema-description coverage is 75%, and the description adds relationships that the schema does not: 'for a ticker or CIK' clarifies the mutual-exclusivity between cik and ticker, and 'filter by form type' maps directly to the forms parameter. This goes beyond simply restating the schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific action and resource: it returns live SEC EDGAR submissions (10-K, 10-Q, 8-K, ...) for a ticker or CIK, with optional form-type filtering. This makes its purpose unmistakable and distinguishes it from sibling tools like equities_fundamentals and equities_ticker.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly implies when to use this tool: when you need recent SEC filing data for a company identified by ticker or CIK, and optionally filtered by form type. It does not explicitly name alternative tools or exclusion criteria, but the use case is specific enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

equities_fundamentalsSEC Fundamentals (XBRL)A
Read-onlyIdempotent
Inspect

Headline financial statements parsed from SEC XBRL filings: revenue, net income, total assets, EPS, cash flow, and 30 more curated tags. Annual (10-K) or quarterly (10-Q). Free — backed by SEC's public XBRL companyfacts API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
periodNoannual
tickerYesStock ticker.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, so the description only needs to add context. It adds the SEC XBRL companyfacts API as the source and notes the tool is free, which is useful. However, it does not discuss data limitations, units, or the shape of returned periods, leaving a moderate gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no filler. The action and resource are front-loaded, the key metrics are listed in a readable series, and period selection plus free/source context are added efficiently. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple read-only tool with strong annotations, the description plus schema defaults and enums provide enough to call it correctly. The absence of an output schema is mitigated by the metric list, though minor ambiguity around 'limit' and return structure remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is only 33%, so the description partially compensates by explaining period values (annual = 10-K, quarterly = 10-Q) and listing the kind of metrics returned. It does not clarify the meaning of 'limit' (e.g., number of periods vs. number of tags) or ticker formatting, so parameter understanding is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific action ('parsed from SEC XBRL filings') and a specific resource (headline financial statements), listing concrete metrics and the annual/quarterly distinction. It is clear and actionable, though it does not explicitly distinguish itself from sibling tools like equities_filings or equities_concept.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the tool is for summary fundamentals via 'headline financial statements' and 'curated tags,' but it never states when to use it over alternatives or when not to use it. There is no mention of sibling tools or exclusions, leaving the agent to infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

equities_tickerEquity Profile (by ticker)A
Read-onlyIdempotent
Inspect

Resolve a stock ticker to company name, CIK, exchange, SIC industry code, and headquarters from the SEC EDGAR registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker, e.g. AAPL.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds the SEC EDGAR registry source and enumerates exactly what the lookup returns, giving useful beyond-annotation context about the tool's behavior and result content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence contains all essential information: the action, the input, the output fields, and the data source. There is no filler or redundancy, and every phrase contributes to the agent's understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple lookup with one required parameter and no output schema, the description sufficiently specifies the inputs and the main return fields. It could be slightly stronger by adding edge-case behavior (e.g., unknown ticker) or disambiguating from company_ticker, but overall it is complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The input schema already provides 100% coverage with a clear description for the only parameter ('Stock ticker, e.g. AAPL.'). The tool description does not add extra parameter-level detail beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Resolve') and names a clear resource (stock ticker) with concrete outputs: company name, CIK, exchange, SIC industry code, and headquarters. It also identifies the data source (SEC EDGAR registry), making the tool's scope distinct from siblings like equities_filings or equities_fundamentals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the primary use case: when you have a ticker and need company identity metadata from SEC EDGAR. However, it does not explicitly state when to choose this tool over similar siblings such as company_ticker or company_cik, nor does it provide any exclusions or alternative routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flight_airline_reliabilityFlight Airline ReliabilityB
Read-onlyIdempotent
Inspect

Summarize loaded route reliability signals for a carrier code.

ParametersJSON Schema
NameRequiredDescriptionDefault
airline_codeYesCarrier code, for example DL.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already mark it read-only, idempotent, and non-destructive; the description adds the useful notion that signals are 'loaded' rather than live. It does not contradict annotations, but it does not disclose output shape or aggregation details beyond the word 'summarize'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with the core verb and scope front-loaded. Minor jargon like 'loaded' could be clarified, but there is no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

This is a one-parameter tool with strong safety annotations, so the description need not carry much. However, with no output schema and several flight siblings, it would benefit from clarifying what a 'summary' contains and how this differs from flight_reliability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema fully documents airline_code ('Carrier code, for example DL') and the description only restates the carrier-code scope. No extra input semantics are added beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific verb ('Summarize') and resource ('loaded route reliability signals') scoped to a carrier code, so it avoids tautology. It does not explicitly compare itself to the closely named sibling flight_reliability, so it is clear but not fully differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No text indicates when to prefer this tool over flight_reliability, flight_route_summary, or other flight siblings. The only implied context is 'carrier code', which describes the parameter more than the decision situation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flight_airport_delay_profileFlight Airport Delay ProfileB
Read-onlyIdempotent
Inspect

Summarize delay and reliability signals for an airport across loaded loaded route aggregates.

ParametersJSON Schema
NameRequiredDescriptionDefault
airport_codeYesAirport code, for example ATL.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover the safety profile (read-only, idempotent, non-destructive), so the bar is lower. The description adds minimal behavioral context beyond the annotations, only hinting at aggregation scope with 'route aggregates.' It does not describe output format, time coverage, or reliability metrics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and starts with the main verb, which is good. However, the repeated word 'loaded loaded' and the unclear term 'route aggregates' make it less polished and precise than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

Given the tool has a single well-documented parameter and rich annotations, the description is not severely incomplete. Yet the lack of an output schema and the cryptic 'loaded loaded route aggregates' leave ambiguity about what signals are actually returned, so more context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The only parameter, airport_code, is fully documented in the schema with an example (ATL). The description itself adds nothing about parameters, but with 100% schema coverage the schema carries the burden, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description uses a clear verb ('Summarize') and identifies the resource ('an airport') and the subject ('delay and reliability signals'), which differentiates it from airline- or route-level flight tools. However, the phrase 'across loaded loaded route aggregates' is vague and contains a typo, which slightly obscures the exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies this tool is for airport-level delay/reliability summaries, which gives some basis for selecting it over flight_route_summary or flight_airline_reliability. But it does not explicitly state when to use it or exclude other flight-related siblings, leaving the choice somewhat to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flight_cancellation_riskFlight Cancellation RiskA
Read-onlyIdempotent
Inspect

Return historical cancellation-risk signals for a route. This is not live tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
destYesDestination airport code, for example LGA.
monthNoOptional numeric month.
originYesOrigin airport code, for example ATL.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful temporal context with 'historical' and 'not live tracking,' but it does not disclose the signal format, lookback period, or granularity, so some behavioral detail remains implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The first sentence states the core capability, and the second sentence prevents misuse by clarifying this is not live tracking. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The tool is simple with only two required parameters, and annotations cover safety semantics. However, because there is no output schema, the description should clarify what 'signals' actually look like, such as fields, units, or possible values, which is currently left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented fully in the schema. The description adds no parameter-specific meaning beyond routing, which is acceptable under the baseline for fully covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb ('Return'), resource ('historical cancellation-risk signals'), and scope ('for a route'). The phrase 'not live tracking' distinguishes it from live flight-status tools and implies it is not a real-time tracker, separating it clearly from sibling flight tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Provides a clear use case: obtaining historical route cancellation-risk signals. It also gives an explicit when-not boundary with 'This is not live tracking.' It does not name alternatives like flight_reliability or flight_route_summary, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flight_reliabilityFlight ReliabilityA
Read-onlyIdempotent
Inspect

Return historical route reliability. Demo mode allows selected loaded routes such as ATL-LGA, ORD-EWR, SFO-SEA, LAX-JFK, DFW-LAX, and ATL-MCO.

ParametersJSON Schema
NameRequiredDescriptionDefault
destYesDestination airport code, for example LGA.
monthNoOptional numeric month.
originYesOrigin airport code, for example ATL.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds the demo-mode restriction, which is a genuine behavioral trait beyond annotations. But it does not clarify what 'reliability' means as a metric, what happens for unsupported routes, or the historical date range covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the core purpose before the constraint. The route list is somewhat long but carries necessary demo-mode information. Nothing is wasted, though the enumeration could arguably be condensed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a read-only query tool with only three well-documented parameters and safety annotations, the description covers the basics. However, there is no output schema, so the agent must infer what a reliability result looks like; the meaning of the reliability metric and the behavior on unsupported routes are also left unspecified. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by listing concrete origin-destination pairs (ATL-LGA, ORD-EWR, etc.) that are actually loadable in demo mode, which tells the agent which parameter combinations will succeed beyond the schema's generic format examples. This justifies one point above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description opens with a clear verb-plus-resource statement: 'Return historical route reliability.' The word 'route' helps separate it from the sibling flight_airline_reliability. However, it does not explicitly distinguish itself from overlapping siblings like flight_cancellation_risk, flight_route_summary, or flight_route_best_times, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description provides operational context by noting that 'Demo mode allows selected loaded routes' and enumerates the six supported route pairs. This implies when the tool can actually return data in demo environments, but it never states when to prefer this tool over the related flight tools or what conditions would select an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flight_route_best_timesFlight Route Best TimesB
Read-onlyIdempotent
Inspect

Rank loaded departure-hour buckets for a route by historical reliability score.

ParametersJSON Schema
NameRequiredDescriptionDefault
routeYesRoute in ORIGIN-DEST format, for example ATL-LGA.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, covering safety. The description adds a small behavioral detail: it ranks buckets by 'historical reliability score', implying a sorted output, but does not describe the return format, pagination, or what 'loaded' means. Given the annotations, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action ('Rank loaded departure-hour buckets') and the basis ('historical reliability score'). No filler or redundant information; every word contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The tool is simple (one required parameter) and the schema plus annotations cover the input and safety. However, there is no output schema, and the description does not specify what the return value looks like (e.g., a ranked list of hours with scores). More detail on the output would improve completeness, but the low complexity makes it acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema fully describes the single 'route' parameter with format and example, achieving 100% schema coverage. The description merely refers to 'a route' without adding new meaning. Baseline of 3 is appropriate since the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly states the verb 'Rank' and the resource 'loaded departure-hour buckets for a route' based on 'historical reliability score'. It is specific and distinct enough from siblings like flight_route_summary or flight_reliability, though it does not explicitly name them. The purpose is evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of scenarios, exclusions, or comparisons to other flight-related tools, so an agent must infer the appropriate context from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

flight_route_summaryFlight Route SummaryB
Read-onlyIdempotent
Inspect

Return a combined historical route summary with reliability, cancellation risk, carriers, months, and best time bucket. This is not live tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
destYesDestination airport code, for example LGA.
originYesOrigin airport code, for example ATL.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds 'historical' and 'not live tracking,' which adds context about the temporal nature of the data. But it doesn't disclose how missing data is handled, what 'best time bucket' means, or any rate limits. With annotations carrying the safety profile, the description provides minimal but useful additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences with zero redundancy. The first sentence front-loads the primary purpose and content, and the second sentence is a concise clarification. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple two-param tool with safe annotations, the description lists the key output components, which is helpful. However, it omits any mention of the output format (since no output schema exists), and given the large number of flight siblings, it doesn't explicitly explain when this combined view is more appropriate than the focused tools. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, so both parameters (origin, dest) are already described as airport codes with examples. The description doesn't add extra meaning beyond 'route,' such as format enforcement or coordinate vs. code. Since the schema fully documents the parameters, the description does not need to compensate, earning the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description uses a specific verb ('Return') and resource ('combined historical route summary'), and lists the included data points (reliability, cancellation risk, carriers, months, best time bucket). It distinguishes from live tracking, which helps set expectations. However, it doesn't explicitly differentiate from sibling tools like flight_reliability or flight_cancellation_risk, though the word 'combined' implies aggregation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The only usage hint is 'This is not live tracking,' which is a negative clarification but offers no guidance on when to choose this tool over the many flight-specific siblings (e.g., flight_airline_reliability, flight_route_best_times). No explicit conditions or alternatives are mentioned, leaving the agent to infer that the combined summary is preferable for a holistic view.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_seriesFRED Economic SeriesA
Read-onlyIdempotent
Inspect

Fetch any FRED time-series by curated slug (gdp, cpi, unemployment, fed_funds, treasury_10y, vix, wti, mortgage_30y, ...) or raw FRED ID (CPIAUCSL, UNRATE, DGS10). ~800k series available — covers BLS, Census, Fed, Treasury, OECD, IMF, BIS. Free upstream, server-side key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoISO date YYYY-MM-DD.
sortNodesc
limitNo
startNoISO date YYYY-MM-DD.
series_or_slugYesCurated slug (e.g. 'gdp') or raw FRED series ID (e.g. 'CPIAUCSL').

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful operational context beyond annotations: the upstream is free, a server-side key is required, and the tool covers roughly 800k series across major data sources. It does not describe response format or pagination, but this is less critical given the rich annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core action, and every sentence earns its place. The examples are inline and the coverage/key-requirement details are relevant operational context. There is no fluff or repetition of schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a tool with no output schema, the description could say more about the response structure, units, or default time range. However, the name and 'time-series' wording make the return type clear enough, and the description covers input alternatives, scale of data, source coverage, and the server-side key requirement. It is adequate for correct invocation, with only minor gaps around output details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The description significantly enriches the main parameter series_or_slug by listing many example slugs and clarifying the raw-ID alternative. However, schema description coverage is only 60%; sort and limit have no description in the schema and the tool description does not explain their semantics either. The main parameter is well handled, but 40% of the schema is left without added meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific action and resource — 'Fetch any FRED time-series' — and clearly scopes the tool to retrieval via curated slug or raw FRED ID. Concrete examples ('gdp', 'CPIAUCSL') make the operation unambiguous and distinguish it from sibling tools like fred_search and fred_popular, which are about discovery rather than direct series fetching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the right usage — call this tool when you already have a slug or raw FRED series ID — but it does not explicitly say when to prefer fred_search or fred_popular instead. There is clear context on input forms, but no direct when-to-use/when-not-to-use routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

funding_signalFunding Signal (SEC Form D)A
Read-onlyIdempotent
Inspect

SEC Form D-based funding-signal envelope. Pulls Form D / D-A filings live from EDGAR and surfaces a recency-weighted funding score, cadence hint (fresh_raise, recent_raise, established_cadence, stale), and buyer-shaped action_hint tuned by buyer profile (sales_outreach, vendor_partnerships, investor_research, recruiter). Form D filings are the public, free, authoritative record of private securities offerings.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
domainNoCompany domain. One of domain or ticker required.
tickerNoStock ticker. Used when domain not provided.
window_daysNo
buyer_profileNosales_outreach

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable context beyond that by stating it pulls live from EDGAR, uses recency weighting, and returns specific cadence categories. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core behavior and output categories. The opening clause is somewhat redundant with the title, but the remaining sentences are dense and useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given there is no output schema, the description usefully communicates the data source, output concepts, and profile-specific behavior. Still, the semantics of limit and window_days and a more precise return shape are absent, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema descriptions cover domain and ticker, and the description adds meaning for buyer_profile by enumerating its tuning values. However, limit and window_days are never explained in the description, and with only 40% schema description coverage this is a meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific verb/resource ('Pulls Form D / D-A filings live from EDGAR') and enumerates concrete outputs: a recency-weighted funding score, cadence hint categories, and buyer-profile-tuned action hints. This makes the tool easily distinguishable from sibling signal tools such as hiring_signal or compliance_signal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear context for when this tool is appropriate: it surfaces funding signals from the public, authoritative record of private securities offerings and adapts output by buyer profile. However, it does not explicitly name sibling alternatives or state when-not-to-use conditions, leaving some routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_convertFX ConvertA
Read-onlyIdempotent
Inspect

Convert an amount between two currencies at the most recent reference rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
to_currencyYesDestination currency code, e.g. EUR.
from_currencyYesSource currency code, e.g. USD.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already establish that the operation is read-only, idempotent, and non-destructive, so the description does not need to restate that. It adds the useful detail that conversion uses the 'most recent reference rate' rather than a custom or historical rate, but it does not disclose output shape, rounding behavior, or rate-source limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action ('Convert an amount') and the key scope ('most recent reference rate'). There is no filler, redundancy, or irrelevant context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple three-parameter read-only conversion with rich annotations, the description is nearly complete: it states the action, the present-time scope, and the parameters are self-evident from the schema. The only missing piece is an explicit return-shape hint since there is no output schema, though the converted amount is strongly implied by the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The schema documents currency codes for from_currency and to_currency but leaves amount as just a number. The description does not fill that gap: it neither defines amount as a positive decimal in the source currency nor explains precision or minimums. It adds essentially no parameter meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Convert') and names the exact operation: an amount between two currencies, scoped to the most recent reference rate. This clearly distinguishes it from historical/timeseries fx siblings. An agent can identify what this tool does without opening sibling definitions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'most recent reference rate' implies this is for current conversions rather than historical analysis. However, it never explicitly names alternatives such as fx_historical or fx_timeseries, nor does it state when not to use this tool. The agent must infer routing from sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_correlationFX Correlation MatrixA
Read-onlyIdempotent
Inspect

Pearson correlation of daily log-returns vs USD across a basket. Cells banded strong_positive/positive/neutral/negative/strong_negative. Treasury/risk workflow for understanding multi-currency exposure.

ParametersJSON Schema
NameRequiredDescriptionDefault
basketNog10
horizon_daysNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so safety is covered. The description adds valuable behavioral context about the computation method (Pearson correlation of daily log-returns) and the banding logic, which goes beyond what annotations provide. It also specifies the base currency (USD), which is not in the schema. This enriches the agent's understanding without duplicating annotation data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, efficient and free of fluff. It front-loads the core function and then adds the output banding detail and use case. Every sentence contributes meaning, making it appropriately concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description explains the purpose and output banding, but lacks details on the exact output structure (e.g., which currency pairs) and the meaning of parameters like basket and horizon_days. Since there is no output schema, the description should compensate but does not fully. It is adequate for a simple read-only tool but leaves gaps for an agent to correctly set parameters and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must explain both parameters. The description mentions 'basket' but does not elaborate on its possible values (g10 vs majors) or their meaning. It completely omits the horizon_days parameter, leaving its role (lookback window) unclear. Without parameter descriptions in the schema or description, an agent cannot determine appropriate values or their impact on the output. The description adds no semantic value beyond the parameter names themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool computes 'Pearson correlation of daily log-returns vs USD across a basket' – a specific verb, resource, and scope. It also explains the output banding (strong_positive/positive/neutral/negative/strong_negative), making it distinct from other FX tools like fx_rates or fx_convert which focus on levels or conversions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'Treasury/risk workflow for understanding multi-currency exposure' provides some context on when to use this tool, implying it is for correlation analysis rather than rate lookups. However, it does not explicitly contrast with sibling tools (e.g., fx_strength, fx_volatility_leaders) or state when not to use it. No alternative tool is named, leaving the agent to infer the differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_currenciesFX Currency ListA
Read-onlyIdempotent
Inspect

List every currency Ready APIs has reference-rate coverage for, with its issuing central bank and peg classification.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive behavior. The description adds useful behavioral context—the complete list scope and the two specific fields returned—which compensates for the absence of an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with no filler, front-loaded with the verb and scope. Every word adds value: 'every', 'reference-rate coverage', 'central bank', and 'peg classification' are all informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

The tool is low-complexity (no params, safe read-only operation, no output schema). The description tells the agent what the response contains and the scope of the list, which is sufficient to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

There are zero parameters, so there is nothing for the description to add over the input schema. The 0-param baseline of 4 applies; mentioning parameters would be redundant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a precise verb ('List') and resource ('every currency Ready APIs has reference-rate coverage for'), and names the output fields (issuing central bank, peg classification). This makes it easy to distinguish from sibling FX tools like fx_rates or fx_convert without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly communicates when to call it: when an agent needs the universe of currencies with reference-rate coverage, including central bank and peg details. It does not explicitly name sibling alternatives or when-not-to-use conditions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_historicalFX Historical RateA
Read-onlyIdempotent
Inspect

Reference rate for a specific past date. Useful for 'what was USD→EUR on 2024-11-15?' questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoEUR
rate_dateYesISO date, e.g. 2024-11-15.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the tool returns a 'reference rate' for a past date, which is behaviorally consistent. It does not disclose potential edge cases like weekend/holiday rates, source, or rate timing, but given the strong annotation coverage, the added context meets the minimum bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences with no redundant words. The purpose statement is front-loaded, and the example sentence adds practical value. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple, read-only, 2-parameter tool, the description plus annotations cover the safety profile and give a concrete example. However, the base parameter remains unexplained, and with no output schema, the return value's shape is unknown. These are notable gaps for an agent trying to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 50%: rate_date has a format example in the schema, but base has no schema description. The tool description's example 'USD→EUR' hints at currency pairing but does not explain the base parameter's meaning or how the quote currency is specified (there is no quote parameter). This leaves the base parameter ambiguous and fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states the tool returns a 'reference rate for a specific past date' and gives a concrete example ('what was USD→EUR on 2024-11-15?'). This clearly conveys the action and resource. It implicitly distinguishes from siblings like fx_timeseries via the phrase 'specific past date', but it does not name the alternatives explicitly, so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides an explicit use case: answering single-date historical FX questions like 'what was USD→EUR on 2024-11-15?'. This gives clear context for when to use it. However, it does not state when not to use it or point to alternatives (e.g., fx_timeseries for ranges, fx_convert for current or forward conversions), so exclusions are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_moversFX Biggest Pair MoversA
Read-onlyIdempotent
Inspect

Top N pairs by absolute % change over the lookback window. Returns signed pct_change + direction (up/down/flat). Daily/weekly market briefing.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
basketNomajors
horizon_daysNo

TDQS

A3.6/5.0
Behavior4/5

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

The description adds useful behavioral detail beyond the annotations by stating that it ranks by absolute percent change, returns signed pct_change, and includes an up/down/flat direction. Since annotations already declare read-only, idempotent, and non-destructive behavior, the description's extra computation and output semantics are valuable and consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no filler. The core selection logic is front-loaded, and the return-format note plus the briefing context each add useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple read-only tool with all parameters optional and sensible defaults, the description covers what is ranked, over what window, and what is returned. Minor gaps remain around basket semantics and exact response format, but the tool is callable without additional clarification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, and the description does not define top_n, basket, or horizon_days explicitly; it only echoes 'Top N' and 'lookback window.' The basket enum values and defaults are left entirely to the schema, so the description does not compensate for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies a specific analytical resource: top N FX pairs ranked by absolute percentage change over a lookback window, and it names the output fields. It does not, however, explicitly distinguish it from sibling tools like fx_volatility_leaders or fx_strength, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'Daily/weekly market briefing' hints at the intended use case, and 'lookback window' loosely connects to horizon_days. No explicit when-to-use or when-not-to-use guidance is given relative to the many sibling FX tools, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_pairFX Pair Deep ProfileA
Read-onlyIdempotent
Inspect

Deep enrichment for one currency pair: latest rate + 30/90-day volatility + trend + anomaly z-score + spread estimate + cross-strength + verdict. Decision-grade single-call summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesThree-letter base currency code.
quoteYesThree-letter quote currency code.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds useful behavioral context by framing this as a single aggregated call that computes multiple derived metrics in one response, which goes beyond the safety annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the resource and purpose. The colon-separated list is dense but informative; 'Decision-grade' is somewhat rhetorical, but the rest of the text earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description carries the burden of explaining return content, and it does enumerate the main output components. It does not define terms like 'verdict' or describe return structure, but the simple two-parameter input and strong annotations reduce the need for more detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, with base and quote already described as three-letter currency codes. The description reinforces that the tool operates on a single pair but adds no additional format, validation, or usage detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies the resource ('one currency pair') and enumerates the specific outputs: latest rate, 30/90-day volatility, trend, anomaly z-score, spread estimate, cross-strength, and verdict. This differentiates it from most sibling FX tools like fx_rates or fx_strength, though no sibling is explicitly named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'Decision-grade single-call summary' implies use when a consolidated, multi-metric FX profile is needed, and 'one currency pair' indicates scope. However, it does not explicitly state when to prefer this over fx_strength, fx_timeseries, or fx_convert, nor does it provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_ratesFX RatesA
Read-onlyIdempotent
Inspect

Return current daily reference exchange rates relative to a base currency (default EUR), sourced from ECB.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoThree-letter base currency code.EUR

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, lowering the burden on the description. The description adds useful context: the source (ECB), the default base currency (EUR), and the daily reference nature of the data, without contradicting any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the action and result, with no filler. It efficiently includes the data source and default currency without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a tool with one optional parameter, rich safety annotations, and no output schema, the description conveys the core return value and its context. It does not spell out the exact response shape, but 'exchange rates relative to a base currency' gives an agent enough to predict the output; explicit sibling differentiation is the main minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, so the base parameter is already fully documented. The description reinforces that rates are relative to the base currency and notes the EUR default, but this adds only modest meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Return'), names a precise resource ('current daily reference exchange rates'), and adds the data source (ECB). This clearly distinguishes it from siblings like fx_historical, fx_pair, and fx_convert.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'current daily reference' and 'ECB' imply this is intended for daily reference rates rather than historical or intraday data, but the description never explicitly names alternatives or states when not to use it. With many fx_* siblings, explicit routing guidance would strengthen it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_strengthFX Currency Strength LeaderboardA
Read-onlyIdempotent
Inspect

Ranked strength leaderboard for the past N days. For each currency in the basket (g10 or majors), the average move across every pair it participates in. Strongest → weakest with per-currency label.

ParametersJSON Schema
NameRequiredDescriptionDefault
basketNog10
horizon_daysNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish this as a safe, read-only, idempotent operation, so the description's additional burden is low. It adds meaningful behavioral context by explaining the ranking methodology: averaging each currency's move across every pair in the basket and ordering by strength. No contradictions with annotations were found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences deliver the core purpose, the calculation methodology, and the output ordering with no redundancy. The key term 'strength leaderboard' is front-loaded, and the next sentences earn their place by clarifying what 'strength' means.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple read-only tool with two optional parameters and no output schema, the description covers the essential needed details: time window, basket choices, computation, and return ordering. It is slightly incomplete in not specifying the return label format or whether moves are expressed in percentages or pips, but this is a modest gap given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The input schema has 0% description coverage, so the description must compensate. It does so by explaining that 'basket' limits the leaderboard to g10 or majors and that 'past N days' maps to horizon_days. This gives semantic meaning beyond the raw enum/default values, though it stops short of defining exact move units or basket membership details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and deliverable: a 'ranked strength leaderboard' over the past N days. It further specifies the resource (g10 or majors basket) and the output structure (strongest to weakest, per-currency label), making it clearly distinct from related FX tools like fx_volatility_leaders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrasing 'ranked strength leaderboard' implies the tool is for comparing relative currency strength over a horizon, and the description gives methodological context. However, it does not explicitly say when to use this tool versus alternatives such as fx_movers, fx_correlation, or fx_volatility_leaders, nor does it name exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_timeseriesFX TimeseriesA
Read-onlyIdempotent
Inspect

Daily rate series for a single base→quote pair across a date range. Useful for charts and trend analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesISO end date.
baseYes
quoteYes
startYesISO start date.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the tool read-only, idempotent, open-world, and non-destructive, so the safety profile is well covered. The description adds that it returns daily data over a range, but it does not disclose return shape, ordering, handling of missing days, or rate type. This is acceptable for a simple read tool but adds limited behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words. The first sentence carries the essential definition, and the second adds practical application context. Nothing is duplicated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple read-only tool with four required string parameters and no output schema, the description is workable but minimal. An agent can likely infer the intended call, but it lacks guidance on currency code formats and does little to disambiguate this tool from the larger fx sibling cluster.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema documents start and end as ISO dates, covering 50% of parameters. The description reinforces that start and end form a date range and introduces the base→quote pair relationship, which is useful. However, base and quote lack format or code guidance in both schema and description, so the description only partially compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies the resource: a daily rate series for a single base→quote pair over a date range, and it states the use case ('charts and trend analysis'). It lacks an explicit imperative verb like 'retrieves' or 'returns,' and it does not name sibling tools, but the function is still unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description gives clear context for when this tool is appropriate: daily series, single currency pair, date range, and chart/trend use cases. However, it does not explicitly distinguish it from closely related fx siblings such as fx_rates, fx_historical, or fx_pair, nor does it state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_volatility_leadersFX Volatility LeadersA
Read-onlyIdempotent
Inspect

Pairs ranked by annualized realized volatility. Distinct from fx_movers — surfaces pairs that swing wildly day-to-day, even if flat overall. Classes: low/moderate/elevated/extreme.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
basketNomajors
horizon_daysNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive behavior. The description adds useful behavioral context beyond that: it explains the metric (annualized realized volatility), the 'flat overall' edge case, and the low/moderate/elevated/extreme classification. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, front-loaded with the core ranking purpose, followed by the sibling distinction and output classification. Every sentence contributes meaningful information with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

With no output schema, the description should clarify return shape, but it only partially does so via the classification classes. It does not describe whether each result includes the volatility value, class label, or pair identifiers, nor does it connect horizon_days or basket to the results. Adequate for a simple read-only ranked list, but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, and the description adds no explanation for top_n, basket, or horizon_days. While the parameter names and schema defaults are somewhat self-explanatory, 'basket' (g10 vs majors) is left ambiguous and the description does not compensate for the complete lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific verb and resource ('Pairs ranked by annualized realized volatility') and immediately differentiates the tool from fx_movers by explaining it surfaces pairs with high day-to-day swings even if flat overall. It also names the output classification scheme, so an agent knows what to expect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description explicitly names the closest sibling, fx_movers, and gives the distinguishing criterion: volatility leaders are about daily swing magnitude, while movers are about net movement. This provides clear selection context, though it stops short of an explicit when-to-use/when-not-to-use formulation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_asnGeo ASN LookupA
Read-onlyIdempotent
Inspect

Resolve an IP to its autonomous system number, organization, and network prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to cover safety. It adds useful context about the returned entities, but does not mention edge cases such as reserved/private IPs or missing data behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, information-dense sentence. It front-loads the verb and resource, lists the outputs, and contains no filler or redundant repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a single-parameter read-only lookup tool, this is complete: the input is defined by the schema, the output scope is stated, and annotations cover the operational semantics. No additional context is necessary for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% and the ip parameter already includes a description ('IPv4 or IPv6 address'). The tool description does not add novel parameter information beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Resolve') with a clear input (IP) and names three concrete outputs: autonomous system number, organization, and network prefix. This distinguishes it from siblings like geo_ip or geo_enrich that focus on location or general enrichment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The intended use is implied by the ASN-specific output, but the description does not explicitly state when to choose this over related tools such as geo_ip or geo_enrich. It lacks an explicit alternative or exclusion, so a caller must infer the routing from the tool's scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_county_lookupGeo County LookupA
Read-onlyIdempotent
Inspect

Return ZIP profiles in a county by county FIPS. Demo mode allows selected sample FIPS values.

ParametersJSON Schema
NameRequiredDescriptionDefault
fipsYesCounty FIPS code, for example 13121.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds a behavioral caveat not visible in the schema or annotations: demo mode restricts accepted values to selected sample FIPS codes. This is useful, though it remains slightly vague about what happens for non-sample FIPS values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The core behavior is front-loaded ('Return ZIP profiles in a county by county FIPS'), and the caveat about demo mode is added as a single additional sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple, single-parameter, read-only lookup, the description is largely complete: it states the input, the output concept, and the demo-mode limitation. The lack of an output schema means 'ZIP profiles' is not expanded into specific fields, but the tool is simple enough that this is a minor gap rather than a serious omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already fully documents the single fips parameter with a type, description, and example ('13121'), so the baseline is 3. The description reinforces the county-FIPS concept and adds the demo-mode sample restriction, but it does not add substantial new parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific action ('Return'), a specific resource ('ZIP profiles'), and the key input ('county by county FIPS'). This clearly distinguishes it from sibling tools like geo_zip_lookup, which operate on a single ZIP code rather than a county.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description makes the usage context clear: use this tool when you have a county FIPS and want the ZIP profiles contained in that county. It does not explicitly name alternatives or exclusion conditions, so it falls short of a 5, but the intended use is unambiguous enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_enrichGeo EnrichA
Read-onlyIdempotent
Inspect

Return the enriched ZIP profile shape used by production enrichment workflows. Demo mode allows selected sample ZIPs.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipYesU.S. ZIP code, for example 30301.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the demo-mode limitation and production-workflow context, but does not clarify what 'enriched' means or what output consumers should expect; there is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with the core action front-loaded and the demo-mode caveat placed second. Every sentence earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a one-parameter read-only tool, the schema and annotations cover invocation and safety. Because there is no output schema, a more concrete description of the returned enriched profile, such as its fields or structure, would improve completeness; 'profile shape' is vague.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% and the zip parameter is already described as a U.S. ZIP code with an example. The description adds no additional parameter semantics beyond implying that only selected ZIPs work in demo mode, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description names a specific verb and resource: it returns the enriched ZIP profile shape, with production enrichment workflows as the context. It is clear enough to communicate that this tool provides ZIP enrichment rather than validation or IP lookup, but it does not explicitly differentiate itself from sibling tools such as geo_zip_lookup or address_enrich.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'used by production enrichment workflows' gives implied context for when the tool is relevant, and 'Demo mode allows selected sample ZIPs' hints at a trial/development mode. However, there is no explicit when-to-use versus any sibling, and no exclusionary guidance for geo_zip_lookup, geo_zip_batch, or address_enrich.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_ipGeo IP LookupA
Read-onlyIdempotent
Inspect

Resolve an IPv4 or IPv6 address to city, state, country, coordinates, timezone, and the nearest US ZIP profile. Demo mode is limited to selected sample IPs.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address, for example 8.8.8.8.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds genuinely useful context beyond annotations: the demo-mode limitation to selected sample IPs, which warns the agent that arbitrary IPs may not resolve in demo mode. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero wasted words. The main purpose is front-loaded first, and the demo-mode caveat is a necessary second sentence. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple 1-parameter, read-only tool with no output schema, the description is nearly complete: it states the input, enumerates the return fields, and discloses the demo-mode restriction. The only small gap is that it doesn't say what happens when a non-sample IP is used in demo mode (error vs empty result).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100% — the 'ip' parameter is already documented as an IPv4 or IPv6 address with an example. The description echoes 'IPv4 or IPv6 address' but adds no new semantic detail such as accepted formats, normalization behavior, or error cases. Baseline 3 applies since the schema carries the weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific verb ('Resolve'), a specific resource (IPv4/IPv6 address), and a detailed list of outputs (city, state, country, coordinates, timezone, nearest US ZIP profile). This is clear and implicitly differentiates it from siblings like geo_timezone or geo_zip_lookup, though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The usage context is implied — when you have an IP address and want location-derived data, this is the tool — but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives like geo_enrich or geo_city_search. The demo-mode note is a behavioral constraint, not routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_nearbyGeo Nearby ZIPsA
Read-onlyIdempotent
Inspect

Return distance-sorted ZIP profiles near a coordinate. Demo mode allows selected sample coordinates, radius up to 25 miles, and limit up to 10.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude.
lonYesLongitude.
limitNo
radius_milesNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds genuine behavioral context beyond those hints: results are distance-sorted, and demo mode imposes hard caps of 25 miles and 10 results — critical constraints an agent needs before passing larger values. It adds value without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the core function front-loaded and the constraint sentence earning its place. Slightly cryptic phrasing ('Demo mode allows selected sample coordinates') is the only blemish; otherwise it is efficiently sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple read-only tool with rich annotations, the description covers the essential behavior: input (coordinate), output (distance-sorted ZIP profiles), and operational limits (demo caps). Minor gaps remain — what fields a ZIP profile contains and whether lat/lon must be specific sample coordinates — but nothing blocks a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is only 50% (lat/lon documented, limit and radius_miles undocumented). The description compensates by bounding the two undocumented parameters ('radius up to 25 miles, limit up to 10'), adding real semantics beyond the schema's bare defaults. It does not define exactly what a 'ZIP profile' contains, but the core meaning of each parameter is recoverable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific verb ('Return'), a concrete resource ('ZIP profiles'), and a distinguishing modifier ('distance-sorted ... near a coordinate'). This clearly separates it from siblings like geo_zip_lookup (lookup by ZIP) and geo_city_search (search by city), which an agent can tell apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The context for use is implied: supply a coordinate and get nearby ZIPs. However, no explicit when-to-use/when-not-to-use guidance or named alternatives (e.g., geo_zip_lookup for reverse lookups, geo_zip_batch for multiple ZIPs) is provided, so the agent must infer routing from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_timezoneGeo TimezoneB
Read-onlyIdempotent
Inspect

Resolve a timezone using nearest ZIP centroid logic. Demo mode allows selected sample coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude.
lonYesLongitude.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds some behavioral context by revealing the nearest-ZIP-centroid methodology and mentioning demo mode, but it does not clarify accuracy expectations, geographic coverage, or what demo mode actually changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the core purpose in the first sentence. The second sentence about demo mode earns some space but is vague and could be clearer without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

The tool is simple, but the description omits important operational details: it does not state the return value format, whether non-US coordinates are supported, or what 'Demo mode allows selected sample coordinates' actually means. This creates real ambiguity for an agent deciding whether and how to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The input schema fully documents lat and lon, so the description does not need to repeat their definitions. The description adds minimal extra meaning beyond the coordinate types, providing no range, format, or coordinate-system details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific action and resource: 'Resolve a timezone' from latitude/longitude. The additional 'nearest ZIP centroid logic' distinguishes it from sibling geo tools like geo_enrich or geo_zip_lookup, making the tool's unique role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as geo_zip_lookup, geo_city_search, or geo_enrich. The phrase 'Demo mode allows selected sample coordinates' hints at a constraint but does not explain when demo mode applies or when production behavior differs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_zip_batchGeo ZIP BatchA
Read-onlyIdempotent
Inspect

Look up multiple ZIP profiles in one bounded request. Demo mode allows up to 5 selected sample ZIPs; production accepts up to 10.

ParametersJSON Schema
NameRequiredDescriptionDefault
zip_codesYesU.S. ZIP codes, for example ["30301", "10001"]. A comma-separated string is also accepted.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=true, idempotent=true, destructive=false). The description adds genuinely new behavioral context: the request is 'bounded' and capacity shifts by mode (5 in demo, 10 in production), which annotations cannot express. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler. The core action and scope are front-loaded in the first sentence, and the second sentence adds the operational limit. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a single-parameter, read-only lookup with fully documented schema and safety annotations, the description is nearly complete. The only notable gap is that it never defines what a 'ZIP profile' contains, and there is no output schema or sibling reference to fill that in, though the sample schema for zip_codes implies the input context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by revealing the mode-dependent cap (demo 5 vs. production 10), which supplements the schema's static maxItems=10 and clarifies the practical bound an agent should respect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific verb ('look up') and resource ('ZIP profiles') and clarifies the batch nature with 'multiple' and 'one bounded request.' It is clear but does not explicitly name the sibling it differs from (geo_zip_lookup), so differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The demo/production capacity distinction gives useful context for when the tool is appropriate, and 'multiple' implies batch use. However, it never explicitly states when to choose this over geo_zip_lookup or names any alternative, leaving usage guidance to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geo_zip_lookupGeo ZIP LookupB
Read-onlyIdempotent
Inspect

Look up a ZIP profile. Demo mode allows 30301, 30303, 10001, 94105, 60601, 78701, and 98101.

ParametersJSON Schema
NameRequiredDescriptionDefault
zip_codeYesU.S. ZIP code, for example 30301.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already convey read-only, idempotent, open-world, and non-destructive behavior. The description adds a demo-mode constraint listing allowed ZIP codes, which is useful, but it does not describe the returned data shape or other behavioral nuances.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is front-loaded, and the demo-mode constraint earns its place by specifying valid inputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a one-parameter read-only lookup, the basic context is adequate, but the vague 'ZIP profile' and missing output information leave an agent without a clear expectation of the response. The demo-mode phrase is also ambiguous about whether non-listed ZIPs work outside demo mode.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema has 100% coverage for the only parameter, providing type and an example ('U.S. ZIP code, for example 30301'). The description adds example ZIP codes for demo mode but does not meaningfully extend parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a clear action and resource: 'Look up a ZIP profile.' The singular phrasing implies a single-ZIP lookup, which helps differentiate it from sibling geo_zip_batch, though it does not explicitly name that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance on when to prefer this tool over alternatives such as geo_zip_batch or geo_enrich. The demo-mode note lists allowed example ZIP codes but does not clarify production behavior or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hiring_signalHiring SignalA
Read-onlyIdempotent
Inspect

Buyer-shaped hiring velocity envelope. Pass domain/company for a company-keyed view, or location (+ optional role) for a market-keyed view. Returns velocity score (0-100), tier, growth verdict (rapid_growth, active_growth, ...), and a sales_hint mapped to typical actions for the chosen buyer profile (saas_sales, recruiter, investor_diligence, competitive_intel).

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoRole family filter (e.g. engineering, sales).
limitNo
domainNoCompany domain. One of domain/company/location required.
companyNoCompany name (partial match).
locationNoLocation filter (city, metro, or 'remote').
buyer_profileNosaas_sales

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, open-world, idempotent, and non-destructive behavior. The description adds meaningful context beyond that by disclosing the output shape: velocity score, tier, growth verdict, and sales_hint. It does not explain edge-case behavior like missing data or how limit interacts with the query modes, but annotations reduce the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core concept before detailing input modes and outputs. The phrase 'Buyer-shaped hiring velocity envelope' is somewhat jargon-heavy and could be clearer, but the rest of the description is dense and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description does the necessary work of naming the key returned fields, the score range, growth verdict examples, and the sales_hint's buyer-profile mapping. It is slightly incomplete on exact optionality of returned fields and the role/limit behavior across both views, but it is strong overall for a signal-style read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema description coverage is 67%, and the description compensates well by explaining the relationship between domain/company and location, marking role as optional, and interpreting buyer_profile in terms of sales_hint mapping. It does not explain the limit parameter, though its schema constraints are self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Description clearly identifies the tool as a hiring-velocity signal that is shaped by a buyer profile, and it distinguishes two distinct access modes: company-keyed via domain/company and market-keyed via location. This separates it from generic jobs_* tools and makes its purpose immediately actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives explicit guidance on which parameters to use for each intended view, including that role is optional for the market-keyed view. It does not explicitly name alternative sibling tools or state when not to use this tool, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_buyer_profilesCompany Signal Buyer ProfilesA
Read-onlyIdempotent
Inspect

List supported buyer profiles for /intel/company-signal and how each weights the six sub-scores.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this read-only, idempotent, and non-destructive, so the description does not need to reassert safety. It usefully discloses that the tool enumerates supported profiles and explains their sub-score weighting, which is the meaningful behavioral content beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence with the verb and resource front-loaded. Every part earns its place: what is listed, for which endpoint, and what explanatory detail is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a zero-parameter, read-only reference tool, the description is nearly complete. The only minor gap is that the six sub-scores are not named, and there is no output schema, so an agent must call the tool to learn the exact sub-score labels.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The input schema has zero parameters, so the baseline for parameter semantics is 4. The description correctly focuses entirely on what the tool returns rather than parameter behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('List') and identifies the exact resource: supported buyer profiles for /intel/company-signal, plus the weighting of six sub-scores. This clearly differentiates it from sibling tools like intel_risk_profiles or intel_compliance_profiles, which cover different profile types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The phrase 'for /intel/company-signal' gives clear context for when this tool is relevant, distinguishing it from other intel_*_profiles tools. It does not explicitly state when-not-to-use or name alternative tools, but the endpoint scoping is sufficient for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_change_profilesCompany Change Buyer ProfilesA
Read-onlyIdempotent
Inspect

List buyer profiles for /intel/company-change and their category multipliers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already communicate that this is readOnly, idempotent, openWorld, and non-destructive, so the safety profile is fully covered. The description adds that it returns profile names and category multipliers, but it does not discuss pagination, ordering, or output format; with annotations present, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action, states the scope, and includes the key output detail. It contains no filler, repetition, or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a parameterless read-only listing tool, the description sufficiently states what is listed, the relevant scope, and a key output attribute. Since there is no output schema, it could slightly expand on what 'category multipliers' means, but nothing an agent needs to invoke the tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

There are zero parameters and the schema has 100% description coverage, so there is no parameter documentation burden. The description's scope phrase is the only semantic context needed, and no additional parameter explanation is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('List'), names the exact resource ('buyer profiles'), scopes it to '/intel/company-change', and adds the output focus ('category multipliers'). This clearly distinguishes it from generic siblings like intel_buyer_profiles and other intel_*_profiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The '/intel/company-change' scope provides clear context for when this tool should be called. It does not explicitly compare against sibling tools or state when not to use it, but the domain is unambiguous enough for an agent to select correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_compliance_profilesCompliance Buyer ProfilesA
Read-onlyIdempotent
Inspect

List buyer profiles for /intel/compliance-signal and their sub-score weights.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral detail beyond those annotations by specifying that the tool returns buyer profiles along with their sub-score weights, giving the agent a concrete picture of the read-only result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence states the operation, the scope, and the key output detail with no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a no-parameter, read-only list operation with strong annotations, the description is complete: it names the exact endpoint context and the two output components (buyer profiles and sub-score weights). No output schema exists, but the agent has enough information to invoke the tool and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The input schema has zero parameters and schema description coverage is 100%, so there is nothing for the description to add. With no parameters, the baseline is 4; the description appropriately avoids inventing parameter guidance that would be unnecessary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb ('List'), a precise resource ('buyer profiles for /intel/compliance-signal'), and the output content ('sub-score weights'). This clearly distinguishes it from generic sibling profile tools such as intel_buyer_profiles or intel_risk_profiles by naming the exact endpoint/scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear context: use this tool when you need buyer-profile weightings specific to the compliance-signal endpoint. It does not explicitly name alternatives or exclusions, which keeps it a 4 rather than a 5, but the intended use is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_cyber_profilesCyber Risk Buyer ProfilesA
Read-onlyIdempotent
Inspect

List buyer profiles for /intel/cyber-risk and their sub-score weights.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already declare this as read-only, idempotent, and non-destructive. The description adds useful behavioral context by stating the tool lists profiles and their sub-score weights, matching the read-only nature. There is no contradiction and no hidden destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, tight sentence that front-loads the action and resource, then adds the key output detail ('sub-score weights'). Every word earns its place with no redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a zero-parameter, read-only listing tool, the description fully conveys the scope and output. The endpoint path, the entity type, and the included detail are all present, and the annotations cover safety properties.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The tool has zero parameters and 100% schema description coverage, so there is no parameter ambiguity. According to the baseline for zero-parameter tools, this is well-handled; the description focuses on what the tool returns rather than parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('List') and identifies both the resource ('buyer profiles') and the exact endpoint scope ('/intel/cyber-risk'), plus what is included ('sub-score weights'). This clearly distinguishes it from sibling profile tools like intel_buyer_profiles or intel_risk_profiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The scope is implied by naming '/intel/cyber-risk', so an agent can infer this is the tool for cyber-risk buyer profiles. However, the description does not explicitly state when to prefer this over sibling profile tools or mention any exclusions/alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_funding_profilesFunding Signal Buyer ProfilesA
Read-onlyIdempotent
Inspect

List buyer profiles for /intel/funding-signal and their sub-score weights.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld, and non-destructive behavior, so the safety profile is well established. The description adds meaningful behavioral context by specifying that the result includes profiles and their sub-score weights, which goes beyond the empty schema. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler. It front-loads the verb and resource, then packs the distinguishing scope and output content into a compact, efficient form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a zero-parameter read-only listing tool, the description adequately identifies the output as buyer profiles and their sub-score weights. With no output schema, a bit more shape detail could help, but the missing detail is minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to add beyond what the schema already conveys. The baseline for zero-parameter tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses the explicit verb 'List' and names the exact resource '/intel/funding-signal', which clearly identifies what is being listed. It also adds the specific detail 'sub-score weights', distinguishing this from generic profile listing tools and from funding_signal itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the tool is appropriate when the agent needs buyer profiles for the funding signal, but it does not explicitly contrast it with sibling tools like intel_buyer_profiles or other intel_*_profiles. No exclusions are stated, so alternative selection is mostly left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_hiring_profilesHiring Signal Buyer ProfilesA
Read-onlyIdempotent
Inspect

List buyer profiles for /intel/hiring-signal and their weights.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the description correctly matches a read-only listing operation. It adds useful context by saying the result includes weights, but it does not disclose return format, ordering, or how these profiles relate to the hiring_signal tool. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence states the action, the target resource, and the output composition with no filler. Every phrase adds information essential to understanding the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a zero-parameter, non-destructive listing tool, the description is complete: it says what is listed, what product area it belongs to, and what accompanies each profile. The agent has enough information to invoke the tool correctly without needing additional context about parameters or return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The input schema is empty, so there are no parameters to document and the 0-param baseline of 4 applies. The description appropriately uses its space to define the resource and output rather than repeating parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description uses a specific verb ('List') and identifies a concrete resource ('buyer profiles for /intel/hiring-signal'), and it adds that weights are returned as part of the output. It is clear on what the tool does, though it does not explicitly distinguish itself from sibling tools such as intel_buyer_profiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The scoped phrase 'for /intel/hiring-signal' implies this tool should be used when hiring-signal buyer profiles are needed, and the listing nature of the tool suggests it is a read-only reference operation. However, there is no explicit when-to-use or when-not-to-use guidance, and no alternative tools are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_rankSite Risk Bulk RankA
Read-onlyIdempotent
Inspect

Score and rank up to 100 ZIPs against a single site profile. Returns sorted by risk_score (highest = lowest risk).

ParametersJSON Schema
NameRequiredDescriptionDefault
candidatesYesUp to 100 five-digit US ZIPs.
site_profileNoinsurance_underwriting

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds valuable behavioral context beyond that: results are sorted by risk_score and higher scores mean lower risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently deliver the action, the constraint on input size, the comparison basis, and the output ordering/interpretation. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a read-only bulk ranker with rich annotations and only two parameters, the description is largely sufficient. The key missing details are risk_score range and how invalid ZIPs are handled, but the core contract is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema documents candidates and enumerates site_profile values, covering 50% of parameters. The description clarifies that the profile is single and applied across all candidates, but it does not explain profile semantics, risk_score range, or invalid-input behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific action ('Score and rank'), a bounded resource ('up to 100 ZIPs'), and a comparison basis ('a single site profile'). It clearly distinguishes itself from single-lookup tools like site_risk and batch location tools like geo_zip_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The intended use is clear: bulk-rank ZIPs against one site profile. It does not explicitly name alternatives or state when not to use it, so it falls just short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_risk_profilesCounterparty Risk ProfilesA
Read-onlyIdempotent
Inspect

List supported risk profiles for /intel/counterparty-risk and how each weights the six risk sub-scores.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the six risk sub-scores but does not disclose any additional behavioral traits such as output format, pagination, or data freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, front-loads the verb and resource, and contains no filler. It efficiently states both the scope and the key output detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a zero-parameter list/reference tool, the description is largely complete: it names the endpoint context and what is returned. The absence of an output schema is a minor gap but does not block correct selection or invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The tool has zero parameters, so the empty schema carries no semantic burden. The description appropriately avoids inventing parameter details; no compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('List'), identifies the exact resource ('supported risk profiles for /intel/counterparty-risk'), and states the specific output ('how each weights the six risk sub-scores'). This clearly distinguishes it from sibling tools like counterparty_risk and other intel_*_profiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus counterparty_risk or other intel_*_profiles. It implies a reference/list purpose, but never states when it is appropriate or inappropriate to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_role_profilesLocation Intel Role ProfilesA
Read-onlyIdempotent
Inspect

List supported role profiles for /intel/location-score and how each weights the six sub-scores (talent_pool, cost_pressure, tax_burden, connectivity, climate_resilience, quality_of_life).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

The description reveals what the response contains: a set of supported role profiles and their weighting for talent_pool, cost_pressure, tax_burden, connectivity, climate_resilience, and quality_of_life. With readOnlyHint=true and idempotentHint=true already present, the added value is this content detail rather than safety disclosure. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One well-constructed sentence front-loads the verb and resource before enumerating the six sub-scores. No wasted words, and the endpoint notation packs context efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a parameterless reference tool, the description is complete: it states the target endpoint, the item type being listed, and the exact data elements contained in the weights. The annotations cover safety and idempotency, so no further caveats are needed. It gives an agent enough to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The schema has zero parameters and 100% coverage, so the baseline is 4 and there is no parameter burden for the description to carry. The absence of any parameter guidance is appropriate because none are required. It correctly avoids inventing arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Description opens with the imperative 'List' and identifies the exact resource: role profiles for /intel/location-score. It also names the six sub-scores that the profiles weight, which distinguishes it from sibling intel_*_profiles tools. Clear, specific, and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The phrase 'for /intel/location-score' gives clear context for when to call this tool: when exploring location-score role profiles and weightings. It does not name sibling alternatives or directly state when not to use it, so it stops short of the explicit routing some descriptions provide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_site_profilesSite Risk ProfilesA
Read-onlyIdempotent
Inspect

List supported site profiles for /intel/site-risk and how each weights the six physical-risk sub-scores.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful scoping (this is a profile-listing endpoint, not the risk endpoint itself) but does not disclose additional behavior such as response format or edge cases; with annotations present, the added value is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence naming the action, the target endpoint, and the content. Every word earns its place and there is no fluff or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a zero-parameter, read-only catalog tool with full annotation coverage, the description is complete: it states what the agent will receive (supported profiles and how each weights the six physical-risk sub-scores) and ties it to the correct endpoint. No output schema is present, but the description sufficiently conveys the return intent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The tool has zero parameters and schema description coverage is 100%, so there is no parameter ambiguity to resolve. A baseline of 4 is appropriate because no input semantics are needed; the description simply confirms it is a parameter-less listing operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('List') with a clear resource ('supported site profiles for /intel/site-risk') and specifies the content ('how each weights the six physical-risk sub-scores'). This distinguishes it from sibling tools like site_risk (risk evaluation) and intel_risk_profiles (general risk profiles).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly implies when to use it: whenever an agent needs the valid site profiles or their weighting behavior for /intel/site-risk. It does not explicitly name alternatives or state when not to use it, stopping just short of the strongest possible guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_companies_hiringJobs Companies HiringA
Read-onlyIdempotent
Inspect

Return curated company-level hiring signals for a location and optional role family.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoOptional role-family filter.
locationYesLocation query, for example atlanta.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds 'curated' and 'company-level', which hint at preprocessed, firm-level aggregation, but it does not disclose output shape, pagination, freshness, or other behavioral details. This is adequate given the read-only annotations, but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler. It front-loads the verb and resource, then adds the relevant filters, making it appropriate and efficient for the tool's low complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With only two parameters, full schema coverage, and read-only annotations, the description provides enough context for a straightforward invocation. It does not describe the exact payload shape, but this is acceptable for a simple retrieval tool; a note distinguishing it from related job-signal siblings would have made it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents location and role fully. The description adds only a brief restatement of the filters and does not provide additional detail such as accepted formats, examples, or constraints beyond what the schema already contains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific verb ('Return'), a specific resource ('company-level hiring signals'), and the key filters ('location and optional role family'). 'Company-level' helps distinguish it from city-level or skill-level job tools, though it does not explicitly name a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description makes it clear the tool is for retrieving company-level hiring signals filtered by location and optionally role family. However, it provides no explicit guidance about when to choose this tool over closely related siblings like hiring_signal or jobs_concentration, and it does not state exclusions or preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_concentrationSkill Geographic ConcentrationA
Read-onlyIdempotent
Inspect

HHI-based geographic concentration for a skill. Returns hhi_score (0-100), band (diffuse → dominant), and top N metros with their job-count share. Answers 'where does the candidate pool live?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
skillYes
top_nNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark it read-only, idempotent, open-world, and non-destructive, so the description does not need to cover safety. It adds useful behavioral detail beyond annotations: the HHI methodology, numeric score range 0-100, band scale from diffuse to dominant, and inclusion of top-N metros with job-count share. No contradictions found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three purposeful sentences: definition, return payload, and use case. The key analytic content is front-loaded and every sentence adds information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a two-parameter read-only tool with no output schema, the description sufficiently documents the input purpose, the output fields, and the interpretation ('diffuse → dominant'). No critical missing context is apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden. It links 'for a skill' to the required skill parameter and 'top N metros' to the top_n parameter, adding meaning that the bare schema properties lack. It does not restate default/min/max, but those are already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific analysis ('HHI-based geographic concentration'), identifies the resource (a skill), and enumerates concrete outputs (hhi_score, band, top N metros with job-count share). It also frames the purpose with a direct question ('where does the candidate pool live?'), which clearly distinguishes it from sibling jobs_* tools like jobs_scarcity or jobs_momentum.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives a clear use case via the question 'where does the candidate pool live?' and indicates the tool is for geographic concentration of a skill. It does not explicitly state when not to use it or name alternative tools, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_momentumSkill Hiring MomentumA
Read-onlyIdempotent
Inspect

Recent vs prior period demand for a skill. Returns score (-100..+100) and band (surging/rising/stable/cooling/falling) so you know if hiring for this skill is accelerating or decelerating.

ParametersJSON Schema
NameRequiredDescriptionDefault
skillYes

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description discloses the output semantics: a numeric score range (-100..+100), the five band values, and the interpretation of momentum as acceleration/deceleration. It does not discuss edge cases like unknown skills, but the safety profile is already covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence front-loads the core comparison, then lists the return shape and the business meaning. Every clause earns its place with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple one-parameter read-only tool, the description gives the score range, band taxonomy, and interpretation, which is enough to invoke and understand the result. The main missing detail is the exact definition of 'recent vs prior period' and acceptable skill input values, but these are minor for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema only states that skill is a required string with 0% description coverage. The description adds the meaning that this is the skill whose hiring demand is being measured, which maps the parameter to its purpose, but it does not specify accepted skill names, formats, or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies a comparison of recent vs prior period demand for a skill and specifies the returned score range and band labels, so an agent can tell it is a momentum metric. It does not explicitly name a sibling alternative (e.g., jobs_skill_trends), so it stops short of the strongest differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when to use it: when you want to know whether hiring demand for a skill is accelerating or decelerating. However, it gives no exclusions or explicit alternatives, and with many jobs_* sibling tools the selection logic is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_profileLabor-Market Profile (deep)B
Read-onlyIdempotent
Inspect

Full talent-market profile in one call: skill intel + role intel + market temperature + salary band + hiring velocity + location compete + talent verdict. Replaces ~5 separate calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
skillNo
titleNo
locationNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior; the description adds useful output context by listing the profile categories and a talent verdict. It does not disclose potential response variability, freshness, or whether certain input combinations produce partial data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence with the main promise front-loaded, a semicolon-separated list of components, and a clear value statement. No fluff, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

For an aggregate tool with 3 optional parameters, no output schema, and no parameter descriptions, the description does not clarify how to scope a call, whether at least one parameter is required, or what the response structure looks like. The component list helps but is insufficient for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only indirectly maps to inputs through phrases like "skill intel" and "location compete." It never explains parameter format, optionality, requiredness, or how skill/title/location combine. The parameter names are self-explanatory, but the description does not provide the needed additional meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

States a specific deliverable: "Full talent-market profile in one call" and enumerates seven components (skill intel, role intel, salary band, etc.). It distinguishes itself from the granular jobs_* siblings by positioning itself as an aggregate profile, though it never names the exact siblings it replaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase "Replaces ~5 separate calls" implies use it when a broad profile is needed instead of several specialized calls, but it does not provide explicit when-to-use/when-not-to-use guidance or name alternatives. Given the large sibling list, an agent would need more routing detail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_role_skillsJobs Role SkillsB
Read-onlyIdempotent
Inspect

Return aggregated skill signals for a role title. Demo mode allows selected sample job titles.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesRole title, for example data analyst.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the demo-mode limitation as extra behavioral context, but it doesn't clarify what happens for non-sample titles or what the aggregated output looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is just two short sentences with no filler, front-loading the core purpose before the demo-mode note. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

Given there is no output schema, the description would benefit from explaining what 'skill signals' means and how demo mode affects valid inputs. Annotations cover safety, and the schema covers parameters, but the return semantics and demo-mode behavior are underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, and the title parameter already includes an example. The description mostly restates 'role title' and adds the demo-mode caveat without enriching parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific action ('Return aggregated skill signals') and resource ('for a role title'), which is clear and informative. However, it doesn't distinguish itself from closely related siblings like jobs_related_skills or jobs_skill_graph, so an agent cannot easily differentiate based on the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The only usage-related detail is 'Demo mode allows selected sample job titles,' which hints at limitations but doesn't say when to use this tool versus job-related siblings. There is no explicit when-to-use, exclusion, or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_salary_signalsJobs Salary SignalsA
Read-onlyIdempotent
Inspect

Return salary signal aggregates for a role title in the loaded trend set.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesRole title, for example cloud engineer.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety profile is well covered. The description adds one useful behavioral detail—that results are scoped to the 'loaded trend set'—but does not disclose aggregation methodology, response structure, or any limitations. This is a reasonable contribution above the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with no filler. The main action, resource, and scope are front-loaded, and every word contributes to understanding. It is a model of economical writing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a single-parameter, read-only tool with rich annotations, the description covers the essentials: what is returned, the required input, and the scoping condition. The absence of an output schema makes the vague phrase 'salary signal aggregates' a minor gap, but the low complexity and clear annotations make it sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The input schema describes the single parameter 'title' with an example ('cloud engineer'), giving 100% schema coverage. The description repeats the term 'role title' but does not add meaningful semantic information beyond what the schema already provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Return') and resource ('salary signal aggregates'), and clearly identifies the input ('role title'). It distinguishes itself from the many jobs_* siblings by focusing on salary signals, which no other sibling mentions. The phrase 'in the loaded trend set' further scopes the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description gives no explicit guidance on when to choose this tool over the many alternative jobs_* tools, such as jobs_profile or jobs_skill_trends. It states what it does but does not mention conditions, exclusions, or alternatives, leaving the agent to infer its appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_scarcityTalent Scarcity (candidates per role)A
Read-onlyIdempotent
Inspect

Estimate candidates-per-open-role for a skill. Bands: severe_shortage / scarce / balanced / abundant. Workforce-planning signal for prioritizing hard-to-fill roles.

ParametersJSON Schema
NameRequiredDescriptionDefault
skillYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover safety, idempotency, and read-only behavior. The description adds the output classification bands and the estimating nature of the tool, which is useful but does not go deeper into methodology, uncertainty, or data sources. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose, followed by the output bands and the business context. Every sentence earns its place with no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple one-parameter read-only tool, the description covers the main purpose, the output bands, and the intended planning use case. It lacks skill-value format guidance, but the overall definition is mostly sufficient given the tool's low complexity and the supporting annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The schema has 0% description coverage for the single 'skill' parameter. The description only repeats that the tool operates 'for a skill' and gives no format, examples, or guidance on valid skill identifiers. This does not sufficiently compensate for the missing schema-level parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific action and resource: 'Estimate candidates-per-open-role for a skill' and lists the output bands. This is clear and precise, though it does not explicitly contrast itself with sibling tools like jobs_concentration or jobs_momentum, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides clear use context by identifying this as a 'workforce-planning signal for prioritizing hard-to-fill roles.' It does not name alternatives or state when not to use it, but the intended scenario is easy to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobs_skill_graphSkill Adjacency GraphA
Read-onlyIdempotent
Inspect

Multi-hop related-skill graph (BFS from seed). Returns nodes with hops_from_seed and edges with frequency-based weights. Use for broadening candidate filters, curriculum design, and job-description templating.

ParametersJSON Schema
NameRequiredDescriptionDefault
skillYes
max_hopsNo
max_nodesNo

TDQS

A4.3/5.0
Behavior5/5

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

Beyond annotations, the description discloses meaningful behavior: BFS traversal from a seed, hop distances on nodes, and frequency-based edge weights. This clarifies the tool's internal algorithm and output semantics, which is substantial context beyond the read-only and idempotent hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no filler: the core algorithm is front-loaded, return contents are stated, and use cases follow. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

There is no output schema, but the description covers the essential return shape (nodes/edges with hops and weights). The main completeness gap is parameter semantics and the absence of any note about result-size constraints or error behavior, but for a read-only graph query the description is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not explain the three parameters. It refers to a 'seed' conceptually without linking it to the 'skill' parameter, and it never clarifies how max_hops or max_nodes affect traversal and results. The schema's names and constraints partially carry meaning, but the description adds little parameter-level value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Description names a specific resource ('multi-hop related-skill graph'), a concrete algorithm ('BFS from seed'), and the returned components ('nodes with hops_from_seed and edges with frequency-based weights'). This is distinct from sibling tools like jobs_related_skills, making the tool's purpose immediately identifiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives three explicit use cases: broadening candidate filters, curriculum design, and job-description templating. It does not explicitly state when not to use it or name a sibling alternative, but the application context is clear enough for an agent to decide when this tool fits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

location_scoreLocation Intelligence ScoreA
Read-onlyIdempotent
Inspect

Composite hiring-location score (0-100) for a US ZIP, weighted by role profile (engineering, sales, operations, warehouse, retail, remote). Joins Census ACS demographics, FEMA flood, IECC climate, FAA airport, BEA cost-of-living, and state income tax into one tuned signal. Returns overall score, tier, verdict, and six sub-scores with notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipYesU.S. ZIP code, for example 10001.
roleNoRole profile that tunes the sub-score weights.engineering
yearNo
filing_statusNosingle

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the tool read-only, non-destructive, and idempotent; the description is consistent with these. The description adds valuable behavioral context by naming the joined data sources (Census, FEMA, IECC, FAA, BEA, state tax) and the exact return components. It does not cover error or edge-case behavior, but the annotations already supply the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences pack purpose, inputs, data sources, and returns without redundant phrases. The key scoping constraint (US ZIP, role weighting) is front-loaded before the data-join details. No word is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a medium-complexity tool with no output schema, the description gives enough for basic invocation: required ZIP, optional role, and return shape. However, it omits the meaning of year and filing_status, possible invalid-ZIP behavior, and how the score relates to nearby sibling tools. Overall viable but with identifiable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 50%: zip and role are described, and the description reinforces both (US ZIP, role-tuned weights). Year and filing_status remain semantically unexplained in both the schema and the description, despite their likely impact on state-income-tax calculations. The description partially compensates but does not fully close the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

States a specific verb and resource: produces a composite hiring-location score (0-100) for a US ZIP with role-based weighting. The output details (overall score, tier, verdict, six sub-scores) make the purpose unmistakable among siblings. It does not explicitly call out a sibling alternative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the tool is for evaluating a location for hiring based on role profile, but it never states when to prefer it over related tools like geo_zip_lookup, hiring_signal, jobs_concentration, or remote_hire_cost. No exclusions or alternative conditions are given. This is usable but relies on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_catalogCatalog MetadataB
Read-onlyIdempotent
Inspect

List public-safe dataset coverage, status, and endpoint counts. Demo mode is allowed.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_endpointsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds useful scope context ('public-safe') and demo-mode eligibility, but beyond that it does not disclose behaviors like output shape, pagination, or dataset-count limits. It does not contradict the annotations, so a mid-3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler; the main purpose is front-loaded and 'Demo mode is allowed' adds distinct usage context. It is efficient, though 'List public-safe dataset coverage' could arguably also be worded slightly more explicitly as a catalog operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a one-parameter read-only tool with strong annotations, the description is reasonably complete: it names the type of data returned, the public-safe scope, and demo-mode permissibility. However, it fails to clarify the single parameter's behavior and does not mention relationhip to the closely named sibling meta_dataset, leaving some ambiguity in a large tool family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

There is one parameter, include_endpoints, with zero schema description coverage. The description mentions 'endpoint counts' in the output but never explains that include_endpoints toggles this detail or what the default false implies. The parameter name is suggestive, but the description should compensate for the missing schema coverage and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

Description states specific verb 'List' and clear resource ('public-safe dataset coverage, status, and endpoint counts'), which is a catalog-level summary distinct from one-off lookup tools. It falls short of a full 5 because it does not explicitly distinguish itself from the similarly named sibling meta_dataset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'public-safe' and 'Demo mode is allowed' imply when the tool can be used and under what access conditions. However, there is no explicit guidance about when to prefer this tool over meta_dataset or other catalog-related siblings, and no when-not-to-use conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_datasetDataset Coverage MetadataA
Read-onlyIdempotent
Inspect

Return public-safe coverage, limitations, and endpoint references for one dataset slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesDataset slug such as location-enrichment.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior; the description adds concrete context beyond that by stating the returned information is 'public-safe' and includes coverage, limitations, and endpoint references. It also implicitly indicates that raw dataset records are not returned. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action verb and packs in scope, safety, and return content with no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With only one required parameter, no output schema, and safety-related annotations already present, the description names the concrete return components (coverage, limitations, endpoint references) sufficiently for correct invocation. It could mention behavior for unknown slugs or how to enumerate valid slugs, but the low complexity makes the current description mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, and the single 'slug' parameter already has a clear description with an example ('location-enrichment'). The description merely repeats 'dataset slug' without adding new semantic detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description opens with a clear verb ('Return') and specifies the resource ('public-safe coverage, limitations, and endpoint references for one dataset slug'). 'One dataset slug' clearly signals a single-item metadata lookup and distinguishes it from catalog/batch siblings. It does not explicitly name a contrasting sibling, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'for one dataset slug' implies this tool is for retrieving metadata about a single known dataset. However, it provides no explicit when-not-to-use guidance and does not mention alternatives like meta_catalog for discovering slugs. Usage context is implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

phone_regionPhone Region LookupA
Read-onlyIdempotent
Inspect

Lightweight country + region + primary timezone lookup for a phone number. Cheaper than phone_validate when you only need the country header.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
default_regionNoUS

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld, and non-destructive behavior. The description adds useful context beyond that by revealing that the tool is lightweight and cheaper than phone_validate, and clarifies the returned scope (country, region, primary timezone).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core purpose and then provide a cost-based comparison with a sibling. Every sentence earns its place, with no redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple two-parameter lookup with rich annotations and no output schema, the description is largely complete: it states the input kind, the output scope, and the key alternative. The only notable gap is the unaddressed default_region parameter, but it is understandable from its name and default value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. It clarifies that the tool operates on a phone number, but it does not explain the purpose or effect of default_region, nor any formatting expectations for phone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific operation: a lightweight country + region + primary timezone lookup for a phone number. It also differentiates from the sibling phone_validate by noting it is cheaper when only the country header is needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It gives clear context for when to use this tool: when only the country header is needed, and explicitly references phone_validate as the costlier alternative. However, it does not explicitly state when to choose phone_validate over this tool, so the guidance is clear but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

phone_validatePhone ValidationA
Read-onlyIdempotent
Inspect

Validate + enrich a phone number in 200+ countries. Returns E.164/national/international formatting, country, number-type (mobile/fixed/VoIP/toll-free/premium), carrier (where libphonenumber has data), timezones, disposable-carrier flag, and a risk band (low/moderate/elevated/high) for sign-up fraud screening.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesPhone number in E.164 (+14155551212), national (415-555-1212), or international form.
default_regionNoISO-3166-1 alpha-2 country code for ambiguous national-only inputs.US

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable functional transparency by listing exact return categories, noting carrier data is provided 'where libphonenumber has data,' and describing the risk band purpose. It does not contradict annotations and provides context beyond the safety flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that front-loads the core action and then efficiently lists the enrichment outputs. Every clause adds useful information, with no filler or repetition of the tool name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given there is no output schema, the description does a good job enumerating return fields and including caveats such as carrier data availability. It could be more complete by specifying validity/error behavior for invalid numbers, but the listed fields give an agent sufficient understanding of the tool's scope and result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both phone and default_region, including formats and the default country code. The description reinforces that the tool handles E.164/national/international inputs but does not add meaningful new parameter-level semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific verb and resource: 'Validate + enrich a phone number in 200+ countries.' It enumerates concrete enrichment outputs (formatting, country, number type, carrier, timezones, risk band), which clearly distinguishes it from sibling tools like email_validate or address_validate. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description clearly implies usage for phone number validation and sign-up fraud screening via the risk band mention. It does not explicitly name alternatives or state when not to use the tool, so it falls short of the 'explicit alternatives' bar, but the context is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remote_hire_costRemote Hire True CostA
Read-onlyIdempotent
Inspect

Composite remote-hire envelope for a US ZIP + salary: total employer cost (salary + employer FICA + benefits load), employee take-home (federal + state + employee FICA), and the location-fit score under the 'remote' profile. Replaces a 20-40 minute back-and-forth with payroll on every remote candidate.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipYesFive-digit US ZIP code.
yearNo
salaryYes
filing_statusNosingle
benefits_load_pctNoFraction of salary added for benefits (default 30%).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already establish the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful detail about the calculation components and the 'remote' profile, but does not disclose limitations, data sources, or estimation uncertainty beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by a clear enumeration of outputs and the practical use case. Every sentence contributes meaning without repetition or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description provides a good high-level picture of what the tool returns and when to use it, but with no output schema and a moderate parameter count, an agent may still need more detail on response structure, precision, or how the location-fit score is defined under the 'remote' profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is only 40%, so the description must compensate. It clarifies the role of ZIP, salary, and benefits load in the calculation, but does not explain the impact of filing_status or year beyond the schema defaults, leaving part of the parameter semantics underexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly states the tool computes a composite remote-hire envelope from a US ZIP and salary, covering employer cost, employee take-home, and location-fit score. It is specific about the resource and outputs, though it lacks an explicit verb and does not explicitly distinguish itself from sibling tools like location_score or tax_calculate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies use when estimating the true cost of a remote hire, noting it replaces a lengthy back-and-forth with payroll. However, it does not state when not to use it or mention alternative tools that could handle similar calculations, leaving the selection boundary implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

site_riskSite Risk SnapshotA
Read-onlyIdempotent
Inspect

Physical-location risk composite for a US ZIP. Joins FEMA flood + USGS seismic + NOAA tornado/hurricane + climate + EIA grid reliability into a 0-100 risk-weighted score (higher = lower risk). Tuned by site profile: insurance_underwriting, data_center_site, retail_storefront, warehouse_distribution. Returns underwriting_hint mapped to insurance actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipYes
site_profileNoinsurance_underwriting

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already establish read-only, idempotent, and non-destructive behavior, and the description does not contradict them. It adds useful behavioral context by disclosing that the score is a weighted composite of named government/climate/grid datasets and that a higher score means LOWER risk, which is non-obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the core purpose is in the first sentence, and each following sentence adds a distinct piece of value—data sources, scoring interpretation, profile tuning, and output. No filler or repetition exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description compensates by stating the 0-100 score, the risk direction, the dependence on site_profile, and the underwriting_hint return. It leaves minor gaps around exact response shape and zip input format, but for a two-parameter read-only composite, the coverage is strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It does: 'US ZIP' clarifies the zip field, and the site_profile enum values are repeated with the explanation that they tune the risk weighting. It could add zip format details or profile effect specifics, but both parameters are meaningfully addressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens by naming the resource and subject exactly: 'Physical-location risk composite for a US ZIP.' It then specifies the data sources, score range, profile tunings, and the underwriting_hint output, making its purpose unmistakable and distinguishing it from sibling geo/weather/address lookups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear usage context by listing the four site profiles and noting that the result includes an underwriting_hint, implying underwriting and site-selection use cases. However, it does not explicitly name alternative tools or state when this tool should not be used, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_calculateTax CalculatorA
Read-onlyIdempotent
Inspect

Compute progressive federal (and optional state) tax owed from gross income, filing status, year, and deductions. Returns tax, marginal/effective rate, take-home, and per-bracket impact. Demo mode is limited to 2026 and standard filing statuses. Reference data only, not advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
stateNoOptional two-letter state code.
incomeYesGross annual income in USD.
deductionsNoOptional. Total deductions to apply. If omitted, the standard deduction for the filing status is used.
filing_statusNosingle
additional_incomeNoAdditional taxable income added to gross before deductions.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavior beyond annotations: demo-mode limits to 2026 and standard filing statuses, the returned output set, and the disclaimer 'Reference data only, not advice.' No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: the first states the core computation, the second lists outputs, and the third gives limitations and disclaimer. Every sentence earns its place with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

With no output schema, the description usefully lists the returned values. The 6 parameters are mostly covered by schema descriptions plus the added demo-mode constraints. Minor gaps remain, such as exact filing-status valid values and the meaning of 'demo mode,' but nothing blocks correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema description coverage is 67%, and the description compensates by explaining that state tax is optional, that gross income/filing status/year/deductions drive the calculation, and that demo mode only supports 2026 with standard filing statuses. The schema already covers additional_income, so the overall parameter picture is reasonably complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb and resource: 'Compute progressive federal (and optional state) tax owed from gross income, filing status, year, and deductions.' It also lists concrete outputs (tax, marginal/effective rate, take-home, per-bracket impact), which clearly distinguishes it from sibling reference tools like tax_federal_brackets or tax_summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The intended use is implied by 'Compute progressive federal (and optional state) tax owed,' so an agent can infer this is for tax liability calculations rather than bracket lookups or deadlines. However, the description gives no explicit when-to-use vs alternatives and does not mention any sibling tool or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_deadlinesTax DeadlinesB
Read-onlyIdempotent
Inspect

Return filing deadline reference values. Demo mode is limited to 2026.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's burden is lower. It adds a useful behavioral caveat that demo mode is limited to 2026, but it does not explain behavior for unsupported years, the return format, or non-demo behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The primary action and the critical limitation are both present and front-loaded, which is appropriate for a one-parameter reference tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a low-complexity lookup tool with a single parameter and no output schema, the description names the result category and the demo constraint. It is somewhat incomplete because it does not clarify which years are supported outside demo mode or whether the deadlines are federal, state, or general.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only mentions that demo mode is limited to 2026. The year parameter's meaning is left mostly to inference from the tool name, with no clarity on accepted ranges, required format, or how the year affects results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states the tool returns filing deadline reference values, and the title confirms the tax-domain focus. It is a clear verb-plus-resource statement that is distinguishable from sibling tax tools such as tax_federal_brackets or tax_calculate, though it does not explicitly contrast itself with any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like tax_summary or tax_federal_brackets. The only context given is a demo-mode limitation, which is a constraint rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_federal_bracketsTax Federal BracketsA
Read-onlyIdempotent
Inspect

Return federal tax bracket reference rows. Demo mode is limited to 2026 and standard filing statuses.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
filing_statusYessingle

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior; the description adds the useful limitation that demo mode only supports 2026 and standard filing statuses. This is genuine behavioral context beyond the annotations, though it does not describe output details or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence states the core action and a second sentence states the key limitation; there is no filler. The most identifying information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple read-only lookup with two parameters this is minimally adequate, but there is no output schema and the description does not explain what a 'bracket reference row' contains (rates, thresholds, etc.). An agent could call it correctly but would not know the exact return shape or accepted filing status values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only narrows the year to 2026 and vaguely refers to 'standard filing statuses.' It does not list the accepted filing_status strings or the valid year range, leaving the agent to guess at parameter values beyond the defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb and resource: 'Return federal tax bracket reference rows.' The qualifier 'federal' and 'reference rows' clearly separates it from state-bracket or calculation tools among siblings, so an agent can tell what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The opening phrase gives clear context for when this tool is relevant (federal bracket reference data), and the demo-mode sentence communicates the constraint that only 2026 and standard filing statuses are supported. It does not explicitly name alternatives like tax_state_brackets or tax_calculate, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_mileage_ratesTax Mileage RatesA
Read-onlyIdempotent
Inspect

Return mileage-rate reference values. Demo mode is limited to 2026.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already communicate that the tool is read-only, idempotent, non-destructive, and open-world. The description adds the demo-mode limitation for 2026, which is useful behavioral context, but it does not describe output shape or rate categories. With annotations carrying the safety profile, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the main purpose and followed by the key constraint. Every sentence earns its place, with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a one-parameter read-only lookup with strong annotations, the description is largely complete: it states what the tool returns and the main year limitation. It does not specify output format or rate types, but the name, title, and schema make this a minor gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The schema provides the year parameter's type, default value, and required status, but schema description coverage is 0%. The description adds meaningful parameter context by stating that demo mode is limited to 2026, helping an agent choose a valid year in demo conditions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a clear action and resource: 'Return mileage-rate reference values.' This distinguishes it from sibling tax tools like tax_standard_deduction, tax_federal_brackets, or tax_calculate, which serve different reference purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is given about when to prefer this tool over alternatives, and no exclusions are stated. The only usage-adjacent note, 'Demo mode is limited to 2026,' is a constraint rather than a routing guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_retirement_limitsTax Retirement LimitsA
Read-onlyIdempotent
Inspect

Return retirement contribution reference values. Demo mode is limited to 2026.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, covering safety. The description adds a valuable behavioral note—'Demo mode is limited to 2026'—which is beyond annotations and informs the agent of a constraint. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with the purpose front-loaded. No unnecessary words or redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple one-parameter tool with annotations covering safety, the description is mostly adequate but lacks detail on the exact nature of the returned 'reference values' (e.g., which retirement accounts or formats). Since there's no output schema, more specificity would help an agent understand what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the 'year' parameter beyond the demo mode note that implies it matters. No explicit semantics for valid ranges or meaning are provided, so the description fails to compensate for the missing schema info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb ('Return') and resource ('retirement contribution reference values'), which is clear and distinct from sibling tax tools like tax_federal_brackets and tax_standard_deduction. It conveys exactly what the tool does without restating the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description does not mention when to use this tool versus alternatives. It only states its function and a demo mode limitation, leaving usage context implied by the name and purpose rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_standard_deductionTax Standard DeductionC
Read-onlyIdempotent
Inspect

Return standard deduction reference values. Demo mode is limited to 2026.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
filing_statusNoOptional filing status.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is largely covered. The description adds one useful behavioral constraint about demo mode being limited to 2026, but it does not explain what demo mode means or what other behavioral limits apply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose in the first sentence. The second sentence adds a relevant constraint, though the phrase 'demo mode' is vague and could have been clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

With no output schema and a minimal description, an agent lacks important invocation details: valid filing_status values, expected return shape, supported years outside demo mode, and the relationship to other tax tools. The tool appears simple, but these gaps make reliable use uncertain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 50%, and the description does not compensate. The year parameter lacks an explicit accepted range or format beyond its default, and filing_status has no explanation of valid values or how it affects the deduction. The demo-mode sentence only hints at year limitations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description states a specific verb and resource: 'Return standard deduction reference values.' This is clear enough to distinguish the tool from many siblings like tax_calculate or tax_federal_brackets, though it does not explicitly compare itself to those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No when-to-use guidance is provided. The description does not indicate when an agent should choose this tool over related tax tools such as tax_federal_brackets, tax_summary, or tax_calculate. The 'Demo mode is limited to 2026' sentence is a constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_state_bracketsTax State BracketsA
Read-onlyIdempotent
Inspect

Return selected state individual income-tax bracket references. Demo mode is limited to Georgia 2026.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
stateYesTwo-letter state code, for example GA.
filing_statusNoOptional filing status.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only and idempotent behavior. The description adds a valuable constraint: demo mode is limited to Georgia 2026, which helps set expectations about supported inputs beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core purpose followed by the critical demo constraint. Every word earns its place; no redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

Annotations cover safety, but the phrase 'bracket references' is somewhat vague regarding return format (rates, thresholds, ranges). With no output schema, the description should clarify what exactly is returned and how unsupported states are handled beyond the demo limitation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema descriptions already cover state and filing_status, and year has a default. The description only rephrases 'state' as 'selected state' and adds the demo limitation, without adding deeper param semantics. Moderate schema coverage does not force heavy compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific action ('Return') and resource ('selected state individual income-tax bracket references'). The qualifier 'state' clearly differentiates it from the sibling tool tax_federal_brackets, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies when to use it (for state-level brackets) but does not explicitly say when not to use it or name alternatives like tax_federal_brackets or tax_calculate. The context is clear but exclusions are left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tax_summaryTax Year SummaryA
Read-onlyIdempotent
Inspect

Return a combined federal bracket, standard deduction, mileage, retirement, and filing-deadline reference summary. Demo mode is limited to 2026.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
filing_statusYessingle

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already establish a safe, read-only, idempotent operation, so no further safety disclosure is required. The description adds a meaningful behavioral constraint: demo mode is limited to 2026, telling the agent about a year limitation beyond what the schema shows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with the action and resource front-loaded, followed by a concise limitation note. Every phrase earns its place; there is no redundant schema repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple 2-parameter, read-only reference lookup, the description is mostly sufficient. However, tool has no output schema and the description does not describe the response shape, allowed filing statuses, or how production vs demo mode behaves, leaving gaps an agent must resolve.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, and the description does not define valid values for year or filing_status. It only implies through domain context which year and status should be used, and the only explicit extra is the 2026 demo limitation. Key information like acceptable filing_status strings is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb ('Return') and enumerates the exact coverage: federal bracket, standard deduction, mileage, retirement, and filing deadlines. It distinguishes itself from sibling tax_* tools by framing this as a 'combined' reference summary, not a single-topic lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

No explicit when-to-use or alternative-routting guidance is provided. The word 'combined' implies the intended use case is needing several tax reference values at once, but it does not explicitly tell an agent when to choose this tool over tax_federal_brackets, tax_standard_deduction, or tax_deadlines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tech_stackTech Stack SignalA
Read-onlyIdempotent
Inspect

Classify a company's public tech footprint by inspecting MX / A / CNAME / NS / TXT records. Returns detections across categories (email_provider, hosting_provider, cdn_provider, dns_provider, SaaS tools via TXT) with vendor evidence on every detection. Non-intrusive — only looks at DNS the domain owner published.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain, e.g. apple.com.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds meaningful behavioral context beyond those: it inspects only MX/A/CNAME/NS/TXT records and explicitly states 'Non-intrusive — only looks at DNS the domain owner published.' This sets a clear boundary about what the tool does and does not probe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the main purpose appears in the first sentence, output details in the second, and a safety qualifier in the third. Every sentence earns its place with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a single-parameter tool with no output schema, the description adequately explains what the agent should expect back: categorized detections with vendor evidence. It would be slightly stronger with explicit notes on edge cases (e.g., domains with no DNS records), but the described scope and return shape are sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% for the single domain parameter, and the schema already documents it with an example ('apple.com'). The description adds no new parameter-level semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states a specific action ('Classify a company's public tech footprint') with a defined resource (DNS records) and enumerates concrete output categories (email_provider, hosting_provider, cdn_provider, dns_provider, SaaS via TXT). This distinguishes it from raw DNS sibling tools like dns_lookup or dns_profile, which would return records rather than classified detections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description conveys clear use context: use this when you need a company's technology stack inferred from its published DNS. It does not explicitly name sibling alternatives or when-not-to-use conditions, but the 'classify' framing plus non-intrusive DNS-only scope is sufficient directional guidance for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vin_decodeVIN DecodeA
Read-onlyIdempotent
Inspect

Decode a 17-character Vehicle Identification Number. Offline ISO 3779/3780 structural decode (syntax, check digit, country, model year) + NHTSA vPIC enrichment (make / model / trim / body / engine / plant). Use for insurance underwriting, used-car listing validation, fleet management.

ParametersJSON Schema
NameRequiredDescriptionDefault
vinYes17-character VIN (case-insensitive, no I/O/Q characters per ISO 3779).
use_vpicNoWhen false, skip NHTSA vPIC enrichment and return offline-only fields.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds value by revealing a two-tier behavior: offline ISO structural decode plus NHTSA vPIC enrichment, and by listing the families of fields returned from each tier. It does not cover failure semantics, but annotations lower the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first states the action and output scope, the second gives concrete use cases. No filler, no repetition of schema details, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a tool with two parameters and rich annotations, the description is nearly complete: it names the input format, the two decoding layers, the output field categories, and the intended business contexts. The absence of an output schema is partially mitigated by the listed fields, though exact error/response shape is not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already fully documented. The description reuses the concept of 'NHTSA vPIC enrichment' but adds no parameter meaning beyond what the schema provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific verb ('Decode'), a precise resource ('17-character Vehicle Identification Number'), and enumerates concrete outputs (syntax, check digit, country, model year, make/model/trim/body/engine/plant). It clearly distinguishes the tool from other validation/enrichment siblings, none of which target VINs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives explicit use cases: insurance underwriting, used-car listing validation, and fleet management. It does not name alternatives or negative conditions, but no sibling tool addresses VINs, so the usage context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_air_qualityAir Quality (AQI + pollutants)A
Read-onlyIdempotent
Inspect

Current air quality at a lat/lon or US ZIP: US EPA AQI + European AQI, plus pollutant concentrations (PM2.5, PM10, ozone, NO₂, SO₂, CO, dust) in µg/m³, a categorical band, and the primary pollutant. Source: Open-Meteo Air Quality (CAMS + EPA AirNow blend).

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
zip_codeNoUS ZIP (preferred). Or pass lat+lon.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already convey a safe, read-only, idempotent operation, so the description does not need to repeat that. It adds meaningful behavioral context beyond annotations by naming the data source (Open-Meteo, CAMS + EPA AirNow blend) and disclosing the exact return payload elements and units, which helps the agent set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that front-loads the core resource and location mode, then lists return metrics and the source. Every clause adds useful information and there is no filler or redundant repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

Given there is no output schema, the description does well to spell out the main return fields. However, it does not clarify that a location is required even though the schema lists no required parameters, nor does it mention how this tool relates to nearby weather siblings. These gaps make it only moderately complete for an agent deciding how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is only 33%, so the description carries substantial responsibility. It does clarify that the tool accepts either a lat/lon pair or a US ZIP, which adds meaning beyond the bare schema. Yet it stops short of explaining coordinate format, whether location inputs are mandatory despite zero required parameters, or how conflicts between zip_code and lat/lon are resolved.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies the resource as current air quality at a location and enumerates specific output types (AQI, pollutants, band, primary pollutant). It is unambiguous next to weather siblings, though it lacks an explicit verb and does not directly name a competing sibling for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The phrase 'Current air quality' strongly implies this tool is for present conditions and not forecasts or historical analysis, and the location inputs are stated. However, there is no explicit guidance on when to prefer this over weather_current, weather_forecast, or other weather siblings, and no exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_alertsActive Weather Alerts (US, NWS)A
Read-onlyIdempotent
Inspect

Active alerts from the US National Weather Service. Query by lat+lon, US ZIP, or two-letter state code.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
stateNoTwo-letter US state code.
zip_codeNo

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context that alerts are active and NWS-sourced, but it does not disclose return format, alert severity, or any NWS-specific behavior. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core purpose, and every phrase adds value. There is no filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description gives the essential resource and query modes but does not clarify requiredness or exclusivity of parameters, and there is no output schema to inform the agent about the response. Since all four parameters are optional in the schema, an agent could easily invoke the tool incorrectly by providing no query or combining incompatible parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is only 25% (only 'state' has a description), and the description partially compensates by clarifying that lat+lon are used together, zip_code is a US ZIP, and state is a two-letter code. However, it leaves ambiguity about whether the parameters are mutually exclusive, whether at least one is required, and what lat/lon ranges are expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly identifies the tool's output as active weather alerts from the US National Weather Service, and 'Query' supplies a specific verb. It also distinguishes weather_alerts from sibling weather tools like weather_current, weather_forecast, and weather_air_quality by focusing on active advisories/warnings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is given on when to choose this tool over related weather siblings, and no alternatives or exclusions are named. The description only states what query parameters are accepted, not the use case or how to decide between weather_alerts and tools like weather_forecast or weather_current.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_best_windowBest Window for an Outdoor ActivityA
Read-onlyIdempotent
Inspect

Find the best contiguous N-day or N-hour window in the forecast horizon for an activity (outdoor_event, ski, construction, agriculture_spray, running). Returns top 5 windows ranked 0-100 with drivers.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
top_nNo
horizonNodays
activityNooutdoor_event
zip_codeNo
window_lengthNo
horizon_lengthNo0 = activity-appropriate default (14 days / 48 hours).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already establish a read-only, idempotent, non-destructive operation. The description adds the useful behavioral claims of contiguous windows and ranked 'top 5' output with drivers, but the 'top 5' claim is inconsistent with the configurable top_n parameter (default 5, max 10), and it does not explain ranking methodology or what drivers are.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main function before return details. The activity list is somewhat redundant with the schema enum but kept compact; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

For a tool with 8 parameters, no output schema, and no required fields, the description omits location resolution and defaults beyond the implied N-day/N-hour choice; the top_n inconsistency and undefined 'drivers' leave an agent guessing about output shape. It is not complete enough for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

With only 13% schema description coverage, the description carries most of the burden; it maps activity to the activity enum, 'N-day or N-hour' to horizon/window_length, and 'top 5' to top_n. However, it does not clarify location parameters (lat/lon vs zip_code, precedence or requirement) or the behavior of window_length/top_n, leaving key parameters under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a concrete operation ('Find the best contiguous N-day or N-hour window in the forecast horizon') on a specific resource (an activity-specific weather ranking), enumerates five activity types, and promises a ranked 0-100 output with drivers. This clearly distinguishes it from sibling weather forecast/compare tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

It communicates the core use case but gives no explicit when-to-use or when-not-to-use guidance, and it never names alternatives such as weather_forecast, weather_compare, or weather_route. The intended selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_compareCompare Weather Across LocationsA
Read-onlyIdempotent
Inspect

Rank up to 5 locations by comfort outlook (ideal > mild > poor > severe). Useful for trip planning, expansion site comparison, event location selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitsNoimperial
coordsNoSemicolon-separated lat,lon pairs (max 5). e.g. 40.7,-74.0;25.7,-80.2
zip_codesNoComma-separated US ZIPs (max 5).

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description reveals the maximum 5-location limit, the comparison semantics, and the comfort outlook classification (ideal > mild > poor > severe). This adds meaningful behavioral context and aligns with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first front-loads the core capability and ranking scale, the second gives relevant use cases. There is no filler or redundant restating of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description covers the core behavior and implied ranking output, but it does not clarify whether coords and zip_codes are mutually exclusive, what the return structure looks like, or what happens when no inputs are supplied. Since there is no output schema and no required parameters, these gaps matter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already documents coords and zip_codes formats and provides the units enum with default. The description adds no parameter-level meaning, and at 67% schema description coverage, the description does not need to fully compensate but also provides no enhancement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Description states a specific operation: 'Rank up to 5 locations by comfort outlook' with an explicit ordinal scale. It clearly distinguishes this tool from raw weather retrieval siblings like weather_current or weather_forecast by focusing on comparison and ranking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Concrete use cases are given: 'trip planning, expansion site comparison, event location selection.' This gives clear context for when to use the tool, but it does not explicitly name alternatives or exclusion conditions, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_currentCurrent Weather (by coordinate)B
Read-onlyIdempotent
Inspect

Current conditions at a latitude/longitude in imperial or metric units. Sourced from Open-Meteo.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
unitsNoimperial

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description only adds source attribution to Open-Meteo and the imperial/metric unit options. It does not disclose response structure, data freshness, or other operational behavior, but there is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The core action and coordinate input are front-loaded, and the source attribution is brief and useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple read-only weather lookup, the description is mostly adequate, but with no output schema it does not clarify what fields constitute 'current conditions' or what the response will contain. This leaves some expectations underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema descriptions are absent (0% coverage), so the description must compensate. It does mention latitude/longitude and imperial/metric units, which maps to all three parameters, but lacks details such as coordinate format, bounds, or unit default behavior beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies the tool as providing current weather conditions at a latitude/longitude, with units configurable. It differentiates from sibling weather tools by emphasizing 'current conditions' and coordinate-based input, though it uses a noun phrase rather than an explicit action verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No explicit guidance is given about when to use this tool instead of related tools like weather_forecast, weather_hourly, or weather_zip. The coordinate/current-conditions scope is implied but not stated as a selection rule or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_degree_daysHeating + Cooling Degree DaysB
Read-onlyIdempotent
Inspect

HDD and CDD over a window, with per-day rows. Used for HVAC sizing, utility bill reconciliation, energy forecasting. Default base 65°F is the NOAA HVAC standard.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
zip_codeNo
base_tempNoBase temperature in °F.
days_backNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover safety traits (read-only, idempotent, non-destructive), so the bar for extra behavior disclosure is lower. The description adds useful behavioral context: per-day row output, a configurable window, and the NOAA standard behind the default base temperature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight, front-loaded sentences; the core metric appears first, followed by use cases and a domain-standard default. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

With zero required parameters and no output schema, the agent is left guessing whether it must supply lat/lon, zip_code, or both. The description also doesn't clarify what 'window' maps to in parameters, making correct invocation less certain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 20%, so the description needed to clarify lat/lon/zip_code and days_back semantics. It only indirectly references a window and the default base temperature, leaving location-parameter selection and window meaning mostly undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly identifies the resource as heating and cooling degree days over a time window and specifies per-day row output. It is distinct from weather siblings like weather_current or weather_historical, though it doesn't explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The listed use cases ('HVAC sizing, utility bill reconciliation, energy forecasting') imply when the tool is appropriate, but there is no explicit guidance on when not to use it or which sibling to choose. The context is helpful but stops short of actual routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_forecastWeather Forecast (1-16 days)A
Read-onlyIdempotent
Inspect

Daily forecast with travel-impact score (flight risk, outdoor event suitability) per day plus an overall precipitation outlook (dry/mixed/wet pattern).

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
daysNo
unitsNoimperial
zip_codeNoUS ZIP (preferred). Or pass lat+lon.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds real behavioral context: this tool returns derived travel-impact and precipitation-pattern judgments, not just raw weather values. It does not detail the scoring methodology, but that is not necessary for invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that packs the resource, key outputs, and travel use case without filler. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description captures the output essence, and the schema covers days ranges and unit enums, but with no output schema and no required parameters, an agent still needs to infer that either zip_code or lat/lon is necessary and how the forecast horizon maps to days. It is minimally viable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

With only 20% schema description coverage, the description should compensate for undocumented lat, lon, days, and units, but it contains no parameter-level guidance. 'per day' weakly echoes the days parameter, but the critical location (zip_code vs lat/lon) and units semantics are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific deliverable ('Daily forecast') and unique output components ('travel-impact score ... plus overall precipitation outlook'), which sets it apart from sibling weather tools like weather_current, weather_hourly, and weather_historical. The flight-risk/outdoor-event details make the resource unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The daily-forecast and travel-impact language implies the tool is for multi-day planning, but it never explicitly says when to choose it over weather_route, weather_best_window, or weather_current, nor does it state exclusions. Usage context is present but only by implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_historicalHistorical Weather (past N days)B
Read-onlyIdempotent
Inspect

Last 1-365 days of daily observations with pre-computed aggregates (frost-day count, summer-day count, rainy days, heavy-rain days, extremes). Answers 'is this a normal year?' questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
unitsNoimperial
zip_codeNo
days_backNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive, so the bar is lower. The description adds useful behavioral context by mentioning daily observations and pre-computed aggregates such as frost-day count and extremes. However, it does not disclose return structure, handling of missing data, timezone behavior, or how lat/lon vs zip_code location resolution works, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences with no filler. The first sentence states range and content, and the second gives a clear use case. It is appropriately front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

With five optional parameters, no output schema, and zero schema-coverage, the description must carry more weight. It conveys output type and use case but omits essential invocation details like how to specify location, what units mean for aggregates, and what an agent should expect in the response. This is not complete enough for correct first-time use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, placing the full burden on the description to explain five parameters, but it only implicitly references days_back via 'last 1-365 days'. It does not explain units, lat/lon, zip_code, or the relationship between location parameters, so an agent gets little help beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description clearly names a specific resource ('daily observations' over the 'last 1-365 days') and distinguishes the tool from weather_current, weather_forecast, and weather_normals by presenting historical coverage and 'normal year' questions. It lacks an explicit contrast with weather_degree_days or other weather siblings, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives a concrete use case: answering 'is this a normal year?' questions, which signals when to use this tool instead of current or forecast weather tools. It does not provide explicit 'when not to use' or name alternatives, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_hourlyHourly Forecast (up to 16 days)A
Read-onlyIdempotent
Inspect

Hour-by-hour forecast: temperature, apparent temperature, precipitation probability + amount, humidity, cloud cover, wind speed/gusts/direction, and a WMO condition label per hour. For event timing, energy-demand curves, and logistics windows.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
hoursNo
unitsNoimperial
zip_codeNoUS ZIP (preferred). Or pass lat+lon.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering safety and side effects. The description adds context about the output data (fields returned) but does not disclose additional behavioral traits like rate limits, authentication needs, or error scenarios. It goes slightly beyond annotations by listing the output fields, but does not add deep behavioral context. Therefore, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first front-loads the essential 'hour-by-hour forecast' and enumerates the data fields; the second provides concise use cases. There is no filler or redundant repetition of the title or schema. It is well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

Given the tool has 5 parameters and no output schema, the description should explain the semantics of parameters and the full output. It lists the returned fields, which is helpful, but it does not explain parameter formats (e.g., how to pass lat/lon vs zip_code, units options, hours range). The title mentions 'up to 16 days' but the description omits this detail. It is adequate but not complete, leaving a medium gap for an agent to correctly call the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 20% (only zip_code has a description). The tool description does not compensate; it lists output fields but provides no guidance on input parameters like lat, lon, hours, or units. It does not explain that lat/lon can be used interchangeably with zip_code, the meaning of hours (though the title mentions up to 16 days), or the units enum values. This is a significant gap for a tool with 5 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool's function: providing hour-by-hour weather forecasts with a specific list of data fields (temperature, humidity, wind, etc.). It distinguishes from siblings like weather_current (current) and weather_forecast (likely daily) by emphasizing 'hour-by-hour' and 'per hour'. The mention of use cases (event timing, energy-demand curves) further clarifies its niche.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear usage context via the phrase 'For event timing, energy-demand curves, and logistics windows,' which implies these are the ideal scenarios for hourly data. However, it does not explicitly contrast with alternatives (e.g., when to choose weather_forecast over this) or state exclusions. Since it provides actionable context without explicit exclusions, it earns a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_marineMarine Forecast (waves + swell)A
Read-onlyIdempotent
Inspect

Coastal/marine hourly forecast: wave height, period, and direction, plus wind-wave and swell components. For shipping, fishing, surfing, and coastal-event planning. Coastal/open-water coordinates only — inland points return an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude of a coastal/open-water point.
lonNoLongitude of a coastal/open-water point.
hoursNo
unitsNoimperial
zip_codeNoUS ZIP — must resolve to a coastal point.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive behavior, and the description adds a concrete behavioral constraint: inland coordinates 'return an error,' which is exactly the edge-case disclosure an agent needs. It also specifies hourly granularity and the wave/swell output components.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences contain all the core information — content, audience, and constraint — with no redundancy. Every phrase earns its place, and the description is compact enough to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given the annotations cover safety and the schema covers most parameters, the description adds the missing behavioral and use-case context. No output schema exists, but the description lists the returned components (wave height, period, direction, wind-wave/swell), so an agent can gauge the result without needing a full response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The description reinforces the lat/lon/zip constraint ('Coastal/open-water coordinates only') and implies the hours parameter via 'hourly forecast.' However, with 60% schema coverage, it does not compensate for the undocumented hours and units semantics, leaving the agent to infer those from defaults and the units enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific resource ('Coastal/marine hourly forecast') and distinctive content ('wave height, period, and direction, plus wind-wave and swell components'), clearly setting it apart from generic weather_forecast/weather_hourly siblings. The 'Coastal/open-water coordinates only' qualifier further narrows the tool's identity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Explicitly lists intended audiences and use cases ('shipping, fishing, surfing, and coastal-event planning') and warns about invalid input ('inland points return an error'). It gives clear context but stops short of naming alternative weather tools or stating when NOT to use the marine forecast.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_normalsClimate Normals + DepartureA
Read-onlyIdempotent
Inspect

Same-window decadal climate normals for the next N days, plus a departure-from-normal block comparing the current forecast to the baseline. 'This week is 11°F above normal.'

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
unitsNoimperial
yearsNo
zip_codeNo
horizon_daysNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, and non-destructive behavior. The description adds meaningful context by revealing that the output contains both normals and a departure-from-normal block, and that the comparison uses the current forecast against a decadal baseline. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a concrete example, with no filler. The core behavior is front-loaded and the example reinforces the output form efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

With 6 parameters, no output schema, and no parameter descriptions in the schema, the description is not complete enough for an agent to invoke this correctly in all cases. It omits how to choose between lat/lon and zip_code, how years affects the normals, and what the exact output shape looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, but it only hints at horizon_days ('next N days') and years ('decadal'). It does not clarify location selection (lat/lon vs. zip_code), units, or the exact role of the years parameter beyond the vague 'decadal' clue.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific resource and computation: same-window decadal climate normals for the next N days plus a departure-from-normal comparison. It also gives a concrete example ('This week is 11°F above normal.'), making the tool's purpose unmistakable and distinguishing it from raw forecast or historical tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the tool is for comparing a forecast to a climate baseline, but it does not explicitly say when to use this tool versus alternatives like weather_forecast, weather_historical, or weather_compare. The intended use case is clear but not contrasted with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_routeWeather Along a RouteA
Read-onlyIdempotent
Inspect

Weather conditions along a polyline route. Pass up to 20 legs, each a lat/lon waypoint with an optional ISO 8601 departs_at. Legs departing within 2 hours (or with no time) return current conditions; future legs return the daily forecast for that date. For trucking, road-trip, and delivery-window planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
legsYesOrdered waypoints along the route.
unitsNoimperial

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already signal readOnly/idempotent/non-destructive, so the description adds meaningful behavior beyond that: the 2-hour threshold, current conditions for un-timed or near legs, and daily forecast for future legs. This is useful dynamic context without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, all substantive; every sentence earns its place and the main purpose is front-loaded. No redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a route-based forecast tool with rich annotations and a schema that already documents the legs array and units enum, the description covers the key behavioral twist (2-hour current/future forecast) and use cases. It does not detail the output shape, but no output schema exists and the annotation set already covers safety and side-effect expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

With only 50% schema description coverage, the description compensates by explaining that legs are lat/lon waypoints, that departs_at is optional ISO 8601, and exactly how departure time changes results (current vs daily forecast). It leaves the units enum to the schema, which is acceptable since that parameter has an enum and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The opening phrase 'Weather conditions along a polyline route' names a specific resource and behavior, and the description then details the leg-based input. It clearly distinguishes this from sibling weather tools like weather_zip, weather_current, and weather_forecast by focusing on multi-point routes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear context for when the tool is relevant: 'For trucking, road-trip, and delivery-window planning,' and explains the current-vs-forecast split based on departure time. It does not explicitly name an alternative or state when not to use it, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weather_zipCurrent Weather (by US ZIP)A
Read-onlyIdempotent
Inspect

Resolve a US ZIP to coordinates via the geo dataset, then return current weather.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitsNoimperial
zip_codeYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this as read-only, idempotent, and non-destructive, so the behavioral bar is lower. The description adds the internal two-step behavior of geocoding before weather lookup, but does not disclose failure modes such as invalid ZIPs, unmatchable coordinates, or response behavior. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states the input, the resolution mechanism, and the return value. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

For a simple read-only tool with strong annotations, the schema plus description are mostly adequate for invocation. However, there is no output schema and no description of return structure, invalid-input handling, or what 'current weather' contains, leaving some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only reinforces that zip_code is a US ZIP, adding little beyond the parameter name. It does not explain the units parameter, ZIP format expectations, or how defaults behave.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a clear verb-resource pair: resolve a US ZIP to coordinates and return current weather. It differentiates itself from generic weather_current by explicitly noting the ZIP-to-coordinates resolution step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

It implies usage whenever a US ZIP is known and current weather is needed, but it never names alternatives like weather_current or geo_zip_lookup, nor does it explain when not to use this tool. The context is clear but no 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 129 tool updates
    • First observedaddress_enrich
    • First observedaddress_validate
    • First observedaddress_validate_batch
    • First observedbin_lookup
    • First observedcalendar_business_days_add
    • First observedcalendar_holidays
    • First observedcalendar_is_business_day
    • First observedcompany_change
    • First observedcompany_changes
    • First observedcompany_cik
    • First observedcompany_classify
    • First observedcompany_domain
    • First observedcompany_domains_batch
    • First observedcompany_enrich
    • First observedcompany_industry
    • First observedcompany_insights
    • First observedcompany_lookup_auto
    • First observedcompany_lookup_batch
    • First observedcompany_network
    • First observedcompany_nonprofit_ein
    • First observedcompany_nonprofit_search
    • First observedcompany_peer_comparison
    • First observedcompany_registration
    • First observedcompany_search
    • First observedcompany_signal
    • First observedcompany_stats
    • First observedcompany_ticker
    • First observedcompany_timeline
    • First observedcompliance_signal
    • First observedcounterparty_risk
    • First observedcyber_risk
    • First observeddns_certificates
    • First observeddns_compare
    • First observeddns_history
    • First observeddns_lookup
    • First observeddns_profile
    • First observeddns_reputation
    • First observeddns_tls
    • First observeddns_whois
    • First observedemail_disposable
    • First observedemail_free_provider
    • First observedemail_smtp_probe
    • First observedemail_validate
    • First observedequities_concept
    • First observedequities_filings
    • First observedequities_fundamentals
    • First observedequities_ticker
    • First observedflight_airline_reliability
    • First observedflight_airport_delay_profile
    • First observedflight_cancellation_risk
    • First observedflight_reliability
    • First observedflight_route_best_times
    • First observedflight_route_summary
    • First observedfred_popular
    • First observedfred_search
    • First observedfred_series
    • First observedfunding_signal
    • First observedfx_convert
    • First observedfx_correlation
    • First observedfx_currencies
    • First observedfx_historical
    • First observedfx_movers
    • First observedfx_pair
    • First observedfx_rates
    • First observedfx_strength
    • First observedfx_timeseries
    • First observedfx_volatility_leaders
    • First observedgeo_asn
    • First observedgeo_city_search
    • First observedgeo_county_lookup
    • First observedgeo_enrich
    • First observedgeo_ip
    • First observedgeo_nearby
    • First observedgeo_timezone
    • First observedgeo_zip_batch
    • First observedgeo_zip_lookup
    • First observedhiring_signal
    • First observedintel_buyer_profiles
    • First observedintel_change_profiles
    • First observedintel_compliance_profiles
    • First observedintel_cyber_profiles
    • First observedintel_funding_profiles
    • First observedintel_hiring_profiles
    • First observedintel_rank
    • First observedintel_risk_profiles
    • First observedintel_role_profiles
    • First observedintel_site_profiles
    • First observedjobs_companies_hiring
    • First observedjobs_concentration
    • First observedjobs_momentum
    • First observedjobs_profile
    • First observedjobs_related_skills
    • First observedjobs_remote_trends
    • First observedjobs_role_skills
    • First observedjobs_salary_signals
    • First observedjobs_scarcity
    • First observedjobs_skill_graph
    • First observedjobs_skill_trends
    • First observedlocation_score
    • First observedmeta_catalog
    • First observedmeta_dataset
    • First observedphone_region
    • First observedphone_validate
    • First observedremote_hire_cost
    • First observedsanctions_search
    • First observedsite_risk
    • First observedtax_calculate
    • First observedtax_deadlines
    • First observedtax_federal_brackets
    • First observedtax_mileage_rates
    • First observedtax_retirement_limits
    • First observedtax_standard_deduction
    • First observedtax_state_brackets
    • First observedtax_summary
    • First observedtech_stack
    • First observedvin_decode
    • First observedweather_air_quality
    • First observedweather_alerts
    • First observedweather_best_window
    • First observedweather_compare
    • First observedweather_current
    • First observedweather_degree_days
    • First observedweather_forecast
    • First observedweather_historical
    • First observedweather_hourly
    • First observedweather_marine
    • First observedweather_normals
    • First observedweather_route
    • First observedweather_zip

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.2/5.0
Disambiguation2/5

Multiple tools have genuinely blurry boundaries: company_change vs company_changes differ only by singular/plural yet serve different purposes, company_domain vs company_classify vs company_lookup_auto all accept a domain, geo_zip_lookup vs geo_enrich vs geo_zip_batch all return ZIP profiles, and email_validate subsumes much of email_disposable and email_free_provider. The domain prefixes help narrow search space, but within many domains an agent cannot reliably predict which tool is the right one.

Naming Consistency4/5

All 129 tools uniformly follow a snake_case [domain]_[topic] convention (company_, fx_, geo_, dns_, weather_, tax_), which is highly predictable and consistent. Minor deviations include the confusing company_change/company_changes pair, and inconsistent suffix usage (_batch appears on address_validate_batch, company_domains_batch, geo_zip_batch but not on equivalent lookup tools elsewhere).

Tool Count1/5

129 tools far exceeds the 50+ extreem-mismatch threshold, bundling roughly 28 unrelated data domains (weather, fx, tax, ccompany, dns, jobs, flight, email, phone, tax...) into a single MCP surface. Even focusing on one domain forces the agent to load an enormous unrelated tool list; this should be split into many smaller domain-specific servers.

Completeness4/5

Per-domain coverage is impressively thorough: weather spans current/forecast/hourly/historical/normals/marine/route/air-quality, fx covers rates/convert/historical/volatility/correlation/strenth, and company includes lookup/enrichment/networks/timeline/peer-comparison plus six buyer-tuned signals with profile-introspection tools. Minor gaps like flight being historical-only and smtp probes skipping major email providers are documented scope decisions rather than dead ends.

Resources