LiveDataLink
Server Details
294 public-data tools across 60 domains; source freshness varies. Free tier.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- blackboxfoundry/livedatalink
- GitHub Stars
- 0
- Server Listing
- LiveDataLink
TDQS
Scored across 377 tools
With 377 tools there are large clusters of near-duplicate purpose: entity_resolve, resolve_entity, entity_dossier, company_trust_check, counterparty_risk_score, kyb_aml_evidence_case_file, issuer_diligence_dossier, shipper_receiver_counterparty_pack and beneficial_owner_screen all claim to answer variants of 'who is this company / can I trust them'. Parallel caselaw_* and court_* families, five FMCSA carrier-vetting tools plus load_tender_fraud_shield, and property_lookup vs parcel_* all force the agent to guess. Even good individual descriptions cannot make selection reliable at this density.
The dominant convention is domain-prefixed snake_case (bea_*, cfpb_*, fed_z1_*, fmcsa_*), which is readable and predictable. However, many cross-domain synthesis tools abandon that pattern for opaque bare names (resolve_entity, entity_dossier, load_tender_fraud_shield, search_available_datasets, list_tool_groups, package_track), so the set mixes conventions rather than following one.
377 tools is an extreme mismatch for practical agent use: it far exceeds any reasonable selection window, guarantees context bloat, and pushes the model toward misselection among overlapping tools. Even with group filtering available via list_tool_groups, the default loaded surface is unmanageable.
Coverage across most domains is genuinely broad and often deep (CRUD-style families for EDGAR, FDIC, FRED, EIA, courts, sanctions, patents, nonprofits, trials). But there are notable holes and stubs: parcel/property data is demo-only for one Texas county, package_track returns no live status, and several self-described 'bounded slices' (118th-Congress GovInfo, 15 BEA indicators, curated Z.1 series) leave lifecycle gaps.
Available Tools
377 toolsair_qualityARead-onlyIdempotentInspect
Get current air quality data for any location. Returns US AQI index, PM2.5, PM10, ozone, NO2, SO2, and CO levels with health category rating. Use this for 'what's the air quality?', 'is it safe to go outside?', 'pollution levels', 'AQI in Los Angeles', 'should I wear a mask?', 'is there smoke in the air?', or any air quality or pollution question.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City, zip code, or place name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, open-world, and non-destructive. The description adds behavioral detail by stating the response includes a health category rating and specific pollutant levels, which helps the agent set expectations about live, current measurements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and return data, then gives a practical set of example queries. The list of query phrasings is slightly redundant near the end, but overall it is crisp and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with strong annotations and a complete schema, the description covers what data is returned and the kinds of questions it answers. It does not discuss data freshness, units, or coverage limitations, but these are minor gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the single 'location' parameter as 'City, zip code, or place name' with 100% coverage. The description's examples reinforce that location can be a place name like Los Angeles, but it does not add meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('current air quality data'), and enumerates the exact data returned (US AQI, PM2.5, PM10, ozone, NO2, SO2, CO, health category). It is immediately distinguishable from weather, health, or pollution-related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit natural-language triggers ('what's the air quality?', 'is it safe to go outside?', 'AQI in Los Angeles') and states to use it for 'any air quality or pollution question.' It does not name alternatives or exclusion cases, but the guidance is clear enough for an agent to select this tool confidently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bank_health_reportARead-onlyIdempotentInspect
One-call financial-health read for a US bank or savings institution. Give a bank name or an FDIC certificate (CERT) number. Joins FDIC BankFind institution + financials (total assets, deposits, net income, return on assets/equity, active-vs-failed status) with the CFPB Consumer Complaint Database (complaint volume and top complaint products for the matched company) into a HEALTHY / STABLE / WATCH / FAILED read with the numbers behind it. FDIC is the primary signal; CFPB complaint data is best-effort and degrades gracefully if the bank's complaint records cannot be matched. Useful for picking a sponsor/partner bank, treasury counterparty checks, or deposit-safety questions. Informational, not a rating or advice.
| Name | Required | Description | Default |
|---|---|---|---|
| bank | No | Bank or savings institution name (e.g. 'JPMorgan Chase Bank', 'Cross River Bank'). Use the full legal name for best matching. | |
| cert | No | Optional FDIC certificate (CERT) number for an exact institution match, used instead of a name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnly/idempotent annotations already covering safety, the description adds behavioral nuance beyond structured data: 'FDIC is the primary signal; CFPB complaint data is best-effort and degrades gracefully if the bank's complaint records cannot be matched,' plus the explicit 'not a rating or advice' boundary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core purpose, and each sentence pulls weight (data sources, output, fallback, use cases). It loses a point for restating parameter guidance already present in the schema, making it slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still communicates the returned read's contents: the category label, underlying financial metrics, complaint volume/products, and graceful degradation. The use-case and disclaimer sentences close the remaining selection and invocation questions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both params and the full-legal-name matching tip. The description's 'bank name or FDIC certificate (CERT) number' reinforces the one-of relationship but adds little beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('financial-health read'), a specific resource ('US bank or savings institution'), and concrete output categories (HEALTHY/STABLE/WATCH/FAILED). The explicit FDIC + CFPB join distinguishes it from sibling FDIC-only and CFPB-only tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases (sponsor/partner bank selection, treasury counterparty checks, deposit-safety questions) and frames the tool as a one-call read, which implies when it is appropriate. However, it never names alternatives or says when-not-to-use it, so the guidance is clear but not fully exclusionary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bea_compare_statesARead-onlyIdempotentInspect
Compare one official BEA SASUMMARY annual indicator across 2–8 requested states (or the United States) for an exact year. Returns values sorted high-to-low, exact unit, missing-value evidence, GeoFIPS, source hash, and attribution. Use this for 'compare 2024 Texas and California GDP', 'which of these states had higher 2023 per-capita income?', or 'compare regional price levels'. It does not rank all states unless they are explicitly supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Four-digit calendar year. Hosted source coverage is reported in every response. | |
| indicator | Yes | Supported indicator slug/name or BEA SASUMMARY line code; examples: gdp, real_gdp, personal_income, per_capita_personal_income, regional_price_parities, total_employment. | |
| geographies | Yes | Two to eight distinct state selectors. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive safety profile, so the description's added value is its disclosure of return behavior: sorted high-to-low, exact unit, missing-value evidence, GeoFIPS, source hash, and attribution. With no output schema, this materially helps the agent understand what it will receive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core action is front-loaded in the first sentence, followed by return details and example queries. It is slightly long with three quoted examples, but each sentence carries distinct information (capability, returns, routing/exclusion).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compare tool with no output schema, the description enumerates the return payload (sorted values, unit, missing-value evidence, GeoFIPS, source hash, attribution) and clarifies the multi-state scope. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are documented, and the description's '2–8 states' and 'one indicator' clauses are consistent with the schema rather than adding new syntax. Baseline 3 is appropriate when the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare) plus the resource (one official BEA SASUMMARY annual indicator) and scope (2–8 states or the United States, exact year). The multi-state comparison framing clearly distinguishes it from the single-state profile/history/trend BEA siblings without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete when-to-use examples ('compare 2024 Texas and California GDP', 'which of these states had higher 2023 per-capita income?') and an explicit exclusion ('does not rank all states unless they are explicitly supplied'). It does not name the alternative BEA siblings (e.g. bea_state_economic_history/trend), so routing relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bea_search_state_indicatorsARead-onlyIdempotentInspect
Search the 15 indicators in LiveDataLink's self-hosted official BEA SASUMMARY annual state snapshot. Returns canonical indicator names, definitions, units, exact coverage, pagination, evidence hash, and attribution. Use this for 'what BEA state measures are hosted?', 'find regional price parity', or to resolve an indicator before a history call. Scope is the compact annual state summary, not the full BEA API or industry detail.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results. Default 20. | |
| query | No | Optional words matched against indicator name, definition, and unit. | |
| offset | No | Results to skip. Default 0. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the description focuses on disclosure of output shape: canonical names, definitions, units, coverage, pagination, evidence hash, and attribution. That adds real context beyond the annotations, though it says nothing about rate limits or result-size behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is searched, then returns, then usage, then scope — logical and waste-free. The return-field enumeration is long but justified given there is no output schema, though it slightly buries the routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value explanation and does so thoroughly, plus it delineates data coverage boundaries and the downstream hand-off to a history call. An agent has enough to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters are documented there, so the baseline is 3. The description adds no syntax, default, or format guidance for limit/offset/query/response_format beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Search) and resource (the 15 indicators in the BEA SASUMMARY annual state snapshot), and explicitly bounds scope. It differentiates from siblings by noting this resolves an indicator for a later 'history call', pointing at bea_state_economic_history rather than the compare/profile/trend tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete trigger phrases ('what BEA state measures are hosted?', 'find regional price parity') and a clear sequential use case (resolve an indicator before a history call). It also states an exclusion ('not the full BEA API or industry detail'), though it names no sibling tool explicitly, so routing is guided 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.
bea_state_economic_historyARead-onlyIdempotentInspect
Return bounded annual history for one official BEA SASUMMARY state or U.S. indicator. Includes exact value, unit, state GeoFIPS, pagination, source update date, evidence hash, and attribution. Use this for 'Texas real GDP since 2018', 'California per-capita income history', or 'US employment by year'. Published aggregate annual estimates only; BEA can revise prior vintages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum years. Default 20. | |
| offset | No | Years to skip. Default 0. | |
| end_year | No | Four-digit calendar year. Hosted source coverage is reported in every response. | |
| geography | Yes | State name, USPS abbreviation, 5-digit state-summary GeoFIPS, or United States/US. | |
| indicator | Yes | Supported indicator slug/name or BEA SASUMMARY line code; examples: gdp, real_gdp, personal_income, per_capita_personal_income, regional_price_parities, total_employment. | |
| start_year | No | Four-digit calendar year. Hosted source coverage is reported in every response. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world and non-destructive traits. The description adds real value beyond them: it discloses that only published aggregate annual estimates are returned and that 'BEA can revise prior vintages', which is a meaningful data-stability caveat an agent should know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with what is returned, then examples, then the estimate/revision caveat. No filler, though the returned-field enumeration is somewhat list-like.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by enumerating expected return fields (exact value, unit, state GeoFIPS, pagination, source update date, evidence hash, attribution) plus the revision caveat. Together with full schema coverage this is largely complete for a history-query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 7 parameters documented inline (limit, offset, year bounds, geography formats, indicator slugs). The description adds little parameter-level syntax beyond the 'one geography/one indicator' framing and a mention of pagination, so the schema does the heavy lifting — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Return bounded annual history') scoped to exactly one official BEA SASUMMARY state or U.S. indicator. The scoping ('one ... indicator', 'annual') implicitly separates it from siblings like bea_compare_states and bea_state_economic_trend without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Concrete user-query examples ('Texas real GDP since 2018', 'California per-capita income history', 'US employment by year') give a strong sense of the intended invocation context. There is no explicit when-not guidance or named alternative tool, 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.
bea_state_economic_profileARead-onlyIdempotentInspect
Build a compact official BEA annual economic profile for one state or the United States across all 15 hosted SASUMMARY indicators: GDP, income, consumer spending, per-capita measures, regional price levels, and jobs. Each value carries its own year and unit because source update calendars differ. Use this for 'BEA profile for North Carolina', 'state GDP income jobs packet', or as the BEA leg of a regional market brief combined with Census, BLS, SBA, FDIC, or housing data. Aggregate estimates only; not a forecast or investment recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| geography | Yes | State name, USPS abbreviation, 5-digit state-summary GeoFIPS, or United States/US. | |
| as_of_year | No | Four-digit calendar year. Hosted source coverage is reported in every response. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so safety is covered. The description adds genuine behavioral context beyond that: values carry heterogeneous years and units because source update calendars differ, and results are aggregate estimates, not forecasts or investment advice — a useful scope caveat an agent would not get from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and indicator coverage, then trigger examples, then caveats; every sentence contributes something. It is a dense three-sentence block, but nothing is redundant with the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, three-parameter tool with full schema coverage, no output schema, and complete annotations, the description supplies everything left: indicator coverage, the heterogeneous year/unit behavior, intended use cases, cross-source composition, and the estimate/not-advice disclaimer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so geography formats (name, USPS abbreviation, GeoFIPS, US) and the as_of_year semantics are already documented in the schema; the description only restates the 'one state or the United States' scope. Baseline 3 applies when the schema carries parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Build a compact official BEA annual economic profile' — and scopes it to one state or the US across all 15 hosted SASUMMARY indicators. The 'across all 15 indicators' framing implicitly separates it from the search/history/trend BEA siblings, but no sibling is ever named, so the differentiation is inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete trigger phrases ('BEA profile for North Carolina', 'state GDP income jobs packet') and a composition scenario with Census, BLS, SBA, FDIC, and housing data, which is strong context for selecting it. However, it never states when NOT to use it or names bea_state_economic_trend / bea_state_economic_history / bea_compare_states as the alternatives for those needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bea_state_economic_trendARead-onlyIdempotentInspect
Calculate prior-observation and exact five-year changes for one official BEA SASUMMARY state indicator. Returns component observations, absolute and percent changes, five-year CAGR when meaningful, units, vintage evidence, and caveats. Use this for 'five-year Florida GDP trend', 'how has Ohio employment changed?', or 'California real per-capita income growth'. The optional as-of year prevents future observations from entering a historical calculation.
| Name | Required | Description | Default |
|---|---|---|---|
| geography | Yes | State name, USPS abbreviation, 5-digit state-summary GeoFIPS, or United States/US. | |
| indicator | Yes | Supported indicator slug/name or BEA SASUMMARY line code; examples: gdp, real_gdp, personal_income, per_capita_personal_income, regional_price_parities, total_employment. | |
| as_of_year | No | Four-digit calendar year. Hosted source coverage is reported in every response. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only/idempotent profile, so the bar is lower; the description still adds real context by disclosing the returned evidence (vintage, caveats, CAGR-only-when-meaningful) and the point-in-time semantics of as_of_year excluding future observations from a historical calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: operation first, outputs second, usage examples third. The output enumeration is slightly listy but each clause carries information; little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description appropriately enumerates the return components (observations, changes, CAGR, units, vintage, caveats) and covers indicator, geography, and as-of-year intent. Complete enough to call correctly, though it is silent on source coverage limits beyond the as_of_year note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema for as_of_year, explaining its purpose (preventing future observations from entering a historical calculation), which the schema only describes as a four-digit year.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise operation ('Calculate prior-observation and exact five-year changes') on a well-scoped resource ('one official BEA SASUMMARY state indicator'). The single-indicator scope plus the enumerated outputs (component observations, absolute/percent changes, CAGR, units, vintage) make it distinguishable from multi-state siblings like bea_compare_states.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Concrete trigger examples ('five-year Florida GDP trend', 'how has Ohio employment changed?', 'California real per-capita income growth') make the intended use clear. It does not, however, state when to prefer the sibling tools (e.g. bea_state_economic_history or bea_state_economic_profile) or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
beneficial_owner_screenARead-onlyIdempotentInspect
One-call KYB/AML ownership-chain sanctions screen: answers the real question 'is anyone in this company's ownership chain sanctioned?', not just 'is the top-level name on a list?'. Give a company name or a 20-character LEI; the tool maps the ownership structure via GLEIF (keyless CC0 reference data) - the subject entity, its ULTIMATE parent (top of the chain), and its reported direct subsidiaries, capped at about 15 entities so a broad group stays bounded - then SCREENS each entity in that set against the local sanctions/watchlist matcher (OFAC SDN / EU / UN / BIS), the same first-party matcher company_trust_check uses. Returns the mapped ownership structure, a per-entity CLEAR / HIT result (each hit naming the matched list entry, source, and score), and an overall verdict: CLEAR (no entity matched) vs HITS-FOUND (at least one entity in the chain matched). This catches a sanctioned parent or subsidiary that screening only the counterparty name would miss - the exposure beneficial-ownership rules target. Best-effort: if GLEIF hops fail the subject is still screened; if the sanctions binding is unavailable the screen is noted as unavailable, never silently passed. Only relationships an entity self-reports to GLEIF are shown. A name match is not proof of identity and must be cleared. Informational public-record synthesis, not legal, compliance, or sanctions-clearance advice.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Optional exact 20-character LEI code to anchor the ownership chain directly (e.g. '5493006MHB84DD0ZWV18'). Overrides a name search. | |
| company | No | Company / organization name (e.g. 'Alphabet Inc.', 'JPMorgan') or a 20-character LEI code. Provide this or 'lei'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/openWorld/idempotent annotations: it discloses the GLEIF mapping approach, the ~15 entity cap, the sanctions sources screened, best-effort failure behavior, that only self-reported GLEIF relationships are shown, and that name matches are not proof of identity. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, the description is dense with non-redundant information and every sentence earns its place: purpose, method, scope, failure behavior, return contents, and caveats. The core value proposition is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what the tool returns: mapped ownership structure, per-entity CLEAR/HIT results with matched list entry/source/score, and an overall verdict. It also covers edge cases like GLEIF failure and unavailable sanctions binding, making it practically complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents both parameters. The description adds meaningful semantics on top: the LEI must be 20 characters, an LEI can be supplied via either field, and the lei parameter overrides a name search. This helps the agent disambiguate parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a one-call KYB/AML ownership-chain sanctions screen. It clearly frames the real question being answered and distinguishes itself from a simple top-level-name list check, which separates it from related screening and lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when this tool is valuable: when ownership-chain exposure must be caught beyond screening only the counterparty name. It references the same matcher as company_trust_check and notes GLEIF-based mapping, giving useful context, though it does not explicitly enumerate sibling alternatives or state hard 'do not use when' conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bls_indicatorARead-onlyIdempotentInspect
US labor & price statistics from the Bureau of Labor Statistics by friendly name. Available: unemployment_rate, labor_force_participation, employment_population_ratio, cpi, cpi_less_food_energy, nonfarm_payrolls, avg_hourly_earnings, avg_weekly_hours, ppi_final_demand. Returns a monthly time series. Keyless official BLS data.
| Name | Required | Description | Default |
|---|---|---|---|
| end_year | No | End year (optional; defaults to current year). | |
| indicator | No | Indicator name, one of: unemployment_rate, labor_force_participation, employment_population_ratio, cpi, cpi_less_food_energy, nonfarm_payrolls, avg_hourly_earnings, avg_weekly_hours, ppi_final_demand. | |
| start_year | No | Start year (optional; defaults to ~3 years back). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds useful context beyond those annotations: no API key is needed and the result is a monthly time series. It does not mention possible data revisions or lags, but the annotation-covered safety profile lowers the burden and the added details are meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences: a scoped subject, a concise indicator list, and a useful return/auth note. Every sentence earns its place and the most important identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with three optional parameters and no output schema, the description conveys the domain, supported indicators, monthly frequency, and keyless access. It could specify the exact time-series shape or units, but it 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters already documented including defaults and the full indicator enumeration. The description restates the indicator list but adds no extra semantics such as date formats, units, or interactions between start_year and end_year.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the data source (Bureau of Labor Statistics), the domain (US labor and price statistics), and the supported friendly-name indicators. It lacks an explicit action verb like 'get' or 'fetch' and does not explicitly distinguish itself from the sibling bls_series tool, so it falls just 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives like bls_series or FRED tools. The phrase 'by friendly name' and the indicator list imply the use case, but the description never states when not to use it or what to use instead for raw BLS series or different datasets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bls_seriesARead-onlyIdempotentInspect
Fetch any BLS time series by its raw series ID (e.g. 'LNS14000000' for the unemployment rate, or a state/industry series). For when you know the exact BLS series ID.
| Name | Required | Description | Default |
|---|---|---|---|
| end_year | No | End year (optional). | |
| series_id | Yes | BLS series ID, e.g. 'LNS14000000'. | |
| start_year | No | Start year (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description's 'Fetch' aligns as a safe read operation. The description adds no behavioral caveats such as output format, rate limits, or year-range constraints, so it only mildly extends what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the action and example front-loaded, followed by the exact-ID selection criterion. No filler, fluff, or redundant restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only fetch with one required parameter and clearly documented optional years, selection and invocation are well covered. With no output schema, the response shape is left unstated, but the description still provides enough for correct tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with series_id, start_year, and end_year already described. The description repeats an example ID also found in the schema and does not clarify year range behavior, so it meets the baseline without adding meaningful parameter insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Fetch any BLS time series by its raw series ID', which is a specific verb, resource, and exact input. The examples and the 'when you know the exact BLS series ID' clause distinguish it from lookup or search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly identifies the right condition: use when the exact BLS series ID is known. It does not name sibling alternatives or provide a when-not, so exclusions are left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_detailsARead-onlyIdempotentInspect
Get full catalog metadata for a single book by its Project Gutenberg id (title, authors, subjects, languages, copyright, download count, and whether its full text is indexed here).
| Name | Required | Description | Default |
|---|---|---|---|
| gutenberg_id | Yes | Project Gutenberg ebook id, e.g. 84 (Frankenstein). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds value by disclosing the concrete return fields, including the notable 'whether its full text is indexed here' behavior, which is not inferable from the input schema. It does not cover not-found or error behavior, but the annotation coverage lowers that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with the field list in a parenthetical. There is no filler, no repetition of schema details, and every phrase contributes to understanding what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup with strong annotations, the description is complete: it identifies the required input and the full set of returned metadata fields. Since there is no output schema, the description appropriately carries the return-value information needed by the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents gutenberg_id with 100% coverage and a concrete example ('84 (Frankenstein)'). The description only restates that the parameter is a Project Gutenberg id and adds no additional syntax or format details, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get full catalog metadata for a single book by its Project Gutenberg id.' It enumerates the exact metadata fields, making it clearly distinguishable from sibling tools like book_search, book_get_text, and book_fulltext_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this when you already have a Gutenberg id and need catalog metadata for one book. It does not explicitly name alternatives or exclusions, but the 'single book by id' framing is sufficient to differentiate it from search and text-retrieval siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_fulltext_searchARead-onlyIdempotentInspect
Search INSIDE the indexed corpus of top public-domain books for a phrase or keywords and get back the matching passages, each with the book title, author, and a snippet around the match. This is the headline feature: agents can find where a passage appears across great books. Optionally restrict to one book by gutenberg_id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum passages to return (default 10, max 50). | |
| query | Yes | Phrase or keywords to find inside the books, e.g. 'it was the best of times', 'whale'. | |
| gutenberg_id | No | Optional: restrict the search to a single indexed book by its Gutenberg id. |
TDQS
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 useful context beyond annotations: the corpus is indexed public-domain books, results include title/author/snippet, and search can be narrowed to one book. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the action verb front-loaded ('Search INSIDE...'). The phrase 'headline feature' adds minor positioning context, but every sentence otherwise earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the return shape (matching passages with title, author, snippet) and the scope of the corpus. It does not mention no-results behavior or pagination, but limit defaults are documented in the schema and the overall behavior is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description, including examples for query. The description only restates the gutenberg_id restriction role and adds little semantic value beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search INSIDE the indexed corpus of top public-domain books') and the exact output ('matching passages, each with the book title, author, and a snippet'). It clearly distinguishes itself from siblings like book_search and book_get_text by emphasizing passage-level full-text search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case explicit: find where a passage or phrase appears across books, with optional restriction to a single book via gutenberg_id. It does not name alternative sibling tools or state when not to use it, but the context is clear enough for an agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_get_textARead-onlyIdempotentInspect
Return the full text of an indexed book by Gutenberg id, paginated by passage. Use from_seq + max_passages to page through it. For books in the catalog that are NOT indexed locally, returns the public gutenberg.org plain-text URL so the agent can fetch it directly.
| Name | Required | Description | Default |
|---|---|---|---|
| from_seq | No | Passage index to start from (0-based, default 0). | |
| gutenberg_id | Yes | Project Gutenberg ebook id. | |
| max_passages | No | Maximum passages to return per call (default 40, max 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent. The description adds meaningful behavioral context beyond those annotations: results are paginated by passage, and non-indexed books return a gutenberg.org URL instead of text, which is an important non-obvious fallback behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: the first states the core operation, the second gives the pagination pattern, and the third covers the fallback case. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description still explains both return modes: paginated text passages for indexed books and a plain-text URL for non-indexed books. It is sufficient for correct invocation, though a bit more detail about what constitutes a 'passage' would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters at 100% coverage, so baseline is 3. The description adds value by explaining the pagination relationship between from_seq and max_passages and by tying gutenberg_id to the indexed-versus-URL fallback behavior, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Return the full text of an indexed book by Gutenberg id'. It also clarifies the pagination model and the fallback behavior for non-indexed books, which distinguishes it from search-oriented siblings like book_fulltext_search and book_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives direct usage guidance: 'Use from_seq + max_passages to page through it' and explains the alternate path for unindexed books by returning a URL. It does not explicitly name sibling alternatives or state when not to use this tool, but the context is clear for this retrieval action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_searchARead-onlyIdempotentInspect
Search the full Project Gutenberg catalog (~78,500 public-domain books) live via Gutendex by title / author / subject keyword, with optional author, subject, and language filters. Ranked by keyword relevance then download popularity. Returns each book's Gutenberg id, title, author(s), language, and download count. Use book_fulltext_search to search inside the locally indexed top books.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Title / author / subject keyword, e.g. 'frankenstein', 'sherlock holmes', 'astronomy'. | |
| author | No | Optional author-name fragment, e.g. 'Shelley', 'Twain'. | |
| subject | No | Optional subject fragment, e.g. 'Science fiction', 'Detective'. | |
| language | No | Optional language code filter, e.g. 'en', 'fr'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the description adds useful behavioral context beyond them: live Gutendex source, ranking by keyword relevance then download popularity, and the exact fields returned. This gives the agent a strong sense of what the tool will do and what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three dense sentences with no filler. The core search scope and filters come first, followed by ranking behavior, return fields, and the sibling-tool routing at the end. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by listing the returned fields. It also explains scope, source, ranking behavior, and the relevant alternative tool. For a search tool with optional filters and safety annotations, this is complete enough for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented with examples and defaults. The description mostly restates that query accepts title/author/subject keywords and that author, subject, and language are optional filters, without adding significant new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search the full Project Gutenberg catalog') with a clear resource, scope, and method (Gutendex). It explicitly distinguishes itself from book_fulltext_search by naming that sibling and clarifying the different search domain (metadata vs full text).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use book_fulltext_search when the task is to search inside book text, providing a clear routing rule. It also characterizes book_search as a live catalog search, so an agent can infer when this tool is appropriate versus sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_statusARead-onlyIdempotentInspect
Report the books store status: the catalog is served live via Gutendex (78,000+ books), plus the local D1 indexed-corpus counts (books with full text indexed, total indexed passages, last refresh timestamp).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 meaningful behavioral context beyond annotations by clarifying that the catalog is served live via Gutendex and that the D1 counts are local indexed-corpus statistics, including the last refresh timestamp. This helps the agent understand what data source and freshness semantics to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose ('Report the books store status') before listing the key data components. Every element adds value: data source, scale, indexed-corpus metrics, and refresh timestamp. There is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status-reporting tool, the description is complete. It tells the agent what to expect in the response: live catalog availability, indexed corpus counts, total passages, and last refresh timestamp. No output schema is present, but the description compensates well by outlining the return categories. No additional context seems necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. There are no parameter semantics to explain, and the description appropriately focuses on the output content instead. Because there is no input schema burden, the description does not need to compensate for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and a clear resource ('books store status'), then enumerates exactly what the status contains: live Gutendex catalog, local D1 indexed-corpus counts, and last refresh timestamp. This clearly distinguishes it from sibling book tools like book_search, book_details, and book_fulltext_search, which operate on individual books or search results rather than the store's health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to use when an agent needs a high-level status or health summary of the books store, rather than specific book content. However, there is no explicit when-to-use guidance, no mention of when not to use it, and no reference to alternative sibling tools. The usage intent is clear enough but left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounce_scannerARead-onlyIdempotentInspect
Screen one or more US tickers for a mean-reversion 'bounce' setup on daily bars: price near support (recent pivot low) or the moving average, RSI oversold and turning up, a bullish latest candle, and volume at/above its recent average. Returns per-symbol {isBounce, score 0-100, reasons, price, rsi, distanceToSupportPct, supportLevel}. ALL thresholds are tunable inputs (rsi_threshold, ma_period, proximity_pct, lookback_days) so calibration is a parameter change. HEURISTIC signal for research, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | A single ticker (e.g. 'AAPL'). Use this or `symbols`. | |
| symbols | No | Multiple tickers to scan (max 15). | |
| ma_period | No | Simple moving-average period used as a dynamic support reference (default 50). | |
| lookback_days | No | Trailing daily bars to analyze (default 180). | |
| proximity_pct | No | How close (percent) price must be to support/MA to count as 'near' (default 3). | |
| rsi_threshold | No | RSI(14) must be at or below this to qualify as oversold (default 35). |
TDQS
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 valuable behavioral context beyond that: it is a heuristic research signal, not investment advice; all thresholds are tunable parameters; and the per-symbol return fields are enumerated. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero filler: strategy conditions, output format, tunability, and disclaimer all fit naturally. The core action is front-loaded, and every sentence carries distinctive information. This is appropriately dense rather than bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though there is no output schema, the description lists the exact return fields and explains the strategy criteria, threshold tunability, and heuristic nature. All six parameters are documented in the input schema, and the intended ticker scope (US, daily bars) is explicit. An agent has enough information to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 because the schema already documents each parameter. The description adds extra meaning by explicitly labeling rsi_threshold, ma_period, proximity_pct, and lookback_days as tunable thresholds and explaining that calibration is achieved through parameter changes. This links the parameters directly to the strategy logic beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Screen one or more US tickers') and a clearly defined resource/strategy: a mean-reversion 'bounce' setup with explicit conditions (near support/MA, RSI oversold and turning up, bullish latest candle, volume at/above average). It also specifies the exact output shape, which leaves no ambiguity about what the tool does. The definition is distinctive enough to be separated from siblings like candlestick_signals or support_resistance_levels without reading their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when screening US tickers for daily-bar mean-reversion bounce setups. It does not explicitly name alternative tools or state when not to use it, but the strategy-specific wording makes the intended use obvious. It stops short of a 5 because no explicit 'use X instead when...' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bts_transport_border_activity_packARead-onlyIdempotentInspect
Combine every available official BTS crossing measure for one land-border port into a provenance-backed current-versus-prior activity evidence pack. Keeps trucks, trains, buses, vehicles, passengers, and pedestrians separate while reporting window totals, completeness, and percent change. Use this for 'build a border activity pack for Laredo', 'what changed at Otay Mesa?', or a logistics/corridor briefing. It never fabricates a total across incompatible measures and is not a congestion or wait-time measure.
| Name | Required | Description | Default |
|---|---|---|---|
| port | Yes | Exact BTS four-digit port code or an unambiguous U.S. land-border port name. Search first when needed. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| trailing_months | No | Months per current/prior comparison window. Default 12. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior心的的,但描述 adds valuable context: provenance-backed results, separation of modes, and a guarantee that incompatible measures are never summed ('never fabricates a total'). It also clarifies completeness reporting and percent change, which the agent could not infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: the first states the core deliverable, the second details the output composition, and the third gives runtime examples and an exclusion. It is front-loaded with the main purpose and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema tool, the description covers the key semantic ground: what it returns (evidence pack with totals, completeness, percent change), how data is kept separate, provenance, and what it deliberately does not do. It gives the agent enough to decide on invocation, interpret results, and set expectations about data integrity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because all three parameters (port, response_format, trailing_months) have descriptions. The description adds no new parameter-level detail beyond schema descriptions—for example, 'trailing_months' is mentioned as a default but not elaborated. The baseline 3 is appropriate since the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Combine'), resource ('every available official BTS crossing measure'), and scope ('one land-border port'), making it clear this is an aggregation pack. It distinguishes itself from BTS siblings by emphasizing a single port with current-versus-prior comparison dashboards and explicitly excludes congestion/wait-time measures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases like 'build a border activity pack for Laredo' and 'what changed at Otay Mesa?', plus a clear exclusion ('not a congestion or wait-time measure'). However, it does not explicitly name sibling tools like bts_transport_compare_ports or bts_transport_border_trend and explain when to choose them instead, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bts_transport_border_trendARead-onlyIdempotentInspect
Return a bounded monthly history for one official BTS land-border port and one consistent crossing measure from the self-hosted snapshot. Includes exact month, crossing count, stable port identity, pagination, source hash, and provenance. Use this for 'monthly truck crossings at Laredo', 'pedestrian crossings at San Ysidro since 2023', or a reproducible port-volume chart. Counts inbound crossing events, not unique vehicles or people.
| Name | Required | Description | Default |
|---|---|---|---|
| port | Yes | Exact BTS four-digit port code or an unambiguous U.S. land-border port name. Search first when needed. | |
| limit | No | Maximum monthly observations. Default 24. | |
| offset | No | Observations to skip. Default 0. | |
| measure | Yes | Official BTS crossing measure. Measures have different units and must not be added together. | |
| end_month | No | Calendar month in YYYY-MM format. | |
| start_month | No | Calendar month in YYYY-MM format. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by disclosing the source (self-hosted snapshot), the output contents (exact month, crossing count, stable port identity, pagination, source hash, provenance), and the counting semantics (inbound events). The annotations already establish read-only/idempotent/destructive false, and the description adds practical expectations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences – a precise purpose, a usage trigger phrase, and a clarification of the measure unit. All high-signal, no filler; the most important capabilities are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters and no output schema, but the description enumerates all key output fields (exact month, crossing count, stable port identity, pagination, source hash, provenance) and gives concrete invocation examples. It doesn't specify error/runtime behavior, but the annotations plus open-world hint make it sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already documents every parameter. The description adds contextual meaning: 'bounded monthly history' implies limit/offset behavior, and 'one consistent crossing measure' clarifies that measure parameters must not be combined. It doesn't repeat schema descriptions but gives agent interpretation guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return'), resource ('bounded monthly history'), and scope ('one port', 'one consistent crossing measure'), and clarifies the counting unit ('inbound crossing events, not unique vehicles or people'). The examples of Laredo and San Ysidro anchor it visually. It clearly differentiates from the sibling comparison/search/pack tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to use it: monthly truck/pedestrian crossing queries and reproducible port-volume charts. It doesn't name sibling alternatives or exclusions, but the use cases are concrete and the scope constraints ('one port, one measure') imply it's not for comparisons (use compare_ports) or discovery (use search_ports).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bts_transport_compare_portsARead-onlyIdempotentInspect
Compare two to eight U.S. land-border ports on one consistent official BTS crossing measure over a shared rolling window. Ranks ports by current count and returns prior-window count, reported-month completeness, percent change, exact window, stable port codes, and provenance. Use this for 'compare truck crossings at Laredo, El Paso, and Otay Mesa' or 'which selected Canada-border port has more train crossings?'. It does not compare wait times, outbound flows, or cargo value.
| Name | Required | Description | Default |
|---|---|---|---|
| ports | Yes | Two to eight exact four-digit port codes or unambiguous port names. | |
| measure | Yes | Official BTS crossing measure. Measures have different units and must not be added together. | |
| end_month | No | Calendar month in YYYY-MM format. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| trailing_months | No | Months per current/prior comparison window. Default 12. |
TDQS
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 behavioral context: it explains the shared rolling window, ranking by current count, and lists the return fields (prior-window count, completeness, percent change, exact window, stable port codes, provenance). It also explicitly states what it does not compare, clarifying scope beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core action, output composition, usage examples, and exclusions with no filler. Key information is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned data: rankings, prior-window count, completeness, percent change, exact window, port codes, and provenance. It also gives concrete usage examples and exclusions, making the tool's behavior predictable. Given its read-only, idempotent nature and five well-described parameters, the description is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all 5 parameters at 100%, so the baseline is 3. The description adds context about the comparison window and measures ('one consistent official BTS crossing measure', 'shared rolling window') that maps to the measure and trailing_months parameters, but it doesn't add syntax or format details beyond the schema. Thus it remains at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compare two to eight U.S. land-border ports on one consistent official BTS crossing measure over a shared rolling window.' It also differentiates itself by stating what it does not compare (wait times, outbound flows, cargo value), making its purpose unambiguous relative to sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use-case examples ('Use this for compare truck crossings at Laredo, El Paso, and Otay Mesa') and a negative constraint ('It does not compare wait times, outbound flows, or cargo value'). While it does not name sibling tools, the examples and exclusions give clear guidance on when to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bts_transport_search_portsARead-onlyIdempotentInspect
Search U.S. land-border ports in LiveDataLink's self-hosted official BTS Border Crossing Entry snapshot. Returns stable four-digit port codes, state, Canada/Mexico border, coordinates, available crossing measures, coverage, pagination, and source provenance. Use this for 'find the Laredo border port code', 'which Arizona ports have truck crossings?', or to resolve a port before a trend call. Inbound land ports only; not wait times or outbound traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum ports. Default 20. | |
| query | No | Port name, state, or exact four-digit port code. | |
| state | No | Exact state name, such as Texas or New York. | |
| border | No | Optional official BTS border label. | |
| offset | No | Ports to skip. Default 0. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and non-destructive, so the description does not need to repeat safety. It adds value by clarifying the tool is a lookup (inbound only) and that it returns metadata (coverage, provenance) rather than time-series data. This context helps set 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and output. It efficiently includes usage examples and exclusions. It is concise without being under-specified, although it could be slightly trimmed (e.g., 'available crossing measures, coverage' is dense but not wasteful).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple lookup nature, no output schema, and 6 parameters fully documented in the schema, the description covers the tool's purpose, scope, and usage adequately. It doesn't specify response structure in detail, but that is less critical for a search tool, and the output fields are mentioned. It is complete enough for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions (e.g., limit, query, state, border, offset, response_format). The description mentions that query can be a port name, state, or exact code, but that info is already in the schema. It adds minimal nuance, such as the 'border' using official BTS labels, which is already in the enum. Baseline 3 for high coverage is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Search U.S. land-border ports'), the resource (LiveDataLink's BTS Border Crossing Entry snapshot), and the output (four-digit port codes, state, border, coordinates, crossing measures, coverage, pagination, provenance). It clearly distinguishes the tool from siblings like bts_transport_compare_ports or bts_transport_border_trend, which likely focus on analysis rather than lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete example queries ('find the Laredo border port code', 'which Arizona ports have truck crossings?') and explicitly states when to use it (before a trend call) and what it is NOT for ('not wait times or outbound traffic'). Although it doesn't name specific sibling tools, the practical usage context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candlestick_signalsARead-onlyIdempotentInspect
Detect classic candlestick patterns on a ticker's recent daily bars: hammer, inverted hammer, bullish/bearish engulfing, doji, morning/evening star, and shooting star. Returns each detected pattern with {pattern, date, direction (bullish/bearish/neutral), barIndex}. HEURISTIC pattern detection with conservative default thresholds; for research, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | US ticker (e.g. 'MSFT'). | |
| lookback_days | No | Trailing daily bars to scan for patterns (default 60). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive nature, lowering the bar. The description adds important behavioral context by flagging HEURISTIC detection with conservative default thresholds and stating the tool is for research, not investment advice. This helps the agent temper expectations about precision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first delivers the core action, pattern list, and return shape; the second adds a necessary heuristic caveat. No filler, and the most important identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description's explicit return-field list ({pattern, date, direction, barIndex}) is valuable. It covers the essentials for a simple read-only scanner, though it could mention edge cases or the meaning of barIndex more explicitly. Overall, it is sufficiently complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents symbol and lookback_days. The description does not add substantial parameter-level detail beyond reaffirming the daily-bar scope, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Detect'), a specific resource ('classic candlestick patterns on a ticker's recent daily bars'), and enumerates the exact patterns covered. It also specifies the return fields, making the tool's purpose unambiguous and clearly distinct from siblings like stock_history or support_resistance_levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (recent daily bars, research-oriented) and adds a 'not investment advice' caveat, but it does not explicitly say when to prefer this tool over similar technical-analysis siblings like support_resistance_levels or bounce_scanner. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cargo_crateARead-onlyIdempotentInspect
Look up a Rust crate on crates.io: latest version, description, total downloads, repository, and homepage. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Crate name, e.g. 'serde'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds 'Keyless' to clarify that no authentication is required, which is valuable operational context. It also lists the response content, partially compensating 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. The lookup target and returned fields are front-loaded, and the 'Keyless' note is a concise, useful addition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only lookup with no output schema, this description is complete: it identifies the source platform, the input semantics, the returned fields, and the authentication requirement. Nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single 'name' parameter with an example. Schema description coverage is 100%, so the baseline is 3. The description adds context by specifying 'Rust crate' and 'crates.io', but it does not materially deepen parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Look up a Rust crate on crates.io', which clearly distinguishes it from sibling package lookup tools like npm_package and pypi_package. It also enumerates the exact returned fields, so an agent knows what this tool provides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the context for use: any time a Rust crate's metadata from crates.io is needed. It does not explicitly name alternatives or exclusions, but the platform and language are explicit enough to guide selection among package-oriented siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carrier_monitor_recheckARead-onlyIdempotentInspect
Recheck an existing carrier snapshot and identify meaningful changes since the previous check. Accepts a DOT/MC/name plus the prior result or snapshot as previous_snapshot, then compares authority, identity, insurance summary, BASIC alerts, crashes, out-of-service indicators, safety rating, and verdict. Returns unchanged/changed status, a severity, field-level changes, and the next reviewer action. Store the returned current_snapshot in your own system and call this on a schedule; LiveDataLink does not silently retain customer watchlists.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC/MX number without the prefix. | |
| dot | No | USDOT number (preferred). | |
| name | No | Carrier legal name when DOT/MC is unavailable. | |
| format | No | Report format. Defaults to markdown. | |
| previous_snapshot | No | Prior carrier_vetting result or JSON snapshot returned by an earlier call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive. The description adds significant behavioral context: it compares specific fields (authority, identity, insurance, etc.), returns status, severity, field-level changes, and next action. It also discloses that the tool does not silently store data, requiring the agent to persist snapshots. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose. It packs essential details (fields compared, output contents, storage requirement) without fluff. Every sentence earns its place, and the warning about watchlists is critical for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description thoroughly explains what the tool returns (status, severity, changes, next action) and the essential workflow (store snapshot, schedule calls). It covers the stateful nature and data handling, making it complete for an agent to understand and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds little beyond the schema: it repeats that previous_snapshot is a prior result and mentions accepting a DOT/MC/name (already in schema). It does tie the parameters together by explaining the tool's acceptance of an identifier and prior snapshot, but this is minor added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Recheck an existing carrier snapshot and identify meaningful changes since the previous check.' It specifies verb (recheck), resource (carrier snapshot), and the core function (identify changes). This distinguishes it from sibling tools like carrier_vetting_score (initial scoring) or fmcsa_carrier_lookup (basic lookup).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Store the returned current_snapshot in your own system and call this on a schedule.' It also warns that LiveDataLink does not retain watchlists, implying the agent must manage snapshots. This makes it clear when to use this tool (for ongoing monitoring) and what to do with its output, effectively guiding agent behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carrier_vetting_batchARead-onlyIdempotentInspect
Vet a batch of up to 10 US motor carriers by USDOT number in one workflow call. Returns one GO/CAUTION/NO-GO result per carrier, source coverage and failures, key authority/insurance/safety signals, and an export in markdown (default), JSON, or CSV. Use this to screen a broker's candidate list or lane roster; each carrier is evaluated independently so one missing or unavailable record does not hide the others. This is an analytical aid, not a substitute for direct FMCSA verification.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export format. Defaults to markdown. | |
| dot_numbers | Yes | 1-10 USDOT numbers. A comma-separated string is also accepted for agent convenience. |
TDQS
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 clear. The description adds valuable context: it mentions the tool returns source coverage and failures, and that one missing record does not hide others. It also clarifies the tool is an analytical aid, not a substitute for direct verification, which is useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the core purpose, then details the output, usage context, and caveats. Every sentence adds value: the batch limit, output components, export formats, use case, independence of evaluations, and the analytical-aid disclaimer. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (batch processing, multiple output formats, independent evaluations), the description covers all essential aspects: input constraints, output structure, export options, use case, and limitations. The annotations provide the safety profile, and the schema covers parameters, so the description is complete 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds the batch limit (up to 10) and the accepted comma-separated string format for dot_numbers, which is helpful for agent convenience. It also mentions the default format (markdown) and the available export formats, reinforcing the enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool vets a batch of up to 10 US motor carriers by USDOT number, returns one GO/CAUTION/NO-GO result per carrier, and lists the output components. It distinguishes itself from siblings like carrier_vetting_score and carrier_vetting_evidence_pack by focusing on batch processing and the specific output format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use this to screen a broker's candidate list or lane roster.' It also explains the batch behavior (each carrier evaluated independently) and notes it is an analytical aid, not a substitute for direct FMCSA verification, which helps the agent decide when not to rely on it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carrier_vetting_evidence_packARead-onlyIdempotentInspect
Produce an auditable Carrier Vetting Pack for a freight broker. Resolve a US motor carrier by USDOT, MC, or legal name, then return the GO/CAUTION/NO-GO verdict, the exact FMCSA authority/insurance/safety evidence, sanctions/court/federal-award checks, source coverage and failures, retrieval timestamp, primary-source links, and a broker follow-up checklist. This is the evidence-first companion to carrier_vetting_score: use it when a human reviewer needs to save or forward the record. It is an analytical aid, not a substitute for direct FMCSA insurance and authority verification.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC/MX number without the prefix. | |
| dot | No | USDOT number (preferred exact identifier). | |
| name | No | Legal carrier name when DOT/MC is unavailable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds valuable context beyond those: it is auditable, includes source coverage and failures, retrieval timestamp, primary-source links, and a broker follow-up checklist. The 'analytical aid, not a substitute' caveat further clarifies limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: it states the deliverable, enumerates the output, gives usage guidance, and adds a safety caveat. It is front-loaded with the core purpose and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of an output schema, the description thoroughly covers what the agent can expect: verdict, FMCSA evidence, sanctions/court/federal-award checks, source coverage/failures, timestamp, links, and a checklist. It is complete enough for an agent to decide when to invoke it and what it will return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents mc, dot, and name. The description restates that resolution can happen by 'USDOT, MC, or legal name' but adds little beyond what the schema provides. This meets the baseline but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Produce an auditable Carrier Vetting Pack for a freight broker.' It clearly enumerates the deliverable contents and explicitly distinguishes itself from the sibling carrier_vetting_score as the 'evidence-first companion.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'use it when a human reviewer needs to save or forward the record.' It also names the related alternative (carrier_vetting_score) and adds a caution that it is 'not a substitute for direct FMCSA insurance and authority verification.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carrier_vetting_scoreARead-onlyIdempotentInspect
Vet a US motor carrier (trucking company) for a freight-brokerage review, in one call. Give a USDOT number, MC number, or carrier name. Joins FMCSA public safety data (operating authority, insurance on file, crash and out-of-service history vs the national average, safety rating, and CSA BASIC indicators where FMCSA publishes them) with sanctions screening (OFAC/UN/EU/BIS on the carrier's legal name), federal-court litigation history (CourtListener), and USAspending federal awards. Returns a GO / CAUTION / NO-GO decision-support result with reasons and the underlying fields. NO-GO is triggered by a sanctions match or lack of active operating authority; CAUTION by published BASIC alerts, fatal crashes, missing required liability insurance, high out-of-service rates, litigation, or an unavailable source. This is an analytical aid, not a substitute for your own carrier-onboarding checks.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC (motor carrier) number, without the 'MC-' prefix. Used if no DOT number is given. | |
| dot | No | USDOT number of the carrier (most precise). Example: 76830. | |
| name | No | Carrier legal name, used if no DOT/MC number is given. The top FMCSA name match is vetted; prefer a DOT number for an exact carrier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the decision logic: what triggers NO-GO (sanctions match or lack of active operating authority), CAUTION (BASIC alerts, fatal crashes, missing insurance, high out-of-service rates, litigation, unavailable source), and GO (implicitly). It also discloses that it joins multiple data sources and adds a disclaimer that it's analytical aid, not a substitute for own checks. The annotations already indicate readOnlyHint=true, so no contradiction. It doesn't discuss rate limits or performance, but the decision logic is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loads the purpose in the first sentence. It is concise but dense with useful information: input requirements, data sources, decision categories, triggers, and disclaimer. Every sentence earns its place, with no redundant or filler content. It effectively balances thoroughness and brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (aggregating multiple data sources with decision logic), the description is highly complete. It covers all key aspects: what inputs to provide, what data is joined, what outputs (GO/CAUTION/NO-GO with reasons), and critical triggers. It also provides a disclaimer about its use as analytical aid. No output schema exists, but the description sufficiently explains the returned result's nature. No gaps are apparent for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so each parameter already has a description. The tool description adds context: it explains that DOT is most preciseions, MC is used if no DOT, and name is less precise with top match vetted. This enhances the parameter semantics by clarifying preference order and fallback behavior, but it doesn't add extensive new meaning beyond schema. Baseline 3 is appropriate because schema fully covers parameters and description adds limited extra guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the purpose: 'Vet a US motor carrier (trucking company) for a freight-brokerage review, in one call.' It specifies the resource (US motor carrier) and the action (vet), and distinguishes it from siblings like carrier_vetting_batch and carrier_vetting_evidence_pack by noting it returns a decision-support result in one call, while siblings imply batch or evidence pack functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines when to use the tool for a single carrier vetting, and it implicitly differentiates from siblings: 'in one call' suggests the batch version for multiple carriers. It also provides guidance on parameter selection: 'Give a USDOT number, MC number, or carrier name' and notes that DOT is most precise, MC is used if no DOT, and name is last resort with top match vetted. This is explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_case_detailsARead-onlyIdempotentInspect
Get full metadata for a single case by its CAP id (name, citations, court, jurisdiction, decision date, reporter location, and the source URL for its full text).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | CAP case id, e.g. 11301409 (Brown v. Board of Education). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, non-destructive, and open-world. The description adds behavioral clarity by specifying the exact payload fields (name, citations, court, jurisdiction, decision date, reporter location, source URL) and indicating that the full text itself is not returned. No contradiction exists between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence gets straight to the action and resource, with the field list in parentheses. There is no filler or repetition; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only, idempotent lookup with no output schema, the description is complete: it identifies the input and enumerates the expected return fields. An agent can select and invoke the tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage for the single required id parameter, the baseline is 3. The description merely repeats that the lookup is by CAP id and adds no extra format, range, or semantics beyond the schema's example and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get full metadata for a single case by its CAP id.' It enumerates the exact metadata fields returned and clarifies that the full text is only referenced by URL, which distinguishes it from sibling tools like caselaw_opinion_text, caselaw_search, and caselaw_citation_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'single case by its CAP id' gives a clear context for use: an agent should call this when it already has a CAP id and needs the case metadata record. The mention of the source URL for full text implicitly signals that full-opinion retrieval is out of scope, though no sibling tool is explicitly named and no when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_citation_lookupARead-onlyIdempotentInspect
Resolve a reporter citation (e.g. '347 U.S. 483', '347 U. S. 483', '384 U.S. 436') to the case it identifies. Matches official and parallel citations. Returns the case metadata including its CAP id for use with caselaw_opinion_text.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | A reporter citation, e.g. '347 U.S. 483'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior, so the description only needs to add value beyond that. It adds useful behavioral detail: it matches official and parallel citations, tolerates citation variants like '347 U. S. 483', and returns metadata including the CAP id. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the full necessary meaning: purpose, input examples, matching behavior, output, and downstream use. There is no filler, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description is complete: it says what input is expected, what matching behavior occurs, what the return value contains, and how the result connects to caselaw_opinion_text. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single citation parameter with an example, and coverage is 100%. The description enriches the parameter meaning by providing additional format examples and explicitly stating that official and parallel citations are matched, which helps the agent understand acceptable inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Resolve a reporter citation ... to the case it identifies.' It also clarifies that it matches official and parallel citations and returns metadata with a CAP id. It does not explicitly distinguish itself from similar siblings like court_citation_resolver or caselaw_search, though the downstream link to caselaw_opinion_text helps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the intended use case: when an agent has a reporter citation and needs the case identity and CAP id for further caselaw operations. It names the downstream sibling caselaw_opinion_text but does not state when-not-to-use alternatives such as caselaw_search, 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.
caselaw_opinion_textARead-onlyIdempotentInspect
Fetch the full opinion text of a case on demand by its CAP id. Text is retrieved live from the public-domain CAP static mirror (not stored), and includes each opinion (majority, dissent, concurrence) with its author. Use max_chars to bound the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | CAP case id (from caselaw_search / caselaw_citation_lookup). | |
| max_chars | No | Maximum total characters of opinion text (default 50000, max 500000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior. The description adds useful context beyond that: text is 'retrieved live from the public-domain CAP static mirror (not stored)' and includes each opinion type with its author, which helps the agent understand what will happen when invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the core action is front-loaded, followed by data-source behavior, output composition, and a parameter-bound usage note. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with rich annotations, this is largely complete: it identifies the input, source, output content, and response bounding. Minor ambiguity remains about the exact return format or behavior when max_chars is exceeded, but no output schema exists to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both id and max_chars are already documented structurally. The description adds only that max_chars bounds the response and that the id is a CAP case id, which does not significantly extend the schema's own parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetch the full opinion text of a case') and the required identifier ('by its CAP id'), making the core purpose clear. It does not explicitly differentiate from siblings like caselaw_case_details or caselaw_search, though 'full opinion text' and 'CAP id' imply a distinct retrieval role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('on demand by its CAP id' and 'Use max_chars to bound the response'), but it does not explicitly state alternatives or when not to use it. The schema's id description points to caselaw_search/caselaw_citation_lookup as sources, but the description itself offers only implied usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_searchARead-onlyIdempotentInspect
Search US court opinions (Caselaw Access Project, public domain) by case name / keyword, court, jurisdiction, and decision-date range. Returns matching case metadata with CAP ids and citations. Use caselaw_opinion_text with a returned id to read the full opinion. Note: v1 index covers the U.S. Reports reporter (official US Supreme Court reporter).
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court-name fragment, e.g. 'Supreme Court'. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Case name or keyword, e.g. 'Brown Board Education', 'Miranda'. | |
| end_date | No | Optional ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Optional ISO date lower bound (YYYY-MM-DD). | |
| jurisdiction | No | Optional jurisdiction fragment, e.g. 'United States'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds meaningful context beyond those: the data is public domain, results include CAP ids and citations, and the v1 index only covers the U.S. Reports reporter. This is valuable behavioral transparency and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: purpose first, then output and next-step guidance, then a critical scope caveat. It is front-loaded and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what is searched, what is returned, how to retrieve full opinions, and a major index limitation. The schema handles parameter details. It stops slightly short of stating whether at least one search criterion is expected or describing the exact result envelope, but for a search tool with strong 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter already described and exemplified. The description adds a useful high-level grouping of filters and the decision-date range concept, but does not need to compensate for missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: searching US court opinions from the Caselaw Access Project by case name, keyword, court, jurisdiction, and date range. It clearly differentiates itself from the sibling caselaw_opinion_text by describing its metadata output and directing the agent to that sibling for full opinion text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit follow-up/alternative: 'Use caselaw_opinion_text with a returned id to read the full opinion.' It also sets expectation with the v1 U.S. Reports coverage note. However, it does not explain when to prefer other sibling search tools such as caselaw_citation_lookup or court_opinion_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_dataset_queryARead-onlyIdempotentInspect
Generic SoQL query against any data.cdc.gov dataset. Use this when none of the curated tools fit. Accepts a 4x4 Socrata ID and a where-clause. SoQL reference: https://dev.socrata.com/docs/queries/
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| order | No | SoQL order clause (e.g. 'date DESC') | |
| where | No | SoQL where clause (e.g. "state='Texas' AND year=2024") | |
| select | No | SoQL select clause (default '*') | |
| dataset | Yes | Socrata 4x4 dataset ID (e.g. 'muzy-jte6') |
TDQS
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 context that this is an arbitrary SoQL query against any CDC dataset, but does not mention response shape, pagination, or rate-limit behavior. With annotations carrying the safety burden, this is adequate but not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: the generic scope, the usage rule, and the required input format. The SoQL reference link is useful and placed at the end without disrupting the core guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema coverage, strong annotations, and the inherently flexible nature of a generic query tool, the description is largely complete. The SoQL reference helps fill the gap left by no output schema, though it does not describe expected return format or mention how to discover valid dataset IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all five parameters. The description reinforces that dataset is a 4x4 Socrata ID and mentions where-clause support, but adds no meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Generic SoQL query against any data.cdc.gov dataset.' It also distinguishes itself from siblings by positioning itself as the fallback when 'none of the curated tools fit,' making its role in the tool hierarchy clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it when none of the curated tools fit, which is clear contextual guidance. It does not enumerate specific alternative tools or spell out when not to use it, but the generic-vs-curated distinction is 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.
cdc_drug_overdose_deathsARead-onlyIdempotentInspect
CDC drug overdose deaths by state and indicator (9j2v-jamp). 12-month rolling counts. Useful for opioid/fentanyl/stimulant policy research and treatment-program siting.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| indicator | No | Drug class (e.g. 'Opioids (T40.0-T40.4,T40.6)', 'Synthetic opioids, excl. methadone (T40.4)') | |
| state_name | No | Full state name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnly, idempotent, and non-destructive behavior. The description adds useful context with '12-month rolling counts' and the dataset ID, which goes beyond the annotations. It does not mention response format, temporal coverage, or pagination behavior, so it adds some but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, and each one earns its place: identifying the dataset, describing the rolling-count aggregation, and stating practical use cases. There is no filler, redundancy, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with three optional parameters and no required inputs, the description covers the subject, dimensions, aggregation, and intended applications. It is missing explicit details like date range or row contents, but given the simple schema and strong annotations, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters: limit, indicator, and state_name. The description merely restates 'by state and indicator' without adding new parameter-level meaning. This matches the baseline where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as 'CDC drug overdose deaths by state and indicator' and adds the dataset ID (9j2v-jamp), making it distinct from related CDC tools. It lacks an explicit verb like 'returns' or 'provides', but the intent is unmistakable. It differentiates well from siblings such as cdc_weekly_deaths_by_state and cdc_leading_causes_of_death.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides use cases ('opioid/fentanyl/stimulant policy research and treatment-program siting'), which imply when this tool is relevant. However, it does not explicitly state when to use this tool versus sibling CDC tools or mention any exclusions. The guidance is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_excess_deaths_covidARead-onlyIdempotentInspect
CDC excess deaths associated with COVID-19 (xkkf-xrst). Modeled expected vs observed deaths by state and week. Used to estimate true pandemic impact beyond reported COVID deaths.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| state | No | Full state name (e.g. 'Texas') or 'United States' | |
| outcome | No | Outcome (e.g. 'All causes', 'All causes, excluding COVID-19') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the safety burden is covered. The description adds useful context about the data being modeled expected vs observed values, but it does not disclose operational details such as update cadence, response shape, or query limitations. This is adequate but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences each earn their place: the dataset identifier, the data model and granularity, and the intended analytical purpose. There is no filler, repetition of schema content, or unnecessary detail. The key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, read-only tool with fully documented parameters and safety annotations, the description is sufficient for an agent to understand what the tool returns and why it exists. It does not describe output columns or response formatting, but no output schema is provided and the dataset semantics are clear enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents limit, state, and outcome with examples. The description adds the conceptual framing of 'by state and week' but gives no parameter-specific guidance beyond that. The 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific CDC dataset (xkkf-xrst) and explains that it contains modeled expected vs observed deaths by state and week. This distinguishes it from siblings like cdc_weekly_deaths_by_state, which would provide observed death data, and cdc_drug_overdose_deaths. Though no explicit verb like 'get' or 'query' appears, the resource and its content are unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear purpose: estimating true pandemic impact beyond reported COVID deaths. This gives an agent enough context to select this tool over related CDC mortality datasets. It does not explicitly name alternative tools or state when not to use it, but the intended use case is concrete rather than merely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_flu_surveillanceARead-onlyIdempotentInspect
CDC FluView state-level influenza surveillance (vh55-3he6). Returns weekly ILI (influenza-like illness) activity levels per state.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| season | No | Flu season (e.g. '2023-24') | |
| statename | No | Full state name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description's burden is reduced. It adds useful context about scope (state-level, weekly) and the dataset, but does not describe output format, pagination, or behavior with empty filters. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the source and the return value, with no filler and no repetition of schema fields. The dataset ID is useful and unobtrusive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with zero required parameters and full schema coverage, the description is nearly complete. It states what is returned and at what granularity. However, since there is no output schema, it could be slightly clearer about the form of 'activity levels' (e.g., categorical vs. numeric) and default behavior when no filters are supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters at 100% coverage (limit, season, statename). The description does not add meaningful parameter-level detail beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific source and resource ('CDC FluView state-level influenza surveillance') and states a clear action with output ('Returns weekly ILI activity levels per state'). It distinguishes itself from sibling CDC tools by focusing specifically on influenza-like illness, and the dataset ID (vh55-3he6) adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when this tool is relevant: any query about state-level flu/ILI activity. However, it does not explicitly state when to prefer this over siblings such as cdc_dataset_query or cdc_weekly_deaths_by_state, nor does it provide 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.
cdc_leading_causes_of_deathARead-onlyIdempotentInspect
NCHS leading causes of death by state (bi63-dtpu). Returns total deaths and age-adjusted death rates per cause per state per year. Useful for chronic disease + injury mortality research.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year | |
| limit | No | Max rows (default 50) | |
| state | No | Full state name or 'United States' | |
| cause_name | No | Cause name (e.g. 'Heart disease', 'Cancer', 'Suicide') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds useful output-shape context but does not disclose potential operational behaviors such as default scope when filters are omitted, available year range, or valid cause-name list. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are front-loaded with the dataset source and return values, and the closing use-case sentence adds context without clutter. The dataset ID in parentheses is a minor but useful identifier, not wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-filter retrieval tool with no output schema, the description provides the key missing output semantics: rows contain deaths and age-adjusted rates by cause, state, and year. It could add valid cause-name/date-range details, but the 100%-covered schema and read-only annotations make the tool safely invokable with reasonable defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all four parameters at 100% coverage, so the baseline is 3. The description adds value by explaining that results are organized 'per cause per state per year,' clarifying how the optional filters combine into output rows. This goes slightly beyond the one-line schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — the NCHS leading-causes-of-death dataset (bi63-dtpu) — and states the exact returned metrics: total deaths and age-adjusted death rates by cause, state, and year. This makes it easy to distinguish from CDC siblings such as cdc_drug_overdose_deaths or cdc_weekly_deaths_by_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers an implied use case ('useful for chronic disease + injury mortality research') but no explicit when-to-use/when-not-to-use guidance or alternative tool suggestions. Among many CDC siblings, the agent is not told why this tool should be selected over cdc_dataset_query or the other CDC dataset tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_outbreak_reportsARead-onlyIdempotentInspect
CDC NORS foodborne / waterborne / enteric outbreak reports (iezt-77pi). Returns outbreak date, state, etiology, illnesses, hospitalizations, deaths, and implicated food/exposure.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Outbreak year | |
| limit | No | Max rows (default 50) | |
| state | No | Full state name | |
| etiology | No | Causative agent (e.g. 'Salmonella', 'Norovirus', 'E. coli') |
TDQS
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 value by enumerating the returned data fields (date, state, etiology, illnesses, hospitalizations, deaths, exposure), which is especially helpful in the absence of an output schema. It does not disclose pagination or default-limit behavior, but the annotations cover 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence identifies the dataset, scope, and return fields with zero filler. Every word contributes to the agent's ability to understand and invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with four optional parameters and no output schema, the description plus schema covers the essential invocation details: dataset, filters, returned fields, and default limit. It stops short of explaining filtering behavior or result-set expectations, but the tool is simple enough that these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter (year, limit, state, etiology) already having a description in the input schema. The tool description names some of these concepts (state, etiology) but does not add meaning beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (CDC NORS foodborne/waterborne/enteric outbreak reports), the dataset identifier (iezt-77pi), and the exact fields returned. This clearly distinguishes the tool from the many other cdc_* siblings by domain and dataset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by 'CDC NORS ... outbreak reports' and the returned fields, but the description does not explicitly state when to choose this tool over alternatives like cdc_dataset_query or other CDC health datasets. 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.
cdc_vaccination_coverageBRead-onlyIdempotentInspect
COVID-19 vaccination coverage by US county (8xkx-amqh). Returns booster + primary series percentages over time. Useful for public-health gap analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| recip_state | No | Two-letter state code (e.g. 'CA') | |
| recip_county | No | County name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context: the specific Socrata dataset ID (8xkx-amqh), the breakdown of returned metrics, and the time-series nature. However, it does not disclose default scope when no state/county filter is applied or the time window returned, and no contradiction exists 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses front-load the subject, then state the output composition and a use case. Every sentence earns its place; the dataset ID is slightly esoteric but useful for provenance when cross-referencing with cdc_dataset_query.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with all-optional parameters and no output schema, the description covers what is returned. But it leaves gaps: what happens with zero filters (all counties? national aggregate?), what date range is covered, and how 'over time' is represented in the response. These are material for an agent invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — limit, recip_state, and recip_county are all documented in the input schema. The description only hints at county-level granularity ('by US county') and adds no parameter semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear verb+resource: returns COVID-19 vaccination coverage by US county, with explicit output content (booster + primary series percentages over time). This distinguishes it from sibling CDC tools covering flu, overdose deaths, and other indicators, though it doesn't explicitly differentiate from the generic cdc_dataset_query which could query the same dataset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for public-health gap analysis' implies a use case, but there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives. Among many cdc_* siblings, an agent gets no routing help beyond the narrow subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_weekly_deaths_by_stateARead-onlyIdempotentInspect
CDC weekly provisional deaths by state and cause (NCHS dataset muzy-jte6). Returns all-cause and selected-cause death counts per state per ISO week. Useful for excess-mortality and respiratory-disease seasonality analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year (e.g. 2024) | |
| cause | No | Cause category (e.g. 'All Cause', 'COVID-19 (U071, Multiple Cause of Death)', 'Influenza and pneumonia') | |
| limit | No | Max rows (default 50) | |
| state | No | Full state name or 'United States' for national. Default 'United States'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds useful context beyond those: the 'provisional' nature of the data, the NCHS dataset identifier, and the ISO-week granularity. This meaningfully informs the agent about data freshness and structure without contradicting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the dataset source, output semantics, granularity, and intended use cases with no filler. Key information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with all parameters documented in the schema and no required parameters, the description is complete enough for safe invocation. It explains what the tool returns, from which dataset, and what analysis it supports, which compensates for the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description hints at cause categories and state/time granularity, but it does not add much beyond what the schema already documents for year, cause, limit, and state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns all-cause and selected-cause death counts per state per ISO week' from the CDC NCHS dataset. It identifies the exact dataset id (muzy-jte6) and scope, which clearly distinguishes it from sibling CDC tools like cdc_flu_surveillance or cdc_leading_causes_of_death.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for appropriate use: 'excess-mortality and respiratory-disease seasonality analysis.' It does not explicitly name sibling tools to avoid or state 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.
census_businessARead-onlyIdempotentInspect
Business establishments, employment, and annual payroll from County Business Patterns. Optional NAICS industry filter. Used for industry research, competitive intel, supply chain analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| naics | No | Optional NAICS 2017 industry code (2 to 6 digits). E.g. '23' for Construction, '54' for Professional Services. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, non-destructive behavior, lowering the bar for disclosure. The description adds context about the data source and optional NAICS filtering, but does not describe output format, pagination, or geographic parameter dependencies. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core data content and source; the second efficiently explains the optional filter and use cases. Every clause contributes to selection and invocation understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description is somewhat thin: it names the data metrics and domain but does not explain geography-level selection rules, return structure, or units. The schema covers required parameter dependencies, but the overall package relies heavily on the schema to make the tool usable. Description is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics by clarifying that NAICS is an industry filter and that the returned metrics are establishments, employment, and payroll, which helps agents interpret the year and level parameters in context. It does not fully compensate for missing schema-level nuances, but it goes beyond simple duplication.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: business establishments, employment, and annual payroll from County Business Patterns, with an optional NAICS filter. This differentiates it from sibling census tools like census_demographics or census_population, though it lacks a direct verb such as 'get' or 'query' and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful usage context ('Used for industry research, competitive intel, supply chain analysis') but gives no explicit when-to-use vs. alternative guidance, such as 'for demographic data use census_demographics.' The intended use is implied by the data domain rather than clearly contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_commute_employmentARead-onlyIdempotentInspect
Labor force, unemployment, commute times, public transit usage, work-from-home rates for a US geography. Used for site selection, workforce analysis, commercial real estate.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
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 limited behavioral context beyond that, mostly restating topic areas rather than disclosing output shape, limitations, or data-source nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the tool's substance with a list of returned data categories, then add use-case context. There is no filler, redundancy, or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich schema descriptions and annotations, the description covers the essential 'what' and 'when' well. It also lists the return subjects since there is no output schema. Minor gaps remain around output format or precise metric definitions, but they do not prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The tool description adds no parameter-specific guidance beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates the specific data topics (labor force, unemployment, commute times, public transit usage, work-from-home rates) and the geographic scope (US geography), which distinguishes it from sibling census_* tools. It lacks an explicit verb like 'returns' or 'provides', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use contexts: site selection, workforce analysis, and commercial real estate. This helps an agent decide when this tool is relevant, though it does not explicitly state when to use an alternative census tool or call out exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_demographicsARead-onlyIdempotentInspect
Race, ethnicity, and age breakdown for a US geography. Returns counts for white, black, Asian, AIAN, NHPI, other, two-or-more, plus Hispanic/Latino total and median age. Source: ACS 5-year.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
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 useful context by stating the source is ACS 5-year and listing the returned fields, but it does not disclose potential limitations such as data suppression, margins of error, or geography-specific availability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes a compact list of return fields plus the data source. Every sentence adds information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description enumerates the returned counts and median age, which is adequate for a read-only demographic lookup. The schema handles parameter semantics, and the source attribution provides important temporal context, though a note on ACS estimate reliability would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents all 8 parameters with descriptions and an enum for level, so the description does not need to repeat parameter details. The description adds only general geography context, which is insufficient to raise the score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's specific purpose: providing race, ethnicity, and age breakdowns for US geographies. It lists the exact returned metrics and names the data source, making it easily distinguishable from sibling census tools that focus on population, income, or business data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool is relevant: when demographic breakdowns by race, ethnicity, or age are needed. It does not explicitly name alternatives or exclusions, but the detailed output list makes the appropriate use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_geography_lookupARead-onlyIdempotentInspect
Look up Census FIPS codes by name. Supports state name or 2-letter code, ZIP code (5 digits), and (for state) substring matching. Use this to find the FIPS codes needed by other census_* tools.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Optional filter: state, county, zcta, place. | |
| limit | No | Max matches (default 10). | |
| query | Yes | Free-text: state name ('Texas'), state code ('TX'), or 5-digit ZIP ('77301'). |
TDQS
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 useful behavioral context about matching behavior, especially the note that state lookups support substring matching. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what the tool does, what inputs it supports, and why/when to use it. The purpose is front-loaded and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with strong schema coverage and safe annotations, the description is adequate for selection and invocation. The only minor gap is that it does not describe the exact response shape or how ambiguous matches are handled, but no output schema exists and the purpose is simple enough that this is not a serious deficiency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters in detail, including query examples, the level enum, and the limit default. The description adds only minor extra meaning—substring matching for states—so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Look up'), a clear resource ('Census FIPS codes by name'), and enumerates supported query forms. It also distinguishes itself from the other census_* tools by identifying it as the code-finding helper needed before those data tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance: 'Use this to find the FIPS codes needed by other census_* tools.' This tells the agent when to reach for it, though it stops short of explicitly naming alternatives or stating 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.
census_income_housingARead-onlyIdempotentInspect
Median household income, per capita income, housing units, owner vs renter occupancy, median home value, median gross and contract rent for a US geography. Used for real estate AI, market analysis, location-based pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is established. The description adds metric and geography scope but does not disclose operational behavior such as return shape, aggregation, wildcard effects, or lookup defaults. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with front-loaded, specific metric content followed by a short use-case statement. It contains no filler, no repetition of schema details, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all conditional geography parameters and the annotations cover read-only/idempotent behavior, so most invocation requirements are already structured. The description adds the output metrics and use cases, which is valuable because there is no output schema. A small note on how to choose among geography levels would improve it further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a meaningful description including conditional requirements and wildcard usage. The description adds no parameter-specific semantics beyond the general geography scope, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific data domain—household income, per capita income, housing units, occupancy, home value, and rent—for US geographies. This concrete metric list makes the tool's purpose clear and distinguishes it from sibling census tools like census_demographics or census_population without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases ('real estate AI, market analysis, location-based pricing'), which provides useful context. However, it does not compare against sibling census or real-estate tools, nor does it say when not to use this tool, leaving alternative selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_populationARead-onlyIdempotentInspect
Get total population for a US geography (state, county, ZIP/ZCTA, city, census tract, MSA, or national). Returns total, male, female, and median age. Used for market sizing, location intelligence, demographic analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint=false, the description adds meaningful behavioral context by listing the returned metrics (total, male, female, median age) and the supported geography scope. This helps the agent predict what the call will produce without 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words: action and scope first, then return values, then use cases. It is appropriately sized for a data-retrieval tool and front-loads the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core outputs, supported geographies, and typical use cases, which is sufficient given the rich schema and read-only annotations. It could be slightly more complete by explicitly differentiating itself from census_demographics, but an agent can still invoke it correctly with the schema's parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters and their conditional requirements. The description adds little parameter-specific meaning beyond restating geography levels, which are already captured in the level enum and parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get total population for a US geography,' then enumerates all supported geography levels. It also distinguishes itself from sibling census tools by specifying the exact outputs (total, male, female, median age), which clarifies its narrow population-focused scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating it is 'Used for market sizing, location intelligence, demographic analysis.' It does not explicitly name alternative tools or exclusion criteria, but the use cases give an agent enough context to select it over broader census or demographic tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_complaint_aggregationsARead-onlyIdempotentInspect
Aggregate complaint counts by a single facet (product, issue, company, state, company_response, or submitted_via). Useful for ranking companies by complaint volume or finding the most common issue categories.
| Name | Required | Description | Default |
|---|---|---|---|
| facet | Yes | Field to aggregate by | |
| company | No | Optional company filter |
TDQS
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 that results are aggregate counts by a single facet, but it does not disclose output structure, limits, sorting, or other behavioral nuances. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: it opens with a precise statement of what the tool does, enumerates the facet options, and closes with relevant use cases. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only aggregation tool with a complete schema and safety annotations, the description is largely sufficient: it names the facets, describes the output concept (aggregate counts), and gives practical use cases. Since there is no output schema, a slightly more explicit description of the response shape or ordering would make it fully complete, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully, including an enum for facet and a description for company, so schema coverage is 100%. The description reinforces the meaning of the facet parameter by listing valid values and stating the use cases, but it does not add substantial semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Aggregate complaint counts') and enumerates the exact allowed facets, making the tool's function immediately clear. It is clearly distinguishable from sibling tools like cfpb_complaint_detail, cfpb_search_complaints, and cfpb_complaint_trends because it focuses on single-facet aggregation rather than individual records, search, or time trends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases ('ranking companies by complaint volume' and 'finding the most common issue categories'), which gives useful context for when to invoke it. However, it does not explicitly mention alternatives or exclusion conditions, such as when to prefer cfpb_complaint_trends or cfpb_search_complaints instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_complaint_detailARead-onlyIdempotentInspect
Fetch a single CFPB complaint by complaint_id. Returns the full record including narrative if consented.
| Name | Required | Description | Default |
|---|---|---|---|
| complaint_id | Yes | CFPB complaint ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context beyond annotations by disclosing that the full record includes the narrative only 'if consented,' which is a meaningful behavioral caveat for a complaint detail endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The main action and resource are front-loaded, and the conditional narrative detail is stated efficiently in the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-ID lookup tool with safe annotations, the description is largely complete: it names the required parameter, the return type ('full record'), and a key conditional field ('narrative if consented'). It does not describe error/not-found behavior, but that is a minor gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already described as 'CFPB complaint ID.' The tool description adds no additional format, source, or lookup semantics beyond what the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Fetch'), a specific resource ('a single CFPB complaint'), and the lookup key ('complaint_id'). It also distinguishes itself from sibling search/aggregation tools by emphasizing 'single' and 'full record'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear usage context: use this when you have a complaint_id and need the full individual record. It does not explicitly name alternatives or when-not-to-use conditions, so it falls short of a 5, but the intended use is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_complaint_trendsARead-onlyIdempotentInspect
Time-series trends of complaint volume. lens=overview shows total complaints over time; lens=product shows by product; lens=company shows by company; lens=issue shows by issue. Interval can be month, quarter, or year.
| Name | Required | Description | Default |
|---|---|---|---|
| lens | Yes | Trend dimension | |
| product | No | Filter to a specific product | |
| sub_lens | No | Optional sub-dimension | |
| trend_depth | No | Top N to track (default 5) | |
| trend_interval | No | Time bucket size | |
| date_received_max | No | YYYY-MM-DD upper bound | |
| date_received_min | No | YYYY-MM-DD lower bound |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive, so the description does not need to repeat those safety traits. It adds some behavioral context by explaining lens semantics and interval options, but it does not describe output format, default behaviors like trend_depth, or parameter interactions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main purpose is front-loaded, and the lens and interval options are enumerated compactly. Every word contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with seven parameters and no output schema, the description is adequate but leaves gaps. It does not clarify how sub_lens interacts with lens, whether product filters combine with lens=product, or what the returned trend data actually looks like. Schema coverage helps, but sub_lens remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds value beyond the schema by explaining the meaning of each lens enum value and clarifying that interval can be month, quarter, or year. This helps an agent use the most important parameters correctly, though it adds nothing for sub_lens or product filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Time-series trends of complaint volume.' It further specifies what each lens shows, including totals over time and breakdowns by product, company, or issue, which makes it easy to distinguish from sibling complaint tools like cfpb_search_complaints or cfpb_complaint_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the available lenses and intervals, so an agent can infer when to use this tool for time-series trend analysis. However, it does not explicitly state when to prefer this tool over alternatives such as cfpb_complaint_aggregations or cfpb_state_complaints, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_search_complaintsARead-onlyIdempotentInspect
Search the CFPB Consumer Complaint Database (4M+ complaints submitted against financial companies since 2011). Filter by free-text term, company, product, state, date range, and narrative-presence. Returns complaint metadata plus public narratives when available.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Pagination offset (default 0) | |
| size | No | Page size (default 25, max 100) | |
| state | No | Two-letter state code | |
| company | No | Exact company name (use cfpb_suggest_company for fuzzy matching) | |
| product | No | CFPB product category (e.g. 'Credit reporting', 'Mortgage', 'Debt collection') | |
| search_term | No | Free-text search across all complaint fields | |
| has_narrative | No | Only complaints with consumer narratives | |
| date_received_max | No | YYYY-MM-DD upper bound | |
| date_received_min | No | YYYY-MM-DD lower bound |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds useful context about the database's scale, time range, and the availability of public narratives in results, but it does not disclose pagination, rate limits, or other behavioral edge cases beyond what the schema's default/max values already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences front-load the core purpose and resource, then list the filter dimensions and return value. There is no filler or redundant restatement of the tool name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 9 optional parameters and no output schema, the description gives a solid high-level picture of inputs and outputs. However, it does not orient the agent among the many related CFPB sibling tools, such as cfpb_complaint_aggregations, cfpb_complaint_trends, or cfpb_suggest_company, leaving some selection context to the agent's own reasoning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description paraphrases several filters (free-text term, company, product, state, date range, narrative-presence) but adds no new semantic detail beyond what the schema provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Search'), a specific resource (the CFPB Consumer Complaint Database), and the main filtering capabilities. It does not explicitly distinguish itself from sibling tools like cfpb_complaint_aggregations, cfpb_complaint_trends, or cfpb_state_complaints, 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.
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 want raw complaint records matching certain filters. However, it provides no explicit when-not-to-use guidance or direct comparison with alternatives such as cfpb_complaint_aggregations for counts or cfpb_complaint_detail for individual complaint details, leaving the differentiation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_state_complaintsARead-onlyIdempotentInspect
Complaint counts and percentages per US state, with optional product filter and date range. Useful for state-level financial-consumer risk maps.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | Optional product filter | |
| date_received_max | No | YYYY-MM-DD upper bound | |
| date_received_min | No | YYYY-MM-DD lower bound |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds that the output consists of counts and percentages per state, but it does not clarify what the percentages are relative to, how missing states are handled, or how date-range bounds behave. This is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence states the core function and output, and the second provides a concrete use case. Every phrase earns its place 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no required parameters and no output schema, the description gives a reasonable high-level understanding of return values and filters. However, it does not specify the output structure, whether all states are always returned, or how this tool differs from nearby CFPB siblings, leaving some ambiguity for an agent navigating a large tool catalog.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents product, date_received_max, and date_received_min. The description only restates that there is an optional product filter and date range without adding deeper semantics such as allowed product values or date-format constraints beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning complaint counts and percentages per US state, with optional product and date filters. This is specific enough to distinguish it from generic complaint search tools, though it doesn't explicitly name or differentiate from sibling aggregation tools like cfpb_complaint_aggregations or cfpb_complaint_trends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers a clear use case ('state-level financial-consumer risk maps'), which implies when this tool is appropriate. However, it gives no explicit guidance on when not to use it or which sibling tool to prefer for other aggregation styles, such as national or time-series breakdowns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_suggest_companyARead-onlyIdempotentInspect
Auto-complete company names. Returns up to 10 suggestions matching the partial input. Use the results as exact values for cfpb_search_complaints' company parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Partial company name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds behavioral details beyond that: it returns up to 10 suggestions, matches partial input, and produces values suitable for a specific sibling parameter. This is useful context, though it does not reveal ordering, matching rules, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The core behavior and result limit are front-loaded, and the downstream usage note is concise and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter autocomplete tool with strong safety annotations and no output schema, the description provides the essential return-value information (up to 10 suggestions) and integration guidance. It is nearly complete; minor details like whether suggestions are full names or formatted strings could be added, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter 'text' as 'Partial company name' with 100% coverage. The description reinforces the partial-input concept but adds little meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('auto-complete company names') and resource ('company names'), and specifies the output behavior (up to 10 suggestions matching partial input). It also distinguishes itself by pointing to its intended downstream consumer, cfpb_search_complaints, so an agent can tell it apart from complaint-search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context: use this tool to generate exact values for cfpb_search_complaints' company parameter. This effectively tells the agent when and why to use the tool, though it does not explicitly state when not to use it or name alternative suggestion/fuzzy-match tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cftc_cot_compareARead-onlyIdempotentInspect
Compare the latest reported CFTC COT position for two to eight contract markets using one consistent report family, scope, and trader category. Returns stable market codes, exact dates, long/short/net positions, open interest, ranking, and provenance. Use this for 'compare managed-money positioning in oil, gold, and copper' or 'which selected market has the largest commercial net position?'. It compares published aggregates only and does not recommend trades.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Futures-only or futures-and-options-combined view. Defaults to futures_only, except CIT (combined only). | |
| markets | Yes | Two to eight exact CFTC contract codes or unambiguous names. | |
| category | Yes | A category valid for the selected report_type. | |
| report_type | Yes | CFTC report family. Categories differ by family; use search or the evidence pack to discover available families. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 useful behavioral context: it compares published aggregates only, does not recommend trades, and returns provenance. It also notes the CIT exception in the schema (combined only), which is a meaningful behavioral constraint 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the core function and constraints, the second lists return values, the third gives example queries, and the fourth clarifies limitations. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only comparison tool with 100% schema coverage and no output schema, the description is nearly complete. It covers what the tool does, what it returns, example usage, and a limitation. The only minor gap is that it doesn't explicitly state what happens if fewer than two or more than eight markets are provided, but the schema's 'Two to eight' constraint covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds value by clarifying the markets parameter ('Two to eight exact CFTC contract codes or unambiguous names') and the report_type parameter ('Categories differ by family; use search or the evidence pack to discover available families'). It also explains the scope default and CIT exception, which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compare'), a precise resource ('latest reported CFTC COT position'), and a clear scope ('two to eight contract markets using one consistent report family, scope, and trader category'). It also names the return values (stable market codes, exact dates, long/short/net positions, open interest, ranking, provenance), which distinguishes it from sibling tools like cftc_cot_latest and cftc_cot_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit example queries ('compare managed-money positioning in oil, gold, and copper' or 'which selected market has the largest commercial net position?') and states what it does not do ('does not recommend trades'). It also implies when to use it versus siblings by emphasizing comparison across multiple markets, and the schema notes to use search or the evidence pack to discover available families.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cftc_cot_evidence_packARead-onlyIdempotentInspect
Combine all hosted official CFTC COT report-family and scope views available for one contract market into a single provenance-backed evidence pack. Surfaces open interest and the largest absolute reported category net for each view while explicitly preserving incompatible family classifications. Use this for 'build a COT evidence pack for gold' or 'show every CFTC positioning lens for crude oil'. Designed for research synthesis; not real-time data, a forecast, or trading advice.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | Exact CFTC contract market code or contract name. Search first when the name is ambiguous. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/openWorld/idempotent/non-destructive annotations, the description adds useful behavioral context: it surfaces open interest and the largest absolute reported category net per view, preserves incompatible family classifications, and is explicitly not real-time or trading advice. This goes beyond what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler: the first states the core function, the second summarizes output semantics, and the third gives usage examples and caveats. The content is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex aggregation tool with no output schema, the description covers what the pack contains, what metrics are surfaced, and how incompatible classifications are handled. It does not detail the exact response structure, but combined with the schema and annotations it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'one contract market' phrasing aligns with the existing market parameter but does not add substantive meaning beyond the schema, and the response_format parameter is already fully documented by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Combine') and resource (all hosted CFTC COT report-family and scope views for one contract market) and states the output (a provenance-backed evidence pack). It clearly distinguishes itself from the sibling single-view tools like cftc_cot_latest and cftc_cot_history by emphasizing aggregation of all views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use-case examples ('build a COT evidence pack for gold', 'show every CFTC positioning lens for crude oil') and frames the tool as research synthesis, not real-time data or trading advice. It does not explicitly name alternatives or state when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cftc_cot_historyARead-onlyIdempotentInspect
Return a bounded weekly history for one CFTC contract market, report family, scope, and trader category from the self-hosted official snapshot. Includes long, short, spreading, net, changes, percentages, open interest, pagination, source ids, and provenance. Use this for 'managed money net positions in crude oil over time', 'commercial gold COT history', or a reproducible positioning chart. Report-family categories are enforced; not trading advice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum weekly observations. Default 20. | |
| scope | No | Futures-only or futures-and-options-combined view. Defaults to futures_only, except CIT (combined only). | |
| market | Yes | Exact CFTC contract market code or contract name. Search first when the name is ambiguous. | |
| offset | No | Observations to skip. Default 0. | |
| category | Yes | Family-specific category: noncommercial/commercial; producer_merchant_processor_user/swap_dealer/managed_money/other_reportables; dealer_intermediary/asset_manager_institutional/leveraged_funds/other_reportables; or noncommercial_ex_cit/commercial_ex_cit/commodity_index_trader. | |
| end_date | No | Optional latest report date, YYYY-MM-DD. | |
| start_date | No | Optional earliest report date, YYYY-MM-DD. | |
| report_type | Yes | CFTC report family. Categories differ by family; use search or the evidence pack to discover available families. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 beyond that: the result is 'bounded weekly history' with 'pagination', 'source ids', and 'provenance', and warns 'Report-family categories are enforced; not trading advice.' This gives the agent useful expectations about output size, reproducibility, and validation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each earning its place: purpose, return contents, use cases, and caveat. Front-loaded with the core action, then examples and constraints. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description plus fully-covered schema is largely sufficient. It lists return contents, examples, and a validation caveat. The only mild gap is not explicitly routing ambiguous market names to cftc_cot_search_markets, but the schema's market parameter already says 'Search first when the name is ambiguous.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description echoes 'report family, scope, and trader category' and hints at 'bounded' pagination, but adds no parameter-specific details beyond what the schema already documents. It is not misleading but also not compensatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Return a bounded weekly history for one CFTC contract market, report family, scope, and trader category.' The examples ('managed money net positions in crude oil over time', 'commercial gold COT history') make the time-series nature unmistakable. Though no sibling is named, 'bounded weekly history' inherently differentiates it from cftc_cot_latest and cftc_cot_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: time-series positioning questions and reproducible charts. It does not state when NOT to use it or name alternatives (e.g., cftc_cot_latest for the current snapshot, cftc_cot_search_markets to resolve names), but the context is clear enough for an agent to select it for historical queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cftc_cot_latestARead-onlyIdempotentInspect
Return the latest available official CFTC COT position snapshot for one contract market across every hosted report family and scope. Includes open interest, long/short/spreading positions, net arithmetic, percentages, trader counts when published, exact report date, source record ids, and provenance. Use this for 'latest managed-money positioning in crude oil' or 'show current COT categories for gold'. It describes delayed aggregate positions, not a trade signal or recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | Exact CFTC contract market code or contract name. Search first when the name is ambiguous. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 valuable behavioral context by noting the data is 'delayed aggregate positions' and explicitly disclaiming that it is 'not a trade signal or recommendation,' which goes beyond what annotations provide and helps set expectations about the data's nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: the first sentence captures the core function, the second enumerates the data fields, and the third provides usage examples and a behavioral disclaimer. Every sentence earns its place with no redundancy or fluff, and the most important scoping information ('latest', 'one contract market') is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with only two parameters alert, the description is nearly complete. It describes the output contents (open interest, positions, percentages, dates, ids, provenance) and includes usage exampleship. There is no output schema, so the field enumeration is valuable. Minor gaps include not specifying error behavior or how to handle ambiguous market names, but the schema already advises searching first, so the overall context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters fully (100% coverage): 'market' has a clear description and 'response_format' is an enum with defaults. The description itself does not add substantive parameter-level detail beyond what the schema already provides; it mainly gives usage examples rather than explaining parameter semantics. Baseline 3 is appropriate since schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Return'), a distinct resource ('latest available official CFTC COT position snapshot for one contract market'), and a clear scope ('across every hosted report family and scope'). It also lists the included data fields, making the tool's function unambiguous and distinguishing it from siblings like cftc_cot_history or cftc_cot_compare without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage examples ('latest managed-money positioning in crude oil', 'current COT categories for gold') that clearly indicate when to use this tool. It does not explicitly state when not to use it or name alternatives, but the emphasis on 'latest' and 'one contract market' implies boundaries against historical or comparative tools, providing clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cftc_cot_search_marketsARead-onlyIdempotentInspect
Search contract markets in LiveDataLink's self-hosted official CFTC Commitments of Traders snapshot. Returns stable CFTC contract market codes, names, commodity/exchange labels, available report families and scopes, latest date, pagination, and snapshot provenance. Use this for 'find the CFTC code for gold', 'which COT markets cover crude oil?', or to resolve an identifier before a history call. Aggregate US futures and options markets only; not quotes or prices.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum markets. Default 20. | |
| query | No | Commodity, contract, exchange, or exact contract market code. | |
| scope | No | Futures-only or futures-and-options-combined view. Defaults to futures_only, except CIT (combined only). | |
| offset | No | Markets to skip. Default 0. | |
| report_type | No | CFTC report family. Categories differ by family; use search or the evidence pack to discover available families. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive; the description adds valuable behavioral context beyond that, including that it reads a self-hosted official snapshot, returns stable codes, includes pagination and snapshot provenance, and covers only aggregate US futures/options markets. No statement contradicts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences: purpose, return contents, and usage guidance. It front-loads the most important information and every sentence earns its place without redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description lists the key return fields (codes, names, labels, families, scopes, latest date, pagination, provenance) and provides enough context to call the tool correctly. It also ties the search to a downstream history call, covering the typical agent workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and every parameter has a meaningful description with defaults and enum values. The tool description reinforces the use case but does not add syntax-level meaning beyond the schema, 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.
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 ('Search contract markets in LiveDataLink's self-hosted official CFTC Commitments of Traders snapshot') and clearly enumerates what is returned (stable codes, names, commodity/exchange labels, report families, scopes, latest date, pagination, provenance). It differentiates itself by stating it is a lookup/search tool for identifiers and explicitly noting it is 'not quotes or prices.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete example queries ('find the CFTC code for gold', 'which COT markets cover crude oil?') and states the workflow context: 'resolve an identifier before a history call.' It also sets boundaries with 'Aggregate US futures and options markets only; not quotes or prices,' so an agent knows 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.
chemical_hazardsARead-onlyIdempotentInspect
Return the public GHS (Globally Harmonized System) hazard classification for a chemical from the NIH/NLM PubChem database (keyless, public-domain data). Given a chemical name or PubChem CID, it resolves the compound and returns the GHS signal word (Danger/Warning) and the list of GHS hazard statements (e.g. 'H302: Harmful if swallowed'). If PubChem has no GHS classification on file for the compound, that is reported gracefully. This is informational public GHS classification data, not regulatory guidance or a safety data sheet - verify against an official SDS before handling any chemical.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A chemical name (e.g. 'acetone', 'aspirin') or a numeric PubChem CID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive; description adds data source, keyless access, graceful missing-data behavior, and a caveat that results are not an SDS. This complements the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each containing only necessary information: what it returns, how missing data is handled, and a safety caveat. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup, the description covers input format, output content, missing-data behavior, and usage caveat. No important operational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description covers the single 'query' parameter 100%, so baseline is 3. The description repeats the name-or-CID input form but adds no new parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (return), resource (GHS hazard classification), and source (PubChem). The description explicitly names the outputs (signal word and hazard statements), making its purpose unmistakable and distinct from a generic chemical_lookup sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not name an alternative tool, but clearly frames the use case: retrieving public GHS classification data from PubChem. It adds a boundary condition with the SDS disclaimer, telling the agent this is informational and not regulatory guidance, though it doesn't explicitly route to alternates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chemical_lookupARead-onlyIdempotentInspect
Resolve a chemical name (e.g. 'aspirin', 'caffeine') or a PubChem CID to its core identity and physical properties using the NIH/NLM PubChem public database (keyless, public-domain data). Returns the PubChem Compound ID (CID), IUPAC systematic name, molecular formula, molecular weight (g/mol), and the canonical SMILES structure string. Use it to disambiguate a substance and obtain a stable CID join key for further chemistry or safety lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A chemical name (e.g. 'aspirin', 'sodium chloride') or a numeric PubChem CID (e.g. '2244'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds valuable context about the NIH/NLM PubChem public database, keyless access, public-domain data, and the stability of the returned CID. This goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: what it resolves, what it returns, and when to use it. The action is front-loaded and there is no filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with rich annotations and no output schema, the description fully covers the return fields, data source, access model, and primary use case. An agent has sufficient information to select and correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the single parameter and already explains that query accepts a chemical name or numeric PubChem CID. The description repeats those examples but adds no parameter-specific meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Resolve') and a clear resource: chemical names or PubChem CIDs to identity and physical properties. It lists the concrete return fields, making the tool's scope unambiguous. This clarity separates it from sibling chemical_hazards, which is focused on hazard data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it to disambiguate a substance and obtain a stable CID join key for further chemistry or safety lookups. It does not name an alternative sibling tool or give when-not-to-use conditions, so it falls just short of complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clinical_site_selectorARead-onlyIdempotentInspect
One-call clinical-trial-activity + local-specialist-availability read for a medical condition in a US geography - the question a trial sponsor, CRO, or site-feasibility analyst asks before choosing where to run a study. Joins three keyless public sources: ClinicalTrials.gov (exact count of RECRUITING trials for the condition, scoped to the geography and compared to the national total, plus the top lead sponsors and phase mix from the recruiting sample), the NPPES NPI Registry (local specialist availability - how many providers carry a specialty taxonomy relevant to the condition in the area, across physicians and NPs/PAs/pharmacists/RNs in the field), and optionally US Census ACS population context for the state (needs a Census key; degrades gracefully). The condition is mapped to a provider specialty heuristically; pass an explicit 'specialty' to override. Returns a readable brief with a headline banding trial activity (HIGH/MODERATE/LOW/NONE) and specialist availability. A source that fails is noted, not fatal. INFORMATIONAL research / site-feasibility synthesis, NOT medical advice or a directive to enroll in any trial.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city to further localize the trial-location and provider search (e.g. 'Houston'); use with state. | |
| state | No | Optional 2-letter US state to scope trial and provider counts (e.g. 'TX'). Omit for a national read. | |
| condition | Yes | Medical condition / disease to evaluate (e.g. 'melanoma', 'type 2 diabetes', 'Alzheimer disease'). | |
| specialty | No | Optional NPPES specialty taxonomy keyword to override the condition-to-specialty mapping (e.g. 'Cardiology', 'Endocrinology'). |
TDQS
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 description only needs to add behavior beyond those. It does: it names the three keyless sources, explains exact recruiting counts vs. national totals, describes the heuristic condition-to-specialty mapping with an explicit override, notes graceful Census-key degradation, and states that source failures are non-fatal. This is strong behavioral disclosure with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first clause front-loads the core purpose, and the rest is information-dense rather than padded: sources, outputs, failure behavior, and caveats all earn their place. The source enumeration is slightly run-on, but there is no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a complex three-source data aggregation, the description still explains what the agent will receive, including a readable brief with HIGH/MODERATE/LOW/NONE trial-activity banding and specialist availability. It also covers source-failure handling, the Census key prerequisite, and the informational-not-medical-advice boundary, making it complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema: condition is heuristically mapped to a provider specialty, specialty overrides that mapping, city/state scope the trial and provider search, and the Census component is optional and needs a key. This helps an agent choose and combine parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific composite verb+resource: a one-call read of clinical-trial activity plus local specialist availability for a medical condition in a US geography. It clearly identifies the audience and decision context, and it is distinguishable from siblings like trials_search, npi_search_provider, and census_population because it is explicitly a combined site-feasibility synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear and concrete usage context: trial sponsors, CROs, or site-feasibility analysts deciding where to run a study. It does not explicitly name excluded cases or alternatives such as 'use trials_search for raw trial data,' but the intended situation is strongly implied and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_home_health_searchARead-onlyIdempotentInspect
Search Medicare-certified home health agencies from CMS Home Health Compare. Returns agency name, address, services offered, and quality ratings.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the read-only, idempotent, non-destructive nature. The description adds value by disclosing the expected return contents (name, address, services, quality ratings), which is useful because there is no output schema. It does not mention rate limits or auth, but for a simple read-only search tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the core action and resource, then quickly lists the useful output fields. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter search tool, the description is complete: it names the source dataset, the target population, and the return fields. The input schema covers filtering and pagination parameters, and the annotations cover safety and idempotency, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have descriptions in the input schema, so the schema carries full parameter documentation. The tool description adds no additional parameter-level meaning beyond the general search domain, which matches the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and a specific resource ('Medicare-certified home health agencies from CMS Home Health Compare'), and it names the returned data types: agency name, address, services offered, and quality ratings. This clearly distinguishes it from sibling tools like cms_hospital_search or cms_nursing_home_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when this tool is relevant: whenever the user needs Medicare-certified home health agencies from the CMS Home Health Compare dataset. It does not explicitly name sibling alternatives or state when not to use it, so it stops short of a 5, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_hospice_searchARead-onlyIdempotentInspect
Search Medicare-certified hospice agencies from CMS Hospice Compare. Returns provider name, address, ownership, and quality measures.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds scope (Medicare-certified, CMS Hospice Compare) and return-field information, but doesn't disclose operational behavior such as pagination, update cadence, or response structure; that's modest context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main verb and resource are front-loaded, followed immediately by the return content, and every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and four optional parameters, the description usefully names the return categories and source, while the schema fully documents parameter meanings. Nothing needed to select and call the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (limit, state, offset, name_contains) are already documented with clear meanings and defaults. The tool description adds no parameter-specific semantics beyond naming the search resource, so it stays at the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search'), a concrete resource ('Medicare-certified hospice agencies'), and the data source ('CMS Hospice Compare'). It also lists expected return fields, and the hospice-specific wording distinguishes it from sibling CMS facility-search tools without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is inferable from 'hospice agencies' and 'CMS Hospice Compare', but the description never explicitly contrasts it with cms_hospital_search, cms_nursing_home_search, or cms_home_health_search, nor gives when-not-to-use conditions. This is clear implied context rather than explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_hospital_searchARead-onlyIdempotentInspect
Search Medicare-certified hospitals from the CMS Hospital General Information dataset. Returns facility name, address, ownership type, emergency-services flag, and CMS overall star rating (1-5). Filter by state, city, and partial facility-name match.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name (case-insensitive) | |
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral detail beyond that: the specific return fields, the dataset source, and the supported filtering dimensions. It does not mention pagination or rate limits, but for a simple read-only search that gap is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose, then efficiently packs return fields and filter dimensions into a single follow-up sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search with all-optional parameters and no output schema, the description covers the essential facts: the source dataset, the return fields, and the filter criteria. Pagination defaults and exact output structure are left to the schema and general conventions, but those are minor omissions given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents state, city, limit, offset, and name_contains. The description restates state/city/name filters in plain language but adds little semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search Medicare-certified hospitals from the CMS Hospital General Information dataset.' It clearly states what the tool returns and what filters are available. The word 'hospitals' distinguishes it from sibling tools covering home health, hospice, and nursing homes, even without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear operational context: use this search when you need hospitals filtered by state, city, or partial facility name. It does not explicitly name alternative tools or state when not to use it, which keeps it just below a full routing guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_nursing_home_searchARead-onlyIdempotentInspect
Search Medicare-certified nursing homes from CMS Nursing Home Compare. Returns name, address, ownership, certification status, total beds, and quality measures.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, and the description does not contradict them. It adds value by specifying the return payload and the source dataset, which helps an agent anticipate output. It does not describe pagination behavior, but offset and limit are documented in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with roughly 20 words, front-loading the action and resource while every phrase contributes either scope or return information. There is no filler, no repetition of the schema, and no redundancy with annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search with fully documented optional parameters and no output schema, the description is nearly complete: it states the source, target entity type, and principal fields returned. It could explicitly mention pagination or default behavior, but the schema already provides defaults for limit and offset, so no critical invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; all four parameters (limit, state, offset, name_contains) already have meaningful descriptions. The tool description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Search') and a concrete resource ('Medicare-certified nursing homes from CMS Nursing Home Compare'), and lists the returned fields including name, address, ownership, certification status, total beds, and quality measures. This clearly differentiates it from sibling tools such as cms_hospital_search or cms_home_health_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: this tool is for Medicare-certified nursing homes sourced from CMS Nursing Home Compare, so an agent searching for nursing home facilities can identify it. It does not explicitly name alternatives or state when not to use it, but the resource scope is unambiguous and the sibling tool names reinforce the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_accreditationARead-onlyIdempotentInspect
Current institutional accreditation status, accreditor, and (when published by DAPIP) last action date and programmatic accreditations.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID. |
TDQS
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 the useful caveat that last action date and programmatic accreditations are included only when published by DAPIP, giving the agent awareness that these fields may be absent. This is helpful context but not extensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no filler. It front-loads the core purpose ('Current institutional accreditation status') and packs the additional fields and DAPIP caveat efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description covers what data will be returned and the key condition under which some fields are available. Nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter unit_id is already fully described in the schema as 'IPEDS UNITID' (100% schema description coverage). The description does not add further parameter details, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (institutional accreditation) and enumerates the returned data: status, accreditor, last action date, and programmatic accreditations. It does not use an explicit verb like 'gets' or 'returns,' but the intent is unmistakable and it is distinct from sibling college_* tools that focus on search, metrics, or outcomes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus related siblings such as college_search, college_metrics, or college_compare. There are no explicit when-to-use conditions, exclusions, or alternative tool names, so an agent must infer suitability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_compareARead-onlyIdempotentInspect
Side-by-side comparison of 2-5 schools across cost, outcomes, and admissions metrics. Pass UNITIDs.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_ids | Yes | Array of 2-5 IPEDS UNITIDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint, idempotentHint, and destructiveHint annotations already communicate that the call is safe and repeatable, so the description does not need to cover side effects. It adds modest context by naming the comparison dimensions, but it does not disclose return format, output size, or behavior with invalid UNITIDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one front-loaded sentence: the verb and object first, then the scope and metric dimensions, then the input instruction. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with a fully documented schema, the description supplies enough context to identify the tool and invoke it correctly. A small gap is that it does not suggest how to discover UNITIDs (e.g., via college_search) or describe the response format, but neither is required to make a safe call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already gives 100% parameter coverage with 'Array of 2-5 IPEDS UNITIDs.' The description only repeats 'Pass UNITIDs' and adds no extra semantics about how to obtain or format those IDs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'comparison', names the resource ('schools'), and constrains the scope to 2-5 schools and three metric categories. This is enough to distinguish it from college_search, college_metrics, and other single-school sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer that this is the right tool when a user asks to compare multiple schools side by side. It does not name any alternative tool or give a when-not-to-use condition, even though siblings like college_metrics or college_value_score could overlap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_demographicsARead-onlyIdempotentInspect
Student-body demographics for one school: race/ethnicity, gender, age (under/over 25), and geographic origin (in-state, out-of-state, foreign).
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID. |
TDQS
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 useful context about what demographic dimensions are included, but it does not disclose behavior around missing data, invalid unit IDs, or the response format. This is acceptable given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose ('Student-body demographics for one school') and then compactly lists the demographic categories. Every word contributes meaning, with no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup tool with rich annotations and no output schema, this description is largely complete: it names the school identifier, the single-school scope, and the demographic dimensions returned. It does not detail formatting or data source, but these are minor gaps for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the single parameter, unit_id, with a description 'IPEDS UNITID.' The tool description does not add significant parameter-level detail, but none is needed since the schema fully documents the parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as student-body demographics for a single school and enumerates the specific demographic categories covered (race/ethnicity, gender, age, geographic origin). It distinguishes itself from sibling tools like college_compare or college_trends through the 'for one school' scope, though it does not explicitly name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for one school' implies this tool is for retrieving a single institution's demographic breakdown, as opposed to comparing or searching across schools. However, it does not explicitly state when to use this tool over siblings like college_metrics or college_compare, nor does it provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_metricsARead-onlyIdempotentInspect
Cost and outcome metrics for one school: published tuition (in-state and out-of-state), average net price, six-year graduation rate, first-year retention, median earnings ten years after entry, admission rate, and SAT/ACT ranges.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID (Scorecard 'id'). |
TDQS
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 well covered. The description adds the list of returned metrics, which is useful, but does not disclose behavioral details such as data source, update frequency, or handling of missing metrics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the tool's purpose ('Cost and outcome metrics for one school') and then lists the specific metrics. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with rich annotations and no output schema, the description works as a de facto output contract by naming every metric returned. It lacks caveats around data availability, but nothing essential seems missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with unit_id documented as the IPEDS UNITID (Scorecard 'id'). The tool description does not need to add parameter semantics, and it does not attempt to; the schema adequately carries this information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning cost and outcome metrics for a single school, and enumerates the specific metrics included. It differentiates from broader sibling tools like college_trends and college_compare by scoping to 'one school,' though it does not name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need tuition, graduation, earnings, admission, or SAT/ACT metrics for one institution. However, there is no explicit guidance on when to prefer it over related sibling tools such as college_compare, college_demographics, or college_value_score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_outcomes_by_programARead-onlyIdempotentInspect
Program-level outcomes (4-digit CIP code) for one school: median earnings one year after completion, median debt at completion, and award counts.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful semantic detail about the metrics ('one year after completion', 'at completion') but does not disclose other behavioral traits such as whether all programs are returned, how missing data is handled, or the response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence with no filler. It front-loads the resource and scope before enumerating the returned metrics, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description provides the essential return-value details: earnings, debt, and award counts at program level. It could be slightly clearer that the tool returns data for all programs for the given school rather than requiring a CIP-code input, but the schema plus description are sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, unit_id, is fully described in the schema as an IPEDS UNITID, so schema coverage is 100%. The description does not add additional parameter-level meaning, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely identifies the resource (program-level outcomes), the granularity (4-digit CIP code), the scope (one school), and the specific measures returned (median earnings, median debt, award counts). This clearly distinguishes it from sibling tools like college_metrics or college_value_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Program-level outcomes ... for one school' provides clear context for when to use this tool: when a caller needs earning, debt, or award-count metrics broken down by program. It does not name alternative tools or give explicit when-not-to-use guidance, but the scope and granularity are evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_searchARead-onlyIdempotentInspect
Search US colleges and universities by name, state, control type, size, or accreditor. Returns matching institutions with location, control, predominant degree, and enrollment.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Substring of the institution name. | |
| size | No | Carnegie size bucket. | |
| limit | No | Max results, 1-100. Default 25. | |
| state | No | Two-letter state code (e.g. TX). | |
| control | No | Institutional control. | |
| accreditor | No | Substring match against the school's institutional accreditor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds useful behavioral context by specifying the return content — matching institutions with location, control, predominant degree, and enrollment — which is especially valuable given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no wasted words. The search scope and filters lead, and the return content follows. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only search tool with no required parameters and fully documented schema fields, the description covers what it searches, what filters are available, and what comes back. The absence of an output schema is compensated by the description's explicit return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description merely recaps the filter attributes without adding new detail about matching behavior, value formats, or combination semantics, so it earns the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search US colleges and universities') and lists the available filter dimensions, making the tool's purpose clear. It does not explicitly name or contrast sibling tools like college_accreditation or college_compare, but the general lookup scope is evident from the resource and return fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the general-purpose college search tool — use it to find institutions by name, state, control, size, or accreditor. It provides no explicit guidance on when to prefer a sibling tool such as college_accreditation or college_outcomes_by_program, leaving the choice mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_trendsARead-onlyIdempotentInspect
Multi-year trend for one school sourced from the Urban Institute Education Data Portal (IPEDS). Choose a metric (enrollment, graduation_rate, retention, cost) and a year range.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | Yes | Trend metric. | |
| unit_id | Yes | IPEDS UNITID. | |
| end_year | Yes | Last academic year, e.g. 2022. | |
| start_year | Yes | First academic year, e.g. 2010. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds beyond the annotations by specifying the data source (Urban Institute Education Data Portal/IPEDS) and the single-school scope, which is useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core purpose and source, then lists the parameter choices and range selection, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations, complete parameter schema, and simple read-only nature of the tool, the description is largely sufficient for selection and invocation. However, there is no output schema and the description does not describe the response format or behavior for unavailable data, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter already described, including the metric enum and year examples. The description simply restates the metric names and 'year range' without adding deeper semantic meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a multi-year trend for one school and identifies the data source and available metrics. It is specific enough to distinguish from college_search and college_compare, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by saying 'for one school' and instructing the user to choose a metric and year range. It does not, however, explicitly state when not to use it or point to alternatives such as college_compare for comparisons or college_metrics for other metric views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_value_scoreARead-onlyIdempotentInspect
One-call 'is this degree worth the cost' read for a US college (and optionally a named program). Joins the College Scorecard / IPEDS education domain (average net price, six-year completion rate, median earnings ten years after entry, and - when a program is named - program-level median debt and 1-year earnings) with a keyless BLS wage context (CES average hourly earnings, annualized) to place those earnings against the broad US private-sector wage. Returns a plain read - STRONG VALUE / FAIR / WEAK VALUE / INSUFFICIENT DATA - with the cost-vs-earnings evidence itemized and each sub-signal scored. A source that fails is noted, not fatal. Premium cross-source synthesis; Scorecard earnings cover federally-aided students only and lag by years. Informational only, not admissions, financial, or career advice.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate the school name (e.g. 'OH'). | |
| college | Yes | US college/university name (e.g. 'University of Michigan', 'Ohio State University'). | |
| program | No | Optional program name or CIP prefix (e.g. 'Nursing', 'Computer Science') to add program-level debt-vs-earnings evidence. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent, and the description adds meaningful behavior beyond that: it tolerates source failures ('noted, not fatal'), emits an INSUFFICIENT DATA category, and discloses data caveats (federally-aided students only, earnings lag by years). This matches and enriches the annotations; 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, and every sentence adds substantive content: data sources, output categories, fault tolerance, caveats, and disclaimer. The only marginal phrase is 'Premium cross-source synthesis,' and the paragraph is dense but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description itemizes the four possible verdicts, the evidence structure, and source-failure behavior. Combined with full schema documentation, an agent has enough to call and interpret the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters at 100% coverage, so the baseline is 3. The description adds value by explaining that naming a program adds program-level median debt and 1-year earnings, which provides semantic meaning beyond the schema's field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb/resource: a one-call 'is this degree worth the cost' read for a US college, optionally a named program. It clearly distinguishes itself from siblings like college_search, college_compare, and college_metrics by describing a graded verdict output (STRONG VALUE / FAIR / WEAK VALUE / INSUFFICIENT DATA) and cross-source synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case—quick value assessment for one college—and warns 'Informational only, not admissions, financial, or career advice.' However, it never names sibling tools or states when to choose this over college_compare, college_metrics, or college_outcomes_by_program, so usage guidance is only implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_complaint_profileARead-onlyIdempotentInspect
One-call CONSUMER-RISK read for a company or brand, LED by the consumer-complaint picture. Joins three public-record legs, CFPB first: CFPB Consumer Complaint Database (complaint volume for the company plus the top complaint products and issues - the primary signal), product recalls (CPSC consumer products + openFDA drug/device/food enforcement, keyed by the company), and federal-court litigation (CourtListener dockets whose caption actually names the company). Returns a rolled-up read (LOW / MODERATE / ELEVATED consumer-risk signals) that leads with complaint volume and the top complaint products/issues, then folds in recall count and severity (FDA Class I / death-related = high) and litigation hits (total + last-3-years). A leg that fails is noted, not fatal. This is consumer-complaint-centered and distinct from product_liability_screen (recall/litigation-centered for manufacturers). NHTSA vehicle recalls need a specific year+make+model so are out of scope here (use recall_screen for a vehicle). Premium cross-source synthesis; informational public-record synthesis, NOT legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Optional lower-bound date (YYYY-MM-DD) for FDA recalls. | |
| state | No | Optional 2-letter state to scope the CFPB complaint leg (e.g. 'CA'). | |
| company | Yes | Company or brand name to profile (e.g. 'Wells Fargo', 'Peloton'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lowered. The description still adds substantial behavioral context: it joins three public-record legs, notes that a failed leg is 'noted, not fatal,' explains the rolled-up risk output, and clarifies the weighting of FDA Class I/death-related recalls. This far exceeds annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause adds operational value: the lead sentence defines scope, then it itemizes data sources, output structure, failure handling, sibling distinctions, scope exclusions, and a disclaimer. Nothing is redundant; the structure is front-loaded with the core purpose and then layers detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explains the return shape in concrete terms: LOW/MODERATE/ELEVATED risk read, complaint volume, top products/issues, recall count with FDA Class I/death severity, and litigation hits total + last-3-years. It also covers failure behavior and clarifies this is informational and not legal advice. An agent has enough to call it and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents company, since, and state fully. The description does not add much parameter-specific meaning beyond naming the company/brand focus and mentioning that 'since' applies to FDA recalls. Baseline 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'One-call CONSUMER-RISK read for a company or brand, LED by the consumer-complaint picture.' It clearly differentiates itself from product_liability_screen and recall_screen, and specifies the exact data legs involved. An agent can immediately understand what this tool does and how it differs from nearby siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names alternatives and provides exclusion criteria: 'This is consumer-complaint-centered and distinct from product_liability_screen' and 'NHTSA vehicle recalls need a specific year+make+model so are out of scope here (use recall_screen for a vehicle).' This gives the agent actionable routing guidance without needing to inspect other tool definitions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_infoARead-onlyIdempotentInspect
Get company profile and financial fundamentals. Returns sector, industry, employee count, business description, revenue, gross profit, EBITDA, profit margins, EPS, P/E ratio, forward P/E, dividend yield, beta, market cap, and shares outstanding. Use this for "tell me about Apple", "what does this company do?", "company financials", "what sector is Netflix in?", "how many employees does Tesla have?", or any company research question.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol (e.g., "AAPL") |
TDQS
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 the return field list, which is useful in the absence of an output schema, but it does not disclose failure behavior, data coverage limitations, or whether fields can be null for some companies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then a compact field list, then example queries. Every sentence earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with no output schema, the field list and example queries give an agent enough context to call it correctly and interpret the result. A minor gap is the lack of caveats about data availability or symbol validation, but these are not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter symbol is already documented as a stock ticker example ('AAPL'). The description reinforces this with Apple, Netflix, and Tesla examples but does not add meaningful parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Get company profile and financial fundamentals.' It then enumerates the exact returned fields and provides concrete example queries (e.g., 'tell me about Apple', 'what sector is Netflix in?'), distinguishing this tool from sibling tools like stock_quote or company_complaint_profile by its broad company-research scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases and example prompts, making it easy for an agent to route questions like 'how many employees does Tesla have?' to this tool. However, it does not explicitly say when not to use it or name alternatives such as stock_quote for price-specific queries, 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.
company_trust_checkARead-onlyIdempotentInspect
One-call public-record trust read for a company - answers 'can I trust this company?' for KYB/vendor-diligence agents. Joins the LiveDataLink sources that carry a legitimacy or risk signal into a single standing read: an OFAC SDN / EU / UN / BIS sanctions screen (a hit is decisive), SEC EDGAR registration plus the latest filing date (legitimacy + recency), USAspending federal award history (the US government transacts with them), and EPA ECHO facility compliance (significant-non-compliance, penalty, and non-compliant-quarter flags). Returns a plain-English verdict band (ESTABLISHED PUBLIC-RECORD STANDING / STANDING WITH FLAGS / LIMITED FOOTPRINT / SANCTIONS SCREEN HIT), the positive signals, the flags to review, and the resolved identifiers. A source that fails is noted, not fatal. This is a public-record SIGNAL read, not a credit report, background check, or endorsement: absence of a record is not proof of wrongdoing and a match is not proof of guilt. Premium cross-source synthesis.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate the EPA facility search. | |
| ticker | No | Optional stock ticker hint to pin the SEC EDGAR match (e.g. 'LMT'). | |
| company | Yes | Company or organization name to check (e.g. 'Lockheed Martin', 'Acme Widgets LLC'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, openWorld, idempotent, and non-destructive hints. The description adds meaningful behavioral context beyond those hints: a sanctions hit is decisive, failing sources are noted but not fatal, and the read returns a verdict band plus signals, flags, and identifiers. It also clarifies the interpretative limits of absence and match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but front-loads the purpose and uses each sentence for a distinct job: scope, sources, output, failure behavior, caveats, and positioning. A few phrases like 'premium cross-source synthesis' add limited value, but there is no wasteful repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description explains exactly what the caller receives: a verdict band, positive signals, flags to review, and resolved identifiers. It also covers source-failure handling and interpretive caveats, so combined with the parameter schema and annotations, the agent has enough context to invoke and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters company, state, and ticker are already documented. The description does not add new parameter-level details beyond connecting the overall tool to its data sources; it stays at the baseline of relying on the schema for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a specific verb and resource: a one-call public-record trust read for a company, explicitly answering 'can I trust this company?' for KYB/vendor-diligence agents. It names the exact data sources joined and the verdict bands returned, making the tool's scope unmistakable and distinct from generic company-info or sanctions tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clearly stated (KYB/vendor-diligence trust questions) and the description adds exclusions: it is not a credit report, background check, or endorsement, and absence of a record is not proof of wrongdoing. It does not name a specific sibling tool as the alternative, but the context and boundaries are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_bill_actionsARead-onlyIdempotentInspect
Get the chronological legislative action history for one bill (introductions, committee referrals, votes, becoming law). Requires Congress number, bill type, and bill number.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max actions (default 50). | |
| congress | Yes | Congress number. | |
| bill_type | Yes | Bill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres. | |
| bill_number | Yes | Bill number. |
TDQS
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 by saying the output is chronological and includes introductions, committee referrals, votes, and law status, but it does not disclose response shape, pagination behavior, or other limits beyond what annotations and schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core purpose, content examples, and required parameters with no filler. The main action is front-loaded, and every sentence adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only one-bill lookup, the description covers what the tool returns, the scope, and the prerequisites. It does not describe return value shape explicitly, but the action-history examples sufficiently communicate expected output for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter already has a meaningful description, including expanded enum labels. The description only repeats the required parameter names ('Congress number, bill type, and bill number') without adding new semantic detail, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('chronological legislative action history') scoped to 'one bill'. It clearly distinguishes this from siblings like congress_bill_details, congress_bill_cosponsors, and congress_house_votes by naming a distinct bill-action-history resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a caller has a specific bill (Congress number, bill type, bill number) and needs its action history. It does not explicitly name alternatives or exclusions, but the 'for one bill' scope gives clear context against search-style siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_bill_cosponsorsARead-onlyIdempotentInspect
List the cosponsors of one bill with their party and state. Useful for mapping coalitions behind legislation. Requires Congress number, bill type, and bill number.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max cosponsors (default 250). | |
| congress | Yes | Congress number. | |
| bill_type | Yes | Bill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres. | |
| bill_number | Yes | Bill number. |
TDQS
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 cosponsors come with party and state and that the tool requires Congress number, bill type, and bill number, but it does not disclose additional behavioral details such as pagination, default limits, or error behavior. With annotations carrying the main burden, a mid score 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core action is front-loaded, followed by the use case and required parameters, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with fully documented parameters, the description covers the purpose, return content, and required inputs. It does not explicitly mention the optional limit parameter, but that is already documented in the schema, so the overall information is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters including the enum values for bill_type and the default for limit. The description merely restates that Congress number, bill type, and bill number are required, adding no semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('cosponsors of one bill'), and it names the returned fields ('party and state'). This makes the tool's purpose immediately distinguishable from sibling congressional tools like congress_bill_actions or congress_bill_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('mapping coalitions behind legislation') and states the required inputs. It does not explicitly name alternatives or exclusion conditions, but the intended context is clear enough for an agent to know when this tool is relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_bill_detailsARead-onlyIdempotentInspect
Get full detail for one bill, including title, sponsor, latest action, policy area, and a cosponsor party breakdown. Requires the Congress number, bill type, and bill number (e.g. 118, 'hr', 3076).
| Name | Required | Description | Default |
|---|---|---|---|
| congress | Yes | Congress number, e.g. 118. | |
| bill_type | Yes | Bill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres. | |
| bill_number | Yes | Bill number, e.g. 3076. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive, covering the safety profile. The description adds useful context about what fields are returned and requires the three identifying inputs, but it does not disclose edge-case behavior such as missing bills or rate limits. This is acceptable but not exceptional for a simple lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states purpose and expected output fields, the second states the required parameters with a concrete example. Everything in the description earns its place and is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only lookup, the description plus fully covered schema is nearly complete: it lists output contents, required inputs, and a concrete example. The only minor gap is the lack of explicit routing guidance relative to related congress bill tools, but correct invocation is not hindered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter—congress, bill_type, and bill_number—already has a clear description with enum values for bill_type. The description's example (118, 'hr', 3076) adds a small formatting confirmation but no substantive new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get full detail for one bill') and enumerates the exact fields returned: title, sponsor, latest action, policy area, and cosponsor party breakdown. This clearly differentiates it from search-style siblings and from more narrowly scoped tools like congress_bill_actions or congress_bill_cosponsors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case—when a specific, known bill's comprehensive details are needed—and states the required identifiers. It provides no explicit guidance about when not to use it or which sibling tool to use instead, so an agent must infer routing from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_house_votesARead-onlyIdempotentInspect
List recent U.S. House roll-call votes for a Congress, with vote number, question, result, and date. Defaults to the current Congress.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max votes (default 20). | |
| congress | No | Congress number (default current, 91). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool is read-only, idempotent, and non-destructive. The description adds that results include vote number, question, result, and date, and that the congress parameter defaults to the current Congress. It does not specify ordering or pagination beyond limit, but that is a minor gap given the read-only profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the verb and resource, then packs a compact field list and default behavior. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list with two optional parameters, the description plus schema covers input and expected output fields. The absence of an output schema is partially mitigated by listing returned fields; ordering and pagination semantics remain unspecified but are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so defaults and meaning of limit and congress are already documented. The description only restates the current-Congress default and does not add format or syntax details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('List') on a specific resource ('U.S. House roll-call votes') and names the returned fields. The tool is clearly distinct from sibling Congress tools such as bill details or recent laws.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary use case explicit: retrieving recent House roll-call votes, optionally filtering by Congress and limit. It does not explicitly name alternatives or exclusions, but there is no overlapping sibling tool for roll-call votes, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_member_detailsARead-onlyIdempotentInspect
Get detailed profile for one member of Congress by bioguide ID (e.g. 'P000197'), including party history, terms served, and leadership roles.
| Name | Required | Description | Default |
|---|---|---|---|
| bioguide_id | Yes | Bioguide ID, e.g. 'P000197'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and non-destructive, so there is no safety contradiction. The description adds useful behavioral context by listing what the profile includes (party history, terms served, leadership roles), which is especially valuable because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb and resource, then the ID format example and returned content. Every clause adds information; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only lookup with no output schema, the description gives the agent everything essential to invoke it correctly: required ID, an example, and the shape of the result. It does not mention error behavior or how to obtain an ID, but that is not essential for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the schema already describes bioguide_id and provides the same example. The description repeats the example but adds no further semantic detail, so the schema carries the burden and 3 is the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') and resource ('detailed profile for one member of Congress'), and clearly identifies the key identifier (bioguide ID) with an example. It distinguishes itself from sibling search tools like congress_search_members by indicating this is a single-member detail lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the right use case: use when you already have a bioguide ID and want a single member's detailed profile. It does not explicitly name alternatives or exclusions, such as using congress_search_members to first find the bioguide ID, so it stops short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_recent_lawsARead-onlyIdempotentInspect
List bills that have become public or private law in a given Congress. Defaults to the current Congress. Use law_type 'pub' for public laws or 'priv' for private laws.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20). | |
| congress | No | Congress number (default current, 91). | |
| law_type | No | Law type: 'pub' or 'priv'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive nature of the tool. The description adds the default-to-current-Congress behavior and law_type semantics, but does not disclose ordering, recency bounds, or other behavioral details beyond the schema. This is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences carry the full purpose, default behavior, and parameter instructions. No filler or redundancy; the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only listing tool with rich annotations and a fully described schema, the description is complete enough for correct invocation. It does not describe the return format, but the absence of an output schema and the simplicity of the tool make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description reinforces the meaning of law_type ('pub' for public laws, 'priv' for private laws) and the default congress, but adds little beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List bills that have become public or private law') and the resource scope ('in a given Congress' or current Congress). This distinguishes it from sibling tools like congress_search_bills or congress_bill_details by focusing specifically on enacted laws, not bills in progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: defaults to the current Congress and instructs how to choose law_type. It does not explicitly name alternatives or state when not to use the tool, but the context is sufficient for an agent to choose it correctly for listing enacted laws.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_search_billsARead-onlyIdempotentInspect
Search or list recent U.S. federal bills and resolutions from Congress.gov. Returns the most recently updated bills, optionally scoped to a Congress number or filtered by a free-text query. Use this to find legislation by topic or to see what is currently moving.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order, e.g. 'updateDate+desc' (default) or 'updateDate+asc'. | |
| limit | No | Max results (1-250, default 20). | |
| query | No | Optional free-text keyword filter (e.g. 'inflation', 'semiconductor'). | |
| offset | No | Pagination offset. | |
| congress | No | Congress number (e.g. 91 is current). Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context by stating that results are 'the most recently updated bills' and are optionally scoped/filtered, but it does not disclose additional traits like pagination behavior or response structure beyond what the schema already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by return behavior and a concrete use case. Minor redundancy exists between 'recent... bills and resolutions' and 'most recently updated bills,' but overall every sentence contributes useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search/list tool with fully documented parameters, the description is adequate: it states the resource, the result focus, the optional filters, and the intended use. No output schema exists, so a bit more detail about the response shape could improve completeness, but the description covers the essential selection and invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters already have meaningful descriptions. The tool description lightly echoes the query and congress parameters but adds no new semantic 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb and resource: 'Search or list recent U.S. federal bills and resolutions from Congress.gov.' It further narrows the purpose with 'most recently updated bills' and explains the use case as finding legislation by topic or seeing what is currently moving, which distinguishes it from sibling tools like congress_bill_details or congress_recent_laws.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context for when to use the tool: 'Use this to find legislation by topic or to see what is currently moving.' However, it does not state exclusions or explicitly mention alternatives, such as using congress_bill_details for a specific bill's full record or congress_recent_laws for enacted laws.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_search_membersARead-onlyIdempotentInspect
Search members of Congress, optionally filtered by Congress number, two-letter state, and district. Returns name, party, chamber, and bioguide ID (use that ID with congress_member_details).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20). | |
| state | No | Two-letter state code, e.g. 'TX'. | |
| congress | No | Congress number. | |
| district | No | House district number. | |
| current_member | No | Limit to currently-serving members. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds behavioral value by specifying the exact output fields (name, party, chamber, bioguide ID) and the downstream use of the ID, which is helpful given there is no output schema. It does not mention pagination or ordering, but this is a minor omission for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the action and filters are up front, return values are stated next, and the cross-reference is last. Every clause earns its place 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with no required parameters and a fully described input schema, the description covers the search filters, the return fields, and the natural next step (congress_member_details). The lack of an output schema is partially compensated by the explicit return field list, though details like pagination or result count are not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters and their types. The description restates the filtering semantics for Congress, state, and district but adds no new meaning beyond that; it omits the limit and current_member parameters entirely. A 3 is the appropriate baseline when 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and resource ('members of Congress'), and enumerates the optional filters and return fields. This clearly distinguishes it from congress_search_bills and congress_member_details, so an agent can tell what the tool is for without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear use case: searching members by optional filters rather than retrieving details for a known member. It also gives a concrete routing hint by saying the returned bioguide ID should be used with congress_member_details. It does not explicitly exclude bill searches or other sibling tools, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corporate_ownership_treeARead-onlyIdempotentInspect
One-call FULL corporate-ownership tree for a company from GLEIF (keyless CC0 reference data). Give a company name or a 20-character LEI; the tool resolves the entity, climbs to its ULTIMATE parent (top of the ownership chain), then walks DOWN from that root to list the reported direct subsidiaries plus one level of grand-subsidiaries, each with its LEI, jurisdiction, and status (entity ACTIVE/INACTIVE + LEI registration ISSUED/LAPSED). The queried entity is marked in the tree so you can see where it sits. Distinct from resolve_entity, which returns the ultimate parent plus a subsidiary COUNT only: this returns the actual subsidiary LIST/tree for M&A, diligence, and counterparty mapping. The tree is capped (about 25 nodes) so a broad conglomerate stays bounded, with an 'and N more' note where GLEIF reports additional subsidiaries. Only relationships an entity self-reports to GLEIF are shown, so coverage varies by company. A failing hierarchy hop is noted, not fatal. Informational public-record synthesis; verify against GLEIF before relying on it.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Optional exact 20-character LEI code to anchor the tree directly (e.g. '5493006MHB84DD0ZWV18'). Overrides a name search. | |
| company | No | Company / organization name (e.g. 'Alphabet Inc.', 'JPMorgan') or a 20-character LEI code. Provide this or 'lei'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite strong annotations (read-only, non-destructive, open-world), the description adds substantial behavioral context: the tree is capped at ~25 nodes, extra subsidiaries appear as an 'and N more' note, failing hierarchy hops are noted rather than fatal, and results are self-reported public-record data that should be verified. These details inform the agent about edge cases and data reliability beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: it covers the tool's core behavior, algorithm, edge cases, data caveats, and differentiation from a sibling. The most important information is front-loaded, and the structure follows a logical flow from what it does, to how it works, to limitations and verification advice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tree-building tool with no output schema, the description is remarkably complete. It explains the resolution flow, the ultimate-parent-and-descend approach, the returned fields (LEI, jurisdiction, status), how the queried entity is marked, the node cap, and the self-reporting limitation. An agent has enough context to invoke the tool correctly and interpret its results appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both 'company' and 'lei' are already documented fully in the input schema. The description repeats the name-or-LEI option and notes that LEI overrides name search, but this is also present in the schema. It adds no meaningful semantic detail beyond what the schema already conveys, 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.
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 ('One-call FULL corporate-ownership tree') and immediately identifies the data source (GLEIF). It clearly distinguishes itself from resolve_entity, which returns only an ultimate parent and count, while this tool returns the actual subsidiary list/tree. This leaves no ambiguity about what the tool does or how it differs from a near-named sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('for M&A, diligence, and counterparty mapping') and contrasts it with resolve_entity, which returns less information. It also explains the input alternatives (company name or 20-character LEI) and the key caveat that coverage is limited to self-reported relationships. This gives sufficient routing guidance without needing to inspect sibling tool schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cost_of_doing_business_indexARead-onlyIdempotentInspect
One-call comparative 'cost of operating a business here' read for a US state (with optional metro context). Joins three independent public sources, each a real operating-cost dimension expressed RELATIVE to the US national average (national = 1.00) so the result is a readable, comparable index: LABOR cost from BLS QCEW private-sector average annual pay across all industries (keyless), ENERGY cost from EIA retail electricity price for the commercial and industrial sectors (state vs national), and local CONTEXT from US Census ACS median household income, per-capita income, and median gross rent (needs a Census key; degrades gracefully). Returns a headline relative-cost banding (LOW / MODERATE / HIGH cost vs national) from a labor-weighted composite of the labor and energy indices, with each dimension's numbers and its own banding shown. Labor and energy are state-level; a supplied metro refines the context leg and label only. A source that fails is noted, not fatal. Informational, not a guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| metro | No | Optional 5-digit CBSA/metro code (e.g. '12420' for Austin, TX) to refine the Census local-context leg and the label. Labor and energy remain state-level. | |
| state | Yes | US state as a 2-letter code (e.g. 'TX', 'CA', 'NY') or 2-digit FIPS (e.g. '48'). Required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations by disclosing source composition, key requirements (Census key needed, BLS keyless), graceful degradation when a source fails, state-level vs metro-level scope, and the 'informational, not a guarantee' caveat. It also explains the composite banding logic. This is rich, non-redundant behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, every sentence earns its place: headline purpose, source methodology, output format, scope limitations, failure behavior, and disclaimer. The most important information is front-loaded, and the structure is logical and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain what the caller can expect to receive. It does: a headline LOW/MODERATE/HIGH banding from a labor-weighted composite, per-dimension numbers and bandings, and graceful handling of source failures. Nothing essential for selecting or invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters well. The description mainly restates what the schema says about metro refining the Census context leg and labor/energy staying state-level; it adds no new parameter-level meaning beyond the existing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'One-call comparative cost of operating a business here read for a US state (with optional metro context).' It clearly identifies the tool's unique domain and distinguishes it from neighboring economic, census, and energy tools by specifying that it joins labor, energy, and local-context sources into a comparative index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: a single-call comparative cost-of-business read for a US state, optionally refined by metro. It does not explicitly name alternatives or exclusions, such as when to prefer a more specialized BLS/EIA/census tool, 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.
counterparty_risk_scoreARead-onlyIdempotentInspect
Compute a composite 0-100 Counterparty Risk Score for a company name. Combines findings from sanctions screening (OFAC/UN/EU/BIS), SEC EDGAR (registered-filer signal), federal courts (litigation history), EPA ECHO (environmental enforcement), and USAspending (federal contract vetting) into a single weighted metric with an explainable evidence chain. Returns: score, risk band (clean/low/moderate/elevated/high/critical), itemized evidence with citations, sources queried, sources that failed, and a plain-text summary suitable for an AI agent to surface to a user. Sanctions hits zero the score regardless of other signals. Use this when you need a single-call counterparty risk verdict instead of stitching five separate queries.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Company or entity name to score. Examples: 'Lockheed Martin', 'Acme Holdings BV', 'Pfizer Inc'. Common suffixes (Inc/LLC/Ltd/Corp) are normalized automatically. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/idempotent annotations by disclosing that the score is weighted and composite, that sanctions hits zero the score regardless of other signals, and that the output includes an explainable evidence chain plus a list of sources that failed. This is substantive behavioral context an agent needs to interpret and trust the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence carries operational value: what the score means, which sources feed it, what the output includes, a critical exception rule, and when to use it. The structure front-loads the core function and then expands logically through inputs, behavior, and outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description appropriately enumerates the return fields: score, risk band, itemized evidence, sources queried, sources that failed, and a plain-text summary. Combined with the single parameter's full schema documentation and the explicit usage condition, the description is complete for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage of the single parameter company_name, including examples and automatic normalization of common suffixes. The description does not need to add parameter detail and does not materially extend what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compute a composite 0-100 Counterparty Risk Score for a company name.' It names the exact data sources involved and the output type, and it distinguishes the tool from the alternative of stitching five separate queries, making its purpose unmistakable among a large sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this when you need a single-call counterparty risk verdict instead of stitching five separate queries.' This gives the agent a clear decision rule and an implicit contrast with granular source-specific tools, even though those tools are not named individually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_case_searchBRead-onlyIdempotentInspect
Search federal and state court opinions by keyword, court, judge, party name, or date range. Returns case summaries with citations.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Court ID, e.g. 'scotus', 'ca9', 'nysd'. | |
| judge | No | Judge name filter. | |
| limit | No | Max results (1-50, default 10). | |
| party | No | Party name filter. | |
| query | No | Free-text search query. | |
| date_filed_after | No | ISO date YYYY-MM-DD. | |
| date_filed_before | No | ISO date YYYY-MM-DD. |
TDQS
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 return shape ('case summaries with citations') and the federal/state coverage scope, which is helpful, but it does not disclose pagination, result limits, ordering, or coverage caveats 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the search scope and filter options, then states the return format. There is no filler or redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a read-only search tool: it states what is searched, which filters matter, and what is returned. However, it lacks guidance on distinguishing this sibling from other court-search tools and does not mention result limits or pagination behavior, making it only minimally complete for a tool with 7 parameters and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enumerates keyword, court, judge, party name, and date range, which maps cleanly onto the schema properties, but it does not add meaning beyond what the schema already provides, such as query syntax or filter combination behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and clearly identifies the resource ('federal and state court opinions') plus the main filter dimensions. It does not explicitly distinguish this tool from closely related siblings like court_opinion_search or caselaw_search, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for finding court opinions by common legal filters, but it provides no explicit guidance on when to prefer this over alternatives such as court_opinion_search, caselaw_search, court_docket_lookup, or court_judge_lookup. There are no exclusions or 'use X instead' signals, which is a notable gap 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.
court_citation_resolverBRead-onlyIdempotentInspect
Resolve a legal citation (e.g. '410 U.S. 113') to its CourtListener case record.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | Citation string, e.g. '410 U.S. 113'. |
TDQS
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 clarification that this resolves to a CourtListener case record, but it does not disclose behavior for unresolved citations or what a 'case record' contains. This is acceptable given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It states the action, gives an illustrative example, and names the output target efficiently. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter, read-only, idempotent lookup, the description plus schema and annotations supply enough to invoke the tool correctly: the citation format and the intended result. It lacks usage-alternative guidance and output-format detail, but the low complexity and rich annotations keep it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the single 'citation' parameter with the same example ('410 U.S. 113'), and schema description coverage is 100%. The tool description repeats the example without adding new meaning, so the parameter semantics remain at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Resolve'), a specific resource ('a legal citation'), and an output target ('its CourtListener case record'). The example citation makes the purpose concrete, but it does not explicitly distinguish this from overlapping siblings like caselaw_citation_lookup or court_case_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as caselaw_citation_lookup, court_case_search, or court_opinion_search. The description implies a citation-to-record lookup but does not state exclusions or recommend sibling tools for other citation-related needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_docket_lookupARead-onlyIdempotentInspect
Look up a federal docket by court ID and docket number. Returns party list and recent entries from PACER/RECAP.
| Name | Required | Description | Default |
|---|---|---|---|
| court | Yes | Court ID, e.g. 'nysd'. | |
| docket_number | Yes | Docket number, e.g. '1:23-cv-04567'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, lowering the disclosure burden. The description adds useful behavioral context beyond annotations by identifying the data source (PACER/RECAP) and the specific output components (party list and recent entries), which helps set expectations for the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the action, follows with the required inputs, and ends with the expected output. Every phrase contributes useful information, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only lookup, the description covers the essential inputs, the general source of data, and the type of content returned. It does not detail edge cases or result size limits, but given the annotations and schema richness, this is a minor gap rather than a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters already include type and example values in the schema. The description essentially restates 'court ID' and 'docket number' without adding substantive new meaning beyond what the schema provides, so it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') with a precise resource ('federal docket') and the exact identifying inputs ('court ID and docket number'). It also states the return content ('party list and recent entries from PACER/RECAP'), making the tool's function clear and distinct from sibling search-oriented court tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when the user has both a court ID and a docket number. However, it provides no exclusions or explicit guidance on when to prefer related sibling tools such as court_case_search or court_recent_filings, so the routing guidance is left mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_judge_lookupARead-onlyIdempotentInspect
Look up a judge profile by name or CourtListener person ID. Returns positions, education, and bench history.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Judge full or partial name, or numeric person ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, and non-destructive, lowering the bar. The description adds useful return-content context, but it does not disclose behavior around partial matches, multiple judges with the same name, or unavailable data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the action and lookup keys front-loaded. There is no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with strong annotations and clear schema coverage, the description provides the essential invocation contract and summarizes the return payload. It could mention match/disambiguation behavior, but nothing critical to calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single parameter as a full or partial name or numeric person ID, so the description adds little beyond that. The description does clarify that the person ID is a CourtListener ID, which provides helpful source context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') and identifies a clear resource ('judge profile'), along with the lookup keys and returned fields. It is easily distinguished from sibling court tools like court_case_search, court_docket_lookup, and court_opinion_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: whenever a judge's positions, education, or bench history is needed, and by name or CourtListener person ID. It does not explicitly name alternatives or exclusions, but no sibling tool covers judge profiles, so the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_opinion_searchBRead-onlyIdempotentInspect
Full-text search of court opinions. Returns opinion text snippets, authors, and citations.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court ID filter. | |
| limit | No | Max results (1-50, default 10). | |
| query | Yes | Search text required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive, so the description does not need to restate safety. It adds value by disclosing the return shape (text snippets, authors, citations) but not search behavior details such as required query, optional filtering, pagination, or limitations. This adds modest 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the core action and primary return fields are front-loaded. Every phrase adds information, and the description is appropriately sized for a simple search tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with complete schema coverage and read-only annotations, the description provides a workable overview of output. However, it omits any usage guidance or sibling differentiation, and with no output schema the return-shape sentence is the only behavioral detail. There are clear but non-fatal gaps for an agent selecting among many court/caselaw tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents query, court, and limit clearly. The description adds no parameter-level detail beyond the general full-text search notion, but the complete schema means it does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (court opinions) and the operation (full-text search), and states the return fields (snippets, authors, citations). It is clear and specific, but it does not explicitly differentiate itself from sibling search tools like caselaw_search or court_case_search, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to prefer this tool over siblings (e.g., caselaw_search, court_case_search, court_oral_argument_search) or when not to use it. The description only implies a search use case, with no exclusions or alternative routing. This leaves the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_oral_argument_searchARead-onlyIdempotentInspect
Search SCOTUS and federal appellate oral argument audio. Returns audio URLs and transcript snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court ID filter. | |
| limit | No | Max results (1-50, default 10). | |
| query | Yes | Search text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the return value context (audio URLs and transcript snippets), which is useful but does not disclose other behavioral traits such as pagination, court ID format, or result structure. This matches the baseline for a read-only tool with some added return info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Search SCOTUS and federal appellate oral argument audio. Returns audio URLs and transcript snippets.' Every word contributes to the purpose and output, with no filler or repetition. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 3 well-documented parameters, the description plus schema is largely complete. It names the scope and return content, and annotations cover the read-only behavior. The lack of an output schema means the agent does not know the exact result shape, but the basic response type is stated. This 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter (query, court, limit) already documented. The description adds no additional parameter-level detail beyond the schema. Baseline 3 is appropriate since the schema carries the full semantic burden for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb and resource: searching oral argument audio from SCOTUS and federal appellate courts. It also specifies the return type (audio URLs and transcript snippets), which distinguishes it from sibling tools like court_opinion_search and court_case_search. The resource scope is precise enough for an agent to identify when to use it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for finding oral argument audio and transcripts in federal appellate courts. It does not explicitly name alternatives or exclusions, but the scope is so specific that confusion with sibling tools is unlikely. A slight improvement would be mentioning that written opinions belong to court_opinion_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_recent_filingsARead-onlyIdempotentInspect
Recent docket entries filed in a specific court, ordered newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| court | Yes | Court ID, e.g. 'nysd', 'cand'. | |
| limit | No | Max results (1-50, default 10). |
TDQS
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 genuine behavioral context beyond annotations: newest-first ordering and that results are scoped to a single court's docket entries. Nothing contradicts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence with zero filler: the core resource ('recent docket entries'), scope ('specific court'), and ordering ('newest first') are all present, and the ordering detail is placed at the end as a qualifier. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter, read-only, idempotent tool with no nested objects, the description covers what, where, and ordering. No output schema exists, so return shape is unspecified, but for a recent-list tool this is a minor gap rather than a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (court with examples 'nysd'/'cand', limit with range and default). With full coverage the baseline is 3; the description's phrase 'in a specific court' only marginally reinforces the court parameter and adds nothing about limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (recent docket entries) and scope (a specific court), with a clear verb implied ('list/get'). It is semantically distinct from siblings like court_opinion_search and court_judge_lookup, but it does not explicitly differentiate from court_docket_lookup, which could plausibly overlap in an agent's mind.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied rather than stated: an agent can infer this is for browsing recent docket activity in a court, but the description never says when to prefer this over court_docket_lookup, court_case_search, or the caselaw tools. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpsc_recall_searchARead-onlyIdempotentInspect
Search U.S. Consumer Product Safety Commission (CPSC) product recalls via SaferProducts.gov (keyless). Filter by product name/keyword, title, manufacturer, hazard, recall number, and date range. Returns recall number, date, title, products, hazards, remedy, manufacturers, injuries, and the official CPSC recall URL. Data: CPSC/SaferProducts.gov.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max recalls to return (default 25). | |
| title | No | Recall title keyword filter. | |
| hazard | No | Hazard keyword filter (e.g. 'fire', 'choking', 'laceration'). | |
| product | No | Product name filter (e.g. 'stroller', 'space heater'). | |
| date_end | No | Recalls on/before this date (YYYY-MM-DD). | |
| date_start | No | Recalls on/after this date (YYYY-MM-DD). | |
| manufacturer | No | Manufacturer name filter. | |
| recall_number | No | Exact CPSC recall number (e.g. '26561'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add operational context. It does so by noting 'keyless' access, naming the data source, and listing the exact returned fields including the official recall URL. This goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and source. The only minor inefficiency is that 'Data: CPSC/SaferProducts.gov' repeats the source already named in the first sentence, so it's not perfectly zero-waste, but it is still appropriately sized and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating return fields, which is good. It covers nearly all parameter categories except pagination/limit behavior and date format examples, but the schema already documents date formats and the default limit. Overall this is sufficient for an 8-parameter read-only search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description summarizes the filters that map to schema parameters but adds no new meaning beyond what each parameter description already states. It doesn't mention the 'limit' parameter explicitly, though the schema covers it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), names the exact resource (U.S. Consumer Product Safety Commission product recalls via SaferProducts.gov), and enumerates the available filters. It clearly distinguishes itself from related tools like cpsc_recent_recalls by emphasizing filtering and search rather than just listing recent recalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('Filter by...', 'Returns...') but never explicitly states when to prefer this over siblings like cpsc_recent_recalls or vehicle_recalls. It gives clear context but no 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.
cpsc_recent_recallsARead-onlyIdempotentInspect
Return the most recent U.S. CPSC product recalls (date-sorted, newest first) via SaferProducts.gov (keyless). Looks back a configurable window (default 90 days). Each result links to the official CPSC recall page. Data: CPSC/SaferProducts.gov.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent recalls to return (default 10). | |
| lookback_days | No | How many days back to scan (default 90). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral context: keyless access via SaferProducts.gov, date sorting, configurable lookback window, and that each result links to the official CPSC recall page. It goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no fluff, with the core purpose and sort order front-loaded. The second sentence adds the configurable window and the third clarifies output behavior (links to official pages). Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity list tool with no required parameters and no output schema, the description is largely complete: it states source, access method, sorting, default window, and linkage. It does not enumerate the fields in each result or mention pagination, but the simple result shape and annotations make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit and lookback_days) are already documented in the schema. The description adds the default lookback window (90 days) and implies limit controls result count, but it does not significantly extend the schema's parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Return'), a specific resource ('most recent U.S. CPSC product recalls'), and adds distinctive scope details: date-sorted newest first, configurable lookback, and links to official CPSC pages. It also clearly distinguishes itself from the sibling cpsc_recall_search by emphasizing recency rather than search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when the caller wants the most recent recalls within a time window rather than a keyword-based search. However, it does not explicitly mention alternatives like cpsc_recall_search or state when not to use this tool, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_compareARead-onlyIdempotentInspect
Compare 2-5 cryptocurrencies side by side. Shows price, 24-hour change, market cap, volume, and rank for each coin in a comparison table. Use this for 'compare bitcoin and ethereum', 'BTC vs ETH vs SOL', 'which is bigger bitcoin or ethereum?', 'compare top cryptos', 'crypto head to head', or any multi-coin comparison question.
| Name | Required | Description | Default |
|---|---|---|---|
| coins | Yes | Coin names or tickers, 2-5 coins. Accept either CSV string ('bitcoin,ethereum,solana') or array (['bitcoin','ethereum','solana']). |
TDQS
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 value by disclosing exactly what the output contains: price, 24-hour change, market cap, volume, and rank in a comparison table. This goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, quickly lists the output fields, and then provides concrete query examples. No filler or redundant statements; each sentence contributes to helping the agent recognize and invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only comparison tool with full schema coverage and rich annotations, the description is complete. It defines scope, input constraints, output contents, and usage examples, so an agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the 'coins' parameter, including accepted formats (CSV string or array) and the 2-5 limit. The description reinforces this with examples but does not add meaning beyond what the schema already provides, 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.
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: 'Compare 2-5 cryptocurrencies side by side.' It is clearly a multi-coin comparison tool, distinguished from siblings like crypto_price, crypto_info, and crypto_trending by the explicit comparison-table framing and multi-coin examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage triggers with 'Use this for' followed by concrete query examples such as 'BTC vs ETH vs SOL' and 'which is bigger bitcoin or ethereum?' It clearly implies when to choose this tool, though it does not explicitly name sibling alternatives or state 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.
crypto_infoARead-onlyIdempotentInspect
Get a detailed profile for any cryptocurrency including description, market data, supply info, all-time high/low, genesis date, blockchain, categories, and website links. Use this for 'tell me about bitcoin', 'what is ethereum?', 'solana info', 'describe cardano', 'crypto profile', 'coin details', or any question asking for background information about a specific cryptocurrency project.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Cryptocurrency name or ticker (e.g., 'bitcoin', 'BTC', 'ethereum') |
TDQS
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 context about the type of data returned (market data, supply info, all-time high/low, etc.) but does not disclose limitations such as data freshness, coverage gaps, or rate limits. It adds some value without being rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the core action front-loaded and a detailed but relevant list of output contents. The example queries are slightly repetitive but serve as useful usage triggers. No wasted sentences, though the example list could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup tool with no output schema, the description adequately conveys what the tool returns by enumerating the key data categories (description, market data, supply info, all-time high/low, genesis date, blockchain, categories, website links). It is complete enough for an agent to select and invoke correctly, though it does not cover error scenarios or data-source caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the input schema already describes the 'coin' parameter with examples ('bitcoin', 'BTC', 'ethereum'). The tool description reinforces 'any cryptocurrency' and provides example prompts, but it does not add additional parameter-level semantics beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a detailed profile for any cryptocurrency' and lists the contents (description, market data, supply info, all-time high/low, genesis date, blockchain, categories, website links). It is clear and distinguishes itself from price/compare/trending siblings implicitly through the profile focus, though it does not explicitly name a sibling to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance with example queries: 'Use this for “tell me about bitcoin”, “what is ethereum?”, “solana info”' and generalizes to 'any question asking for background information about a specific cryptocurrency project.' It does not state when not to use it or name alternative tools like crypto_price or crypto_compare, 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.
crypto_priceARead-onlyIdempotentInspect
Get the current price and market data for any cryptocurrency. Returns price in USD, 24-hour change, market cap, volume, and all-time high. Use this for 'what's the price of bitcoin?', 'how much is ethereum?', 'solana price', 'check dogecoin', 'BTC price', 'ETH value', 'crypto price check', or any question about a specific coin's current value. Supports all major cryptocurrencies: bitcoin, ethereum, solana, cardano, ripple/XRP, dogecoin, polkadot, avalanche, chainlink, polygon/MATIC, litecoin, uniswap, stellar, cosmos, NEAR, arbitrum, optimism, aptos, sui, toncoin, shiba inu, pepe, BNB, tether/USDT, USDC, and thousands more via CoinGecko ID.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Cryptocurrency name or ticker (e.g., 'bitcoin', 'BTC', 'ethereum', 'ETH') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only, idempotent, non-destructive, and open-world. The description adds useful behavior beyond the schema: the exact data fields returned, the broad supported coin universe, and the CoinGecko ID compatibility. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core function and return values, then gives query examples and supported coins. The supported-coin list is long but serves a real disambiguation purpose for open-world crypto names, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only price lookup tool with no output schema, the description is complete: it states what is returned, how to phrase requests, and which coins are supported. Nothing essential is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful value by listing many accepted coin names/tickers and noting that CoinGecko IDs are supported. This helps agents know what values can be passed beyond the few schema examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's job: getting current price and market data for any cryptocurrency, with a concrete set of returned fields (USD price, 24h change, market cap, volume, all-time high). It is clearly about current price rather than comparison, history, or metadata, though it does not explicitly name or contrast sibling tools like crypto_compare or crypto_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit user-phrase examples ('what's the price of bitcoin?', 'solana price', 'BTC price') and states the general condition: any question about a specific coin's current value. It does not explicitly say when not to use it or mention alternatives, but the usage context is clear and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_trendingARead-onlyIdempotentInspect
See what's trending and hot in cryptocurrency right now. Returns the top trending coins on CoinGecko based on search activity and interest. Use this for 'what's trending in crypto?', 'hot cryptocurrencies', 'trending coins', 'what crypto is popular right now?', 'crypto buzz', 'what tokens are people looking at?', or any question about current crypto market interest and momentum.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds useful behavioral context beyond the annotations: the data source (CoinGecko), the selection basis (search activity and interest), and the time-sensitive nature ('right now'). It doesn't describe output shape, but for a simple no-argument read tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence summary, followed by source detail and a set of example queries. The example list is somewhat long and repetitive, but it serves a useful purpose for matching varied user phrasings; no filler or irrelevant content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with no output schema, the description gives enough context: what it returns, where the data comes from, and what kind of user question it answers. It doesn't specify the exact number of coins or output fields, but those gaps are not critical for an agent deciding whether to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so there are no parameter semantics to clarify. The description reinforces that only current trending data is returned and no user inputs are needed to narrow the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('See what's trending') plus a specific resource: the top trending coins on CoinGecko based on search activity and interest. This distinguishes it from sibling tools like crypto_price, crypto_info, and crypto_compare, which target prices, metadata, and comparisons rather than current market buzz.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this for...' and gives many example user phrasings, making the intended invocation context clear. However, it does not mention alternatives or provide when-not-to-use guidance, such as pointing to crypto_price for price questions or crypto_compare for comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_lookupARead-onlyIdempotentInspect
Full detail for a single CVE by ID (format CVE-YYYY-NNNN). Returns CVSS scores, weakness IDs, references, and affected products from the NVD.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE identifier, e.g. CVE-2024-3094. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavioral context by enumerating what the response contains (CVSS scores, weakness IDs, references, affected products) and identifying NVD as the data source, which helps the agent anticipate the tool's output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tightly structured sentence that front-loads the operation, then supplies the ID format and the return fields. There is no filler, redundancy, or superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with no output schema, the description provides the essential contract: the input format and a clear list of what will be returned. It is well differentiated from the many sibling tools and contains everything an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already provides an example, so the baseline is 3. The description adds a precise format contract 'CVE-YYYY-NNNN' that goes slightly beyond the schema's single example, giving the agent a more general rule for constructing valid identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Full detail for a single CVE by ID.' It also distinguishes the tool from siblings like cve_search_by_keyword and cve_recent by requiring a concrete CVE identifier and promising full detail rather than search results or recent lists, reinforced by the explicit ID format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID (format CVE-YYYY-NNNN)' makes clear the intended use: this tool is for looking up a single CVE when the identifier is known. However, it does not explicitly name alternatives or state when not to use this tool, so it provides clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_recentARead-onlyIdempotentInspect
Recent CVEs published in the last N days (default 7, max 120). Optional vendor and severity filters (CRITICAL, HIGH, MEDIUM, LOW).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days (1-120). | |
| limit | No | Max results (default 50). | |
| vendor | No | Optional vendor filter. | |
| severity | No | Optional CVSS severity filter: CRITICAL, HIGH, MEDIUM, or LOW. |
TDQS
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, so the safety profile is covered. The description adds genuinely new behavioral context: the lookback-window semantics ('published in the last N days'), the default of 7 days, the max of 120, and the available filter dimensions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences that front-load the core purpose first and then enumerate the filters. There is no filler, no repetition of annotation content, and every clause contributes either scope, a default, or filter information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered-list tool this is nearly complete: annotations carry the safety profile, the schema documents all four optional parameters with 100% coverage, and the description covers purpose, defaults, and filters. Minor gaps are the absence of any note about the shape of returned CVE data (no output schema) and no routing to the sibling CVE tools when the agent needs historical or ID-based lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (days, limit, vendor, severity) is already documented in the schema. The description adds only the default-7-days detail for the lookback window (the schema only gives the 1-120 range); the severity enumeration duplicates the schema. Marginal value over the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource with a clear temporal scope: 'Recent CVEs published in the last N days (default 7, max 120)' plus optional vendor/severity filters. The time-window framing inherently differentiates it from sibling tools cve_lookup, cve_search_by_keyword, and cve_search_by_vendor without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is unambiguous: this tool is for time-bounded CVE discovery, and the optional filters are spelled out. However, it does not explicitly exclude alternatives or name when to prefer cve_search_by_vendor (which also accepts a vendor filter) or cve_lookup (for a known CVE ID); the temporal framing carries most of the differentiation weight.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_search_by_keywordARead-onlyIdempotentInspect
Free-text CVE search with optional date range. Matches keyword against CVE description text in the NVD.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-2000, default 20). | |
| keyword | Yes | Free-text search phrase. | |
| pub_end_date | No | Optional YYYY-MM-DD upper bound. | |
| pub_start_date | No | Optional YYYY-MM-DD lower bound. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly/openWorld/idempotent safety signals, and the description adds that matching occurs against CVE description text with an optional date range. It doesn't mention pagination, result format, or rate limits, but with annotations covering the safety profile this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the core operation and packs the optional date range and match target into one compact phrase. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool, the description plus schema gives an agent enough to call it correctly: keyword is required, optional dates and limit are documented, and the purpose is clear. No output schema exists, so a brief mention of the result shape would slightly improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with useful descriptions for keyword, limit, and date bounds, so the description doesn't need to repeat them. It adds minor clarification that keyword targets description text, but no syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation: free-text CVE search with optional date range, and clarifies the match target is CVE description text in NVD. This distinguishes it from sibling tools like cve_lookup, cve_recent, and cve_search_by_vendor without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for keyword-based description searches and mentions date-range filtering, but it does not explicitly state when to use this tool instead of cve_search_by_vendor or cve_lookup. 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.
cve_search_by_vendorARead-onlyIdempotentInspect
Search CVEs by vendor with optional product and date range filters. Vendor is matched against the NVD CPE namespace, e.g. 'apache', 'microsoft'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-2000, default 20). | |
| vendor | Yes | Vendor name, lowercase preferred. | |
| product | No | Optional product name filter. | |
| pub_end_date | No | ISO date or YYYY-MM-DD upper bound on published date. | |
| pub_start_date | No | ISO date or YYYY-MM-DD lower bound on published date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the description carries less burden. It adds useful behavioral context by explaining that vendor matching is against the NVD CPE namespace, which affects how the query should be formed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the core purpose and filters, the second clarifies matching semantics with concrete examples. No filler and no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All invocation-critical details are present: required vendor, optional filters, and namespace matching behavior, with annotations covering safety. The lack of an output schema makes a brief return-shape note desirable, but the intent and usage are clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a meaningful description, so the baseline is 3. The description reinforces product and date-range filtering and gives vendor examples, but does not need to compensate for missing schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search CVEs by vendor' with optional product and date range filters. The CPE namespace detail distinguishes this from keyword-based CVE search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys this tool is for vendor-scoped CVE searches and that vendor must be an NVD CPE vendor name like 'apache' or 'microsoft'. It does not explicitly name sibling alternatives, but the context makes the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cwe_lookupARead-onlyIdempotentInspect
MITRE CWE detail by ID (format CWE-NNN or NNN). Returns name, abstraction, status, description, and parent/child CWE relationships.
| Name | Required | Description | Default |
|---|---|---|---|
| cwe_id | Yes | CWE identifier, e.g. CWE-79. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral detail by enumerating the response contents, which is valuable since no output schema is present. It does not cover error or not-found behavior, but for a simple lookup 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and ID format, then efficiently lists return fields. Every part adds value, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool with no output schema, the description is complete: it states the source, the ID format, and the full set of returned information. No critical details are missing for an agent to correctly invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single cwe_id parameter with an example, and the description supplements this by explicitly defining the accepted formats: 'CWE-NNN or NNN'. This added format guidance goes beyond the schema's example value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a MITRE CWE detail lookup by ID and lists the specific fields returned (name, abstraction, status, description, parent/child relationships). It also distinguishes itself from CVE-related sibling tools by specifying CWE and the accepted ID format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is for retrieving CWE details when a CWE ID is available, and even specifies the accepted ID format. It does not explicitly mention alternatives or exclusions, but the 'by ID' framing makes the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disaster_declarationsARead-onlyIdempotentInspect
Recent FEMA disaster declarations from LiveDataLink's self-hosted OpenFEMA index, with a live official-API fallback. Filter by state, county, incident type, or date range; returns disaster number, title, dates, incident category, and source freshness.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return (1-1000, default 50). | |
| state | No | Two-letter state code, e.g. 'TX'. | |
| county | No | Designated area / county name as FEMA records it. | |
| end_date | No | ISO date upper bound on declarationDate. | |
| start_date | No | ISO date lower bound on declarationDate. | |
| incident_type | No | Incident type filter, e.g. 'Hurricane', 'Flood', 'Severe Storm', 'Wildfire'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and open-world behavior, so the description does not need to restate safety. It adds genuinely useful context about the self-hosted index, the live official-API fallback, and the source-freshness return field. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey the source, fallback behavior, filtering options, and return content with no filler. The key resource and source are front-loaded, and every phrase contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate read-only tool with zero required parameters and a fully documented schema, the description is complete: it covers the data source, fallback behavior, filtering axes, and the nature of returned fields. The absence of an output schema is mitigated by describing the return concepts, while annotations cover safety and data openness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all six parameters at 100% coverage, including defaults and examples, so the description does not need to add parameter-level detail. The high-level 'filter by state, county, incident type, or date range' restates what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (FEMA disaster declarations), the data source (LiveDataLink OpenFEMA index with official API fallback), and the filtering/return behavior. It does not use an explicit verb like 'list' or 'search', and it does not explicitly distinguish itself from sibling tools such as disaster_history_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by listing filter dimensions: state, county, incident type, and date range. It gives no explicit guidance about when to prefer a sibling tool such as disaster_history_summary, disaster_recovery_profile, or hurricane_tracker.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disaster_history_summaryBRead-onlyIdempotentInspect
Multi-year FEMA disaster summary from LiveDataLink's self-hosted OpenFEMA index, bucketed by incident type and year for a state or county with source freshness.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter state code. | |
| years | No | Lookback window in years (default 10). | |
| county | No | County name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering safety and repeatability. The description adds that it is based on a 'self-hosted OpenFEMA index' and includes 'source freshness,' but it does not reveal other behaviors such as caching, pagination, or potential rate limits. This is a moderate contribution on top of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the dataset, aggregation dimensions, geographic scope, and source freshness. Some phrases like 'LiveDataLink's self-hosted' may be ancillary, but the sentence is otherwise tightly packed and free of significant redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description bears responsibility for explaining the response shape. It hints that data is 'bucketed by incident type and year' and includes 'source freshness,' but does not specify what metrics appear (counts, amounts, dates, etc.) or any coverage/formation exclusions. For a three-parameter read tool, it is adequate, but an agent can optionally guess at the return structure and the exact meaning of 'summary.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters with their own descriptions and defaults (e.g., 'Lookback window in years (default 10)'). The description only restates 'for a state or county' which adds no meaningful semantic beyond the schema. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a multi-year FEMA disaster summary from a specific data source, scoped to state/county and aggregated by incident type and year. It is distinguishable from siblings like disaster_declarations and disaster_recovery_profile, though it lacks an explicit verb and does not directly 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.
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 the related disaster_declarations or disaster_recovery_profile, nor does it state any conditions or exclusions. The intended use is only implied by the purpose phrase, with no practical routing hints for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disaster_recovery_profileARead-onlyIdempotentInspect
One-call disaster-history and recovery read for a US area (county or place), keyed by NAME + state - distinct from location_risk_report, which scores a single site by address/lat-lon. Joins FEMA's OpenFEMA disaster declarations (the area's federally-declared disaster history: incident types, frequency, most-recent event, and the federal-assistance signal - which programs, Individual Assistance / Individuals & Households / Public Assistance / Hazard Mitigation, were authorized) with optional US Census ACS county population for exposure context (keyed off the FIPS codes the FEMA records carry; needs a Census key and degrades gracefully) and an optional best-effort parcel record for property context when an address is given (Maryland statewide / Texas-Harris County only). Returns a readable profile with a headline banding the area's disaster exposure LOW / MODERATE / HIGH from the declaration record. The FEMA leg is keyless and is the core signal; a source that fails is noted, not fatal. INFORMATIONAL public-record synthesis, NOT an insurance rating, a property flood-risk score, or a professional risk assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | County or place name to profile (e.g. 'Harris', 'Orleans', 'New Orleans'). Use the name without the word 'County'. | |
| state | No | 2-letter US state code (or full state name) to scope the FEMA history (e.g. 'TX', 'LA'). Strongly recommended - required for an accurate county read. | |
| county | No | Alias for area; either may be supplied. | |
| address | No | Optional street address to attach a sample parcel/property record (Maryland statewide or Texas-Harris County only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral context beyond that: the FEMA leg is keyless, the Census leg 'needs a Census key and degrades gracefully,' the parcel leg is limited to Maryland statewide / Texas-Harris County, 'a source that fails is noted, not fatal,' and the output is explicitly an 'INFORMATIONAL public-record synthesis, NOT an insurance rating, a property flood-risk score, or a professional risk assessment.' These key requirements, coverage limitations, failure handling, and scope disclaimers give the agent a realistic model of how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph of roughly 170 words covering purpose, sibling distinction, three data sources, key requirements, coverage limits, failure behavior, output format, and a disclaimer — every clause carries information, so nothing is wasted. The purpose is front-loaded in the first sentence. However, the heavy use of parentheticals and one long joined sentence makes it harder to parse than a structured presentation (e.g., separating the data-leg bullets) would be, so it earns a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description carries the full burden of explaining return values, and it does: a readable profile with a headline exposure band (LOW/MODERATE/HIGH), incident types, frequency, most-recent event, and the federal-assistance program signal. It also discloses per-leg requirements and graceful degradation. The only gap is the absence of explicit differentiation from the sibling tools disaster_declarations and disaster_history_summary — the 'one-call profile' framing implies a distinction but never states when to choose this tool over those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters with examples and notes, establishing a baseline of 3. The description adds cross-parameter meaning beyond the schema: that the tool is keyed by NAME + state together, that state is 'Strongly recommended - required for an accurate county read' (reinforcing the schema nuance), and how the address parameter activates the parcel leg. It also explains the FIPS-code linkage between the FEMA and Census legs, which clarifies the relationship between the area/state inputs and the optional population context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'One-call disaster-history and recovery read for a US area (county or place), keyed by NAME + state.' It names the data sources (OpenFEMA declarations, optional Census ACS, optional parcel record) and the concrete output (readable profile with LOW/MODERATE/HIGH exposure banding). It explicitly distinguishes itself from the most confusable sibling, location_risk_report, by contrasting keying (name+state vs address/lat-lon) and scope (area history vs single-site score).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative tool location_risk_report and the condition that selects it ('scores a single site by address/lat-lon'), which resolves the highest-risk sibling confusion. It also states when the optional legs activate ('when an address is given' for the parcel leg). However, it does not address other nearby disaster siblings such as disaster_declarations or disaster_history_summary, leaving the agent to infer when the profile read is preferable to those raw-query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
earthquake_recentBRead-onlyIdempotentInspect
Recent earthquakes from USGS. Filter by region (lat/lon + radius), state name, magnitude threshold, or time window.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| limit | No | Max events (default 50). | |
| end_time | No | ISO datetime upper bound (default now). | |
| location | No | Address, zip, city, or 'lat,lon' to center the search. Optional. | |
| radius_km | No | Search radius around lat/lon (max ~20000). | |
| start_time | No | ISO datetime lower bound (default 30 days ago). | |
| min_magnitude | No | Minimum magnitude (default 2.5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior, so the bar is lower. The description adds source (USGS) and recency scope, but does not disclose output shape, ordering, or limits beyond what the schema's parameter descriptions already state. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that immediately names the source and then lists the filter dimensions in compact form. It is efficiently sized, though it packs the slightly ambiguous 'state name' phrase into an otherwise tight summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool, the description plus schema defaults and annotations provide a workable picture. However, without an output schema the description does not mention what a result contains or how events are ordered, and no guidance differentiates this from the USGS feed/search siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 6 of 8 parameters, and the description adds semantic grouping: lat/lon + radius_km, magnitude threshold = min_magnitude, time window = start/end_time. However, 'state name' is not a dedicated parameter and relies on the flexible 'location' parameter, which could mislead an agent looking for a state field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear resource (recent USGS earthquakes) and enumerates the main filtering dimensions (region, state, magnitude, time). It is not a tautology and gives enough to distinguish from generic search tools, though it does not explicitly contrast with sibling tools like usgs_earthquake_feed or usgs_earthquake_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by the word 'recent' and the listed filters, but the description gives no explicit when-to-use vs alternatives. An agent must infer from sibling names (feed/search/detail) which tool to pick, so there is clear context but no exclusion or routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_company_factsARead-onlyIdempotentInspect
Get structured XBRL financial facts for a company. Without 'concept', returns the top-level facts catalog (concepts the company has reported). With 'concept' (e.g. 'Revenues', 'Assets', 'EarningsPerShareBasic'), returns the time series of values for that concept.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | No | Optional XBRL concept name (e.g. 'Revenues', 'Assets', 'NetIncomeLoss'). If omitted, returns the catalog of available concepts. | |
| taxonomy | No | Optional XBRL taxonomy (default 'us-gaap'). | |
| identifier | Yes | Ticker symbol or CIK. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already communicate that the tool is read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by explaining the two different response shapes: a concept catalog versus a time series of values. This goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two well-structured sentences with no filler. The primary purpose is stated first, followed by a concise explanation of the two usage modes. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description does a good job of explaining the return behavior at a high level. It covers the catalog mode and the time-series mode, and the schema fully documents all parameters. A little more detail about the exact output structure would improve completeness, but it is not necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters, so the baseline is 3. The description adds value by clarifying how the optional 'concept' parameter changes the response and by providing concrete examples of valid concept values. The 'identifier' parameter semantics are also clearly described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: retrieving structured XBRL financial facts for a company. It also distinguishes two clear modes based on whether 'concept' is provided, making the tool's purpose and scope immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains when to use the tool with and without the 'concept' parameter, giving explicit invocation context. It does not explicitly name sibling tools or say when not to use it, but the structured data framing makes the intended use evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_company_lookupARead-onlyIdempotentInspect
Look up a public company's CIK (Central Index Key) by ticker symbol or company name. CIK is required for all other EDGAR tools. Returns matches ranked exact-ticker first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | Yes | Ticker (e.g. 'AAPL') or company-name fragment (e.g. 'Apple'). |
TDQS
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 useful behavioral context beyond annotations: matches are ranked exact-ticker first, and the lookup supports both ticker and name fragments. This gives the agent a clearer expectation of results without contradicting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core lookup purpose and key ranking behavior stated directly. The most important context—that CIK is the prerequisite for other EDGAR tools—is included early and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup with no output schema, the description covers what the tool does, how queries are matched, and how results are ordered. It does not detail the exact result fields, but the purpose is clear enough that an agent can invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters in detail. The description reinforces the query semantics by mentioning ticker or company name, but adds limited additional parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action—look up a public company's CIK—by ticker symbol or company name. It also establishes how this tool relates to the other EDGAR tools, distinguishing it as the prerequisite lookup rather than a filings or facts tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'CIK is required for all other EDGAR tools' clearly communicates when this tool should be used: as the entry point for EDGAR workflows. It does not explicitly name sibling alternatives or state when not to use it, but the context 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.
edgar_filing_contentARead-onlyIdempotentInspect
Fetch the text content of a specific SEC filing. Returns the primary document (10-K, 10-Q, etc.) stripped of HTML, suitable for LLM consumption. Use edgar_recent_filings first to get the accession number.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | Filer CIK (with or without leading zeros). | |
| max_chars | No | Maximum characters of text to return (default 20000, max 200000). | |
| accession_number | Yes | Accession number (e.g. '0000320193-25-000006' or '000032019325000006'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful return behavior: it returns the primary document, strips HTML, and tailors output for LLM consumption. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what the tool does, what it returns, and the prerequisite step. The most important scoping detail is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately simple fetch tool with no output schema, the description conveys the input workflow, the output nature (plain text, HTML-stripped, primary document), and the consumption use case. Parameter constraints like max_chars and cik formatting are already fully documented in the input schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is met; the description adds value beyond the schema by explaining where the accession number comes from (edgar_recent_filings). It does not repeat parameter names or types, which is appropriate given the schema already documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch'), a precise resource ('text content of a specific SEC filing'), and the output format ('primary document ... stripped of HTML'), which clearly distinguishes it from sibling tools that list filings or search text. This is immediately actionable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit workflow: call edgar_recent_filings first to obtain the accession number. It does not enumerate alternative tools or exclusion conditions, but the primary-document/content scope makes the appropriate context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_filings_by_form_typeARead-onlyIdempotentInspect
Pull all recent SEC filings of a specific form type across all companies. Useful for monitoring (e.g. 'all 8-Ks today', 'all S-1s this week'). Returns accession numbers, filers, and filing dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| form_type | Yes | SEC form type (e.g. '8-K', 'S-1', 'DEF 14A', '13F-HR'). | |
| start_date | No | ISO date lower bound (YYYY-MM-DD). Defaults to 30 days ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations: it stresses cross-company scope and discloses that results include accession numbers, filers, and filing dates, which helps an agent anticipate the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The core action and scope are front-loaded, followed by concrete use-case examples and return-value hints. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with only three parameters and full schema coverage, the description is largely sufficient. It explains the cross-company scope, the filtering concept, typical uses, and the main returned fields. It does not describe pagination or output details beyond those fields, but that is not critical given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents form_type, limit, and start_date. The description adds only modest semantic context ('recent', 'all companies') beyond the schema, which meets but does not exceed the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Pull all recent SEC filings of a specific form type across all companies.' It clearly distinguishes this from company-specific EDGAR tools by emphasizing cross-company scope, and the form-type focus separates it from generic recent-filings tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context with concrete monitoring examples: 'all 8-Ks today', 'all S-1s this week'. It does not explicitly name alternatives or state when not to use it, but the examples and scope make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_full_text_searchARead-onlyIdempotentInspect
Full-text search across all SEC filings via the EDGAR EFTS index. Filter by comma-separated form types and date range. Useful for finding filings that mention specific terms.
| Name | Required | Description | Default |
|---|---|---|---|
| forms | No | Comma-separated form types to filter (e.g. '10-K,10-Q'). Optional. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | Yes | Search query (e.g. 'cybersecurity incident', 'going concern'). | |
| end_date | No | Optional ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Optional ISO date lower bound (YYYY-MM-DD). |
TDQS
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 fully covered. The description adds the EFTS index context but discloses no additional behavioral traits beyond that — no rate limits, date coverage limitations, or result format expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The core operation and scope are front-loaded in the first sentence, and the second sentence earns its place by clarifying the typical use case. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with fully documented parameters and strong annotations, the definition is mostly adequate. The main gap is that with no output schema, the description offers no hint about what the agent will receive back (e.g., matching filing metadata or excerpts), leaving a moderate blind spot.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description's mention of 'comma-separated form types and date range' mirrors existing schema text and adds no new semantic meaning, keeping this at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Full-text search across all SEC filings via the EDGAR EFTS index'), which clearly identifies what the tool does. The 'full-text search' angle and 'all SEC filings' scope implicitly distinguish it from siblings like edgar_filings_by_form_type and edgar_recent_filings, but it does not explicitly name or contrast any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for finding filings that mention specific terms' provides clear, direct guidance on when to use this tool. However, it offers no exclusions or pointers to alternatives among the EDGAR siblings (e.g., when to reach for edgar_filing_content instead of this tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_insider_transactionsARead-onlyIdempotentInspect
List recent Form 4 insider transaction filings for a company. Returns accession numbers and filing dates; for detailed transaction data, use edgar_filing_content on each.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| identifier | Yes | Ticker symbol or CIK. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds value beyond those annotations by disclosing the return shape (accession numbers and filing dates) and the limitation that this tool does not provide detailed transaction data. This is meaningful behavioral context, though it does not mention ordering or recency windows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action and return content are front-loaded, and the pointer to edgar_filing_content is placed exactly where the agent needs it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the essential purposes: what it lists, what it returns, and where to go for more detail. It could add a bit more about recency or ordering, but it is sufficiently complete for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description does not add parameter-level meaning beyond clarifying that the tool targets a company's Form 4 filings, which is the baseline expectation given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List recent Form 4 insider transaction filings for a company.' It also states the return scope (accession numbers and filing dates) and explicitly differentiates itself from edgar_filing_content, which is the natural sibling for detailed transaction data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-not guidance: this tool lists filings, not transaction details, and directs the agent to 'use edgar_filing_content on each' when detailed data is needed. This explicitly routes the agent to the correct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_recent_filingsARead-onlyIdempotentInspect
List recent SEC filings for a company. Filter by form type (10-K, 10-Q, 8-K, 4, DEF 14A, etc.) and start date. Use ticker or CIK as identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| form_type | No | Optional form type filter (e.g. '10-K', '10-Q', '8-K', '4'). | |
| identifier | Yes | Ticker symbol or CIK. Examples: 'AAPL', '0000320193'. | |
| start_date | No | Optional ISO date lower bound (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly, idempotent, open-world, and non-destructive behavior. The description adds minimal behavioral context beyond that, such as the concept of recency and filtering. It does not describe ordering, pagination, or result shape, but given the strong annotation coverage this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, with the main action first, then filtering options, then identifier instructions. Every sentence adds useful information and there is no redundant or promotional language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read-only list tool with fully documented parameters, the description is complete enough for correct invocation. It could be slightly improved by distinguishing itself from edgar_filings_by_form_type or noting what fields the returned filing list includes, but no critical invocation detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds a little natural-language clarification with additional form type examples and the ticker-or-CIK guidance, but it does not materially extend the schema's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'List recent SEC filings for a company.' It also gives useful details on filters and identifier formats. It does not explicitly distinguish itself from similar siblings like edgar_filings_by_form_type, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: use it to list recent SEC filings and optionally filter by form type or start date. It does not mention when not to use it or name alternatives, but the intended scenario is well implied by the opening sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_electricity_stateARead-onlyIdempotentInspect
Monthly state-level electricity data from EIA. Filter by state (two-letter code or 'US' for national), sector (residential / commercial / industrial / transportation / all), and metric (price / sales / revenue / customers / generation). Default: US, all sectors, price.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| state | No | Two-letter state code (e.g. 'TX', 'CA') or 'US' for national rollup. Default 'US'. | |
| metric | No | Metric: 'price', 'sales', 'revenue', 'customers', 'generation'. Default 'price'. | |
| sector | No | Sector: 'all', 'residential', 'commercial', 'industrial', 'transportation'. Default 'all'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile, so the description does not need to repeat that. It adds useful behavioral context such as monthly cadence, the three filtering axes, and the 'US / all sectors / price' default, but it does not describe output shape or date-range behavior beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two dense sentences with no filler. It front-loads the resource, immediately lists the three filtering dimensions, and closes with defaults, making it easy to scan and parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and read-only annotations, the description is sufficient for selecting the tool and making an initial call with the stated defaults. It does not describe the output format, and since there is no output schema, a little more detail about returned fields would improve completeness, though the metric names already hint at the result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description mostly restates the schema's allowed values and defaults (state codes, sectors, metrics) without adding new meaning for start, end, or limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('monthly state-level electricity data from EIA') and enumerates the filtering dimensions (state, sector, metric), with defaults. The stated scope distinguishes it from sibling EIA tools focused on gasoline, natural gas, oil, and renewables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the state-level electricity scope and the filter dimensions, but the description does not explicitly name alternative tools or provide when-to-use/when-not-to-use guidance. It leaves routing decisions to inference rather than stating exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_energy_consumptionARead-onlyIdempotentInspect
Monthly US energy consumption by sector from EIA. Sectors: residential, commercial, industrial, transportation, total. Returns total energy consumed in BTU equivalents.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| state | No | Two-letter state code or 'US' for national rollup. Default 'US'. | |
| sector | No | Sector: 'total', 'residential', 'commercial', 'industrial', 'transportation'. Default 'total'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context—monthly cadence, sector options, and BTU units—but doesn't disclose details like pagination, state-level behavior, or output structure. This is acceptable given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main purpose, and each sentence carries relevant information. The sector list repeats the schema enum, but in a natural-language summary it helps the agent quickly grasp the tool's scope without opening the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data query with fully documented parameters and no output schema, the description is adequately complete. It states the data cadence, sector options, and returned units, so an agent can reasonably select and invoke the tool without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds minimal semantic value beyond the schema, mostly reinforcing the sector list and the BTU unit of the returned data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: monthly US energy consumption by sector from EIA, and explains the returned quantity in BTU equivalents. It does not explicitly distinguish itself from sibling EIA tools, but the sector focus and energy-consumption framing make the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied: use this tool when you need monthly US energy consumption broken down by sector. However, there is no explicit guidance about when to prefer it over related EIA tools such as eia_electricity_state or eia_natural_gas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_gasoline_pricesARead-onlyIdempotentInspect
Weekly US retail gasoline prices from EIA. Filter by region (PADD1-PADD5 or national) and grade (regular, midgrade, premium, diesel, all). Useful for fuel-cost analysis, transportation logistics, and consumer price tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| grade | No | Fuel grade: 'all', 'regular', 'midgrade', 'premium', 'diesel'. Default 'all'. | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| region | No | PADD region code or 'national'. Examples: 'national', 'PADD1', 'PADD3'. Default 'national'. |
TDQS
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), and the description adds useful context beyond them: data source (EIA), cadence (weekly), and retail market segment. It does not disclose units (¢/gal), the effective time window when start/end are omitted, or response shape, but for a read-only query tool with full annotation coverage this is acceptable value-add rather than a serious gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the first defines the resource and source, the second summarizes the key filters, the third states practical use cases. The core function is front-loaded and there is no filler, tautology, or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with five optional, fully documented parameters, the description covers source, frequency, filter dimensions, and use cases, and the schema covers all parameters. With no output schema present, the agent is left without return-format expectations, and units or default time-range behavior are unstated — not critical to invoking the tool, but enough to prevent a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — every parameter already carries defaults, allowed values, and examples (e.g., region's 'national'/'PADD1' examples, grade's enum list, limit's 50/5000 bounds). The description's mention of PADD1-PADD5 and the five grade values largely duplicates schema content rather than adding new semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource precisely — 'Weekly US retail gasoline prices from EIA' — and names the two filter dimensions (region PADD1-PADD5/national, grade with five values). The retail-gasoline focus distinguishes it from adjacent energy siblings like eia_oil_supply and eia_natural_gas, though no sibling is named explicitly. Clear and specific enough for an agent to grasp scope at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three concrete use contexts — fuel-cost analysis, transportation logistics, and consumer price tracking — which signal when an agent would plausibly need this data. However, it gives no exclusionary guidance or named alternatives despite a large suite of overlapping energy/price tools (eia_oil_supply, fred_observations, energy_market_snapshot), leaving routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_natural_gasARead-onlyIdempotentInspect
US natural gas data from EIA. Series options: 'spot' (Henry Hub daily), 'futures' (NYMEX front-month daily), 'residential' (monthly retail to households), 'storage' (weekly working gas in storage). Default 'spot'.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| series | No | Subset to query: 'spot', 'futures', 'residential', 'storage'. Default 'spot'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool read-only, idempotent, and non-destructive, so the description only needs to add context beyond that. It adds useful cadence and default-series behavior, but it does not disclose the output shape, ordering, date-bound interpretation, or potential quirks across different series cadences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the resource and packs the series options, cadences, and default without redundancy. Every clause contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only data retrieval tool with fully documented parameters and safe annotations, the description covers the important selection dimension and default behavior. It omits output format or units, but the schema and annotations carry enough weight that the missing output details are a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by expanding the series enum with concrete meanings and cadences ('spot' = Henry Hub daily, 'residential' = monthly retail) and reinforces the default value, which goes beyond the schema's bare parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as US natural gas data from EIA and enumerates the available series with their cadences, which distinguishes it from sibling EIA tools focused on electricity, gasoline, oil, or renewables. It stops short of a 5 because it uses the noun phrase 'data' rather than a specific verb like 'retrieve' or 'fetch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the commodity focus and series options, but the description does not explicitly state when to choose this tool over sibling EIA data tools or when to use an alternative. There is no exclusions or routing guidance, so the agent must infer usage from the domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_oil_supplyARead-onlyIdempotentInspect
Weekly US crude oil supply data from EIA. Metrics: 'production' (US field production), 'imports' (weekly oil imports), 'stocks' (commercial crude stocks), 'refinery_inputs' (gross refinery inputs). Filter by PADD region. Default: national production.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| metric | No | Metric: 'production', 'imports', 'stocks', 'refinery_inputs'. Default 'production'. | |
| region | No | PADD region or 'national'. Examples: 'national', 'PADD1', 'PADD3'. Default 'national'. |
TDQS
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 the weekly cadence and the national-production default, but doesn't disclose response format, pagination behavior, or any data availability limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: source and cadence first, then metrics, then filtering, then defaults. Every sentence contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data-retrieval tool with fully documented parameters, the description covers the core aspects: metrics, filtering, default behavior, and cadence. It does not describe the output schema or pagination, but annotations and the parameter schema carry much of the load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds useful semantic enrichment by defining each metric (e.g., 'production' as US field production and 'stocks' as commercial crude stocks) and explicitly stating defaults for metric and region.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource: weekly US crude oil supply data from EIA, and enumerates the available metrics. It distinguishes itself from other EIA tools by topic, though it lacks an explicit retrieval verb and does not name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to prefer this tool over related EIA tools such as eia_gasoline_prices, eia_natural_gas, or eia_series_lookup. It only mentions the PADD filter and default behavior, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_renewable_generationARead-onlyIdempotentInspect
Monthly US electricity generation by source from EIA. Sources: solar, wind, hydro, nuclear, geothermal, biomass, all. Optional state filter (default national). Returns generation in megawatt-hours.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| state | No | Two-letter state code or 'US' for national rollup. Default 'US'. | |
| source | No | Generation source: 'all', 'solar', 'wind', 'hydro', 'nuclear', 'geothermal', 'biomass'. Default 'all'. |
TDQS
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 useful scoping details like available sources, state filtering, and megawatt-hour units, but does not disclose behaviors such as pagination or response shape. This is moderate added context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The core scope is front-loaded, and the supporting details about sources, state filter, and units are compact and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data tool with complete schema coverage and no required parameters, the description provides the essential context: domain, cadence, source options, state filtering, and output units. It does not describe the response structure, but with no output schema, the given information is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description largely restates the source list and state default without adding new semantic meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource: monthly US electricity generation by source from EIA, and lists the available sources, optional state filter, and output unit. It is distinguishable from generic EIA siblings because it focuses on generation by source, though it does not explicitly name a sibling it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for use: retrieving monthly US electricity generation by source, with optional state filtering and national default. It does not explicitly state when not to use this tool or name alternative siblings, 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.
eia_series_lookupARead-onlyIdempotentInspect
Flexible EIA series lookup. Pass any EIA series ID (e.g. 'PET.RWTC.D' for WTI crude daily, 'NG.RNGWHHD.D' for Henry Hub spot daily, 'ELEC.PRICE.US-ALL.M' for US average electricity retail price monthly). Returns time-series data for that series. Use this when no other tool covers your specific need.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| series_id | Yes | EIA series ID. See https://www.eia.gov/opendata/browser/ for the full catalog. |
TDQS
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 description does not need to restate those. It adds useful scope information ('any EIA series ID' and 'returns time-series data') but does not disclose response structure, pagination, or error behavior — acceptable given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences, front-loaded with the core purpose, followed by useful examples and a final routing note. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-required-parameter lookup with a fully described schema and strong safety annotations, this is nearly complete. The main gaps are the absence of an explicit return-value shape and not naming specialized sibling tools to reduce mis-selection risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all four parameters at 100%, so the baseline is 3. The description adds practical meaning for series_id by mapping example IDs to real-world commodities and prices, which helps an agent construct valid calls. It adds little beyond the schema for start, end, and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific operation ('EIA series lookup'), names the resource, and gives concrete example series IDs. It establishes itself as a general-purpose fallback relative to specialized EIA siblings, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when no other tool covers your specific need' provides an explicit selection heuristic and communicates that this is a fallback tool. However, it does not enumerate which specialized alternatives should be preferred or list specific exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
energy_market_snapshotARead-onlyIdempotentInspect
One-call US energy market snapshot from EIA (public domain): the WTI crude (Cushing), Brent crude, and Henry Hub natural-gas benchmark prices, each enriched with derived context - latest level and date, 1-year change, where the current level sits within its own recent history (percentile), and the recent trend direction (rising/falling/flat). Answers 'what is oil/gas doing right now, and is it historically high or low' in a single call. A source that fails is noted, not fatal. Premium synthesis over the EIA domain; informational market data, not trading advice.
| Name | Required | Description | Default |
|---|---|---|---|
| lookback_days | No | Trailing daily history to pull per benchmark for the derived context (default 400 ~ 1.3 years; min 60, max 2000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds valuable behavioral context: EIA as public-domain source, partial failure being non-fatal ('A source that fails is noted, not fatal'), and a disclaimer that it is informational, not trading advice. This goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: three sentences covering what is returned, the use case, and failure/disclaimer behavior. The word 'premium' is mild marketing fluff, but the overall structure is front-loaded with the most important scoping information and does not waste sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return payloads, and it does so explicitly: per benchmark it lists latest level and date, 1-year change, percentile, and trend direction. Combined with failure handling and source disclosure, an agent has enough to invoke and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one optional parameter, lookback_days, and its schema description already covers default, minimum, maximum, and purpose. The free-text description references 'trailing daily history' indirectly through 'recent history' but does not add meaning beyond the schema. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair ('One-call US energy market snapshot') and specifies the exact benchmarks covered: WTI crude, Brent crude, and Henry Hub natural gas. The use-case sentence ('what is oil/gas doing right now, and is it historically high or low') clarifies scope and differentiates it from more granular EIA sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool: for a single-call snapshot of current oil/gas prices with historical context. It does not explicitly list sibling alternatives or exclusion criteria, so it falls short of a perfect 5, but it gives strong contextual guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_dossierARead-onlyIdempotentInspect
Build a consolidated cross-source dossier for a company in one call: SEC registration and identifiers (EDGAR), environmental footprint and regulated facilities (EPA ECHO), and sanctions/denied-party screening (OFAC/UN/EU/BIS) with a confidence score. Returns a per-source summary plus top records. This is a single AI-native lookup across data that otherwise lives in separate silos. Matches are name-based; verify identity before relying on any link.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company / organization name, e.g. 'Chevron Corporation', 'Acme Trucking LLC'. | |
| limit | No | Max records to surface per source (default 5, max 15). | |
| state | No | Optional 2-letter US state to disambiguate location-based sources (e.g. 'TX'). |
TDQS
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 valuable behavioral context beyond that: matches are name-based, identity should be verified before relying on any link, and the result includes a confidence score plus per-source summaries. This meaningfully helps an 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.
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, source coverage in the second, and a critical caveat in the last. Every sentence earns its place, and there is no redundant repetition of schema or annotation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description does well by enumerating sources, explaining the return shape (per-source summary plus top records), and flagging the name-matching caveat. It could have added a bit more about what happens on no matches or ambiguity, but the essential operational context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% description coverage for all three parameters, so the baseline is 3. The description doesn't add parameter-level detail, but it reinforces that the tool is company-focused and returns top records, which indirectly relates to the limit parameter. This is adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Build a consolidated cross-source dossier for a company in one call.' It then names the exact sources covered (SEC/EDGAR, EPA ECHO, OFAC/UN/EU/BIS), which clearly distinguishes this aggregation tool from single-source siblings like edgar_company_facts or epa_facility_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when a single cross-source consolidated dossier is needed, instead of querying separate data silos. It does not explicitly name alternative tools or say when not to use it, 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.
entity_resolveARead-onlyIdempotentInspect
Resolve a company across US government sources in one call. Searches SEC EDGAR, EPA ECHO, and the sanctions lists by name and returns the candidate match and strong identifiers (SEC CIK, ticker, EPA registry id) found in each. Use this to confirm WHO an entity is and gather its IDs before pulling detail. Matches are name-based candidates to verify, not certain identity links.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company / organization name, e.g. 'Chevron Corporation', 'Acme Trucking LLC'. | |
| state | No | Optional 2-letter US state to disambiguate location-based sources (e.g. 'TX'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds valuable behavioral nuance by explicitly warning that matches are name-based candidates to verify, not certain identity links, and by disclosing that the tool consolidates multiple sources in one call. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with every sentence earning its place: the core action, the specific data sources, the use case, and the critical caveat about candidate matches. There is no filler or redundant restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with no output schema, the description provides enough context to understand what will be returned (candidate match and strong identifiers from each source). It is slightly incomplete because it does not address the relationship to the similarly named sibling 'resolve_entity', nor what happens when no match is found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters thoroughly (100% coverage), including the optional state disambiguation. The description reinforces that searches are by name and that state helps with location-based sources, but it does not add substantial new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: resolving a company across US government sources (SEC EDGAR, EPA ECHO, sanctions lists) and returning identifiers. It is specific about verb, resource, and scope, but it does not explicitly differentiate from the sibling tool 'resolve_entity', which could confuse an agent deciding between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical guidance: use this to confirm an entity's identity and gather its IDs before pulling detail. This establishes clear context for when to invoke the tool, though it does not mention any exclusions or name alternative tools to consider instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environmental_site_riskARead-onlyIdempotentInspect
One-call environmental-compliance and contamination liability read for a SPECIFIC site or operator - the question a buyer, lender, or Phase-I ESA asks before a deal. Distinct from location_risk_report (which scores natural hazards plus a shallow count of nearby facilities): this drills DEEP into one named facility's EPA record via ECHO/FRS - overall compliance status, per-statute program standing (Clean Air/Water/RCRA/etc.), formal enforcement actions and penalty totals, significant-non-compliance and non-compliant-quarter flags - plus a best-effort parcel record for site context. Returns a verdict band (NO ADVERSE EPA RECORD / REVIEW RECOMMENDED / CONTAMINATION-COMPLIANCE CONCERN / NO FACILITY FOUND), the flags, and the evidence. A source that fails is noted, not fatal. This is an EPA public-record screen, not a Phase-I Environmental Site Assessment or a substitute for one. Premium cross-source synthesis.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Site, facility, or operator name to screen (e.g. 'Smith Manufacturing', 'Acme Plating Inc'). | |
| state | No | Optional 2-letter state to disambiguate the EPA facility and parcel search. | |
| address | No | Optional street address to pin the parcel record. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses that a failing source is 'noted, not fatal,' that the parcel record is 'best-effort,' and that it is a public-record screen via ECHO/FRS. This gives the agent realistic expectations about completeness and partial data 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with purpose, followed by disambiguation, output contract, and caveats. It is slightly long and ends with the promotional 'Premium cross-source synthesis' tagline, which adds little functional guidance, but the rest is information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description lists the exact verdict-band values, the flagged data categories, and the evidence returned. Combined with the optional state/address parameters for disambiguation, an agent has enough context to invoke the tool and interpret its result appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters and schema coverage is 100%, so the baseline is 3. The description reinforces that the tool targets a 'specific site or operator' but adds no new parameter-level syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific resource and intent: 'environmental-compliance and contamination liability read for a SPECIFIC site or operator' and names the exact output (verdict band, flags, evidence). It also differentiates itself from location_risk_report, so an agent can tell which tool answers a compliance/contamination question versus a natural-hazard screen.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use it ('the question a buyer, lender, or Phase-I ESA asks before a deal') and when not to ('not a Phase-I Environmental Site Assessment or a substitute for one'). It explicitly names the closest alternative, location_risk_report, and explains the depth distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_enforcement_searchARead-onlyIdempotentInspect
List formal enforcement actions and penalties taken against a facility, plus a per-program summary of formal/informal actions, cases, and total penalties. Requires an EPA Registry ID (use epa_facility_search to find it).
| Name | Required | Description | Default |
|---|---|---|---|
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read profile (readOnlyHint, idempotentHint, destructiveHint false), and the description adds substantive return-content detail: formal actions, penalties, and a per-program summary of formal/informal actions, cases, and total penalties. It also discloses the required identifier dependency. No behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the first sentence states purpose and output composition, and the second handles the prerequisite and lookup routing. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool with no output schema, the description supplies the essential call context (required ID, how to obtain it) and the response shape (enforcement actions, penalties, per-program summary). There are no obvious gaps that would prevent an agent from correctly selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents registry_id with type, requirement, source tool, and an example, so schema coverage is 100%. The description reinforces the Registry ID requirement and lookup path but adds little semantic nuance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a concrete verb-resource pairing ('List formal enforcement actions and penalties taken against a facility') and specifies the additional per-program summary output. It clearly states the prerequisite and points to epa_facility_search, but it does not explicitly contrast with other EPA facility tools such as epa_facility_compliance or epa_water_or_air_violations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the required input condition ('Requires an EPA Registry ID') and routes users to epa_facility_search when one is not available. This is clear context for invocation, but it does not state when enforcement search should be preferred over sibling compliance/violation tools, so no exclusions or alternative comparisons are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_facility_complianceARead-onlyIdempotentInspect
Report a facility's current compliance status and recent non-compliance history by environmental program (Clean Air Act, Clean Water Act, RCRA hazardous waste, Safe Drinking Water Act). Shows quarters in non-compliance, quarters in significant non-compliance, and last inspection per statute. Requires an EPA Registry ID.
| Name | Required | Description | Default |
|---|---|---|---|
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, and non-destructive, covering the safety profile. The description adds useful behavioral context by specifying that output is organized by environmental program and includes quarters in non-compliance, significant non-compliance, and last inspection per statute. It does not discuss data freshness, error handling, or response format, but these are secondary given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with all information front-loaded: purpose first, then output specifics, then the prerequisite. There is no filler or vague language. The only minor redundancy is restating the registry ID requirement, but it is useful as an invocation prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description is nearly complete: it explains what is reported, the scope by statute, the specific output fields, and the required input. It does not explain how to obtain the registry ID, but that is covered in the schema parameter description, or how errors are surfaced, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter registry_id is well documented with type, format, example, and its source via epa_facility_search. The description simply restates that a Registry ID is required, which adds no new semantic information. The baseline of 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it reports a facility's current compliance status and recent non-compliance history by environmental program. It also lists the specific statutes and output fields, making the tool's function clear. However, it does not explicitly differentiate itself from sibling EPA tools like epa_facility_details or epa_enforcement_search, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a key prerequisite: 'Requires an EPA Registry ID.' This implies the tool should be used after obtaining an ID, and the schema parameter description points to epa_facility_search as the source. It does not explicitly state when to prefer this tool over related EPA tools or when not to use it, so usage guidance is present but implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_facility_detailsARead-onlyIdempotentInspect
Get a Detailed Facility Report for one facility by its EPA Registry ID: name, address, permits held, and per-statute (CAA/CWA/RCRA/SDWA) compliance and inspection summaries. Use epa_facility_search first to obtain the registry_id.
| Name | Required | Description | Default |
|---|---|---|---|
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
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 useful context about the report contents, including the specific statutes covered (CAA/CWA/RCRA/SDWA), but does not disclose behaviors such as data freshness, authorization requirements, response size, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler. The first sentence leads with the action and resource, then lists contents; the second gives the prerequisite workflow. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, no output schema, and annotations covering the read-only/idempotent behavior, the description is largely complete: it identifies how to obtain the input and what the report contains. The only minor gap is the lack of a more precise return structure, but the listed categories are sufficient for an agent to decide to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with registry_id fully documented as the EPA Registry ID returned by epa_facility_search and an example provided. The description reinforces the same information but does not meaningfully add beyond what the input schema already states, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('Detailed Facility Report for one facility'), and the key input (EPA Registry ID), then enumerates the report contents: name, address, permits, and per-statute compliance summaries. It is clear and distinguishable from search-style siblings like epa_facility_search, though it does not explicitly contrast itself with epa_facility_compliance or other EPA detail tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is for one facility already identified by a registry_id, and it explicitly instructs the agent to obtain that ID via epa_facility_search first. It does not, however, explain when to choose this over closely related siblings such as epa_facility_compliance or epa_enforcement_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_facility_searchARead-onlyIdempotentInspect
Search EPA-regulated facilities by state, city, zip, and/or facility name. Returns each facility's Registry ID (needed for the other EPA tools), address, and a snapshot of its compliance status across Clean Air Act, Clean Water Act, RCRA (waste), and Safe Drinking Water programs. Provide at least one filter; broad queries (e.g. state only for a large state) may be rejected as too broad, so add a city, zip, or name.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit ZIP code (e.g. '20010'). | |
| city | No | City name (e.g. 'Washington'). | |
| name | No | Facility name or fragment (e.g. 'Pepco', 'refinery'). | |
| limit | No | Maximum facilities to return (default 25, max 100). | |
| state | No | Two-letter state or territory code (e.g. 'DC', 'TX', 'CA'). | |
| active_only | No | If true, only return facilities flagged with active enforcement/compliance activity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile. The description adds genuine behavioral context beyond annotations: broad queries may be rejected, at least one filter is required, and the return payload covers Registry ID, address, and a multi-program compliance snapshot. No contradiction with the readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the core action, the return value with downstream relevance, and the filter/query-construction constraint. Everything is front-loaded with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately carries the return-value burden by listing Registry ID, address, and the compliance programs covered. It also discloses rejection behavior and the filter requirement. Slightly shy of a 5 only because it omits minor details like result ordering or the behavior of name-fragment matching.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each of the six parameters is already documented in the input schema. The description adds a cross-parameter constraint not captured in the schema (at least one of state/city/zip/name must be provided) and warns against overly broad combinations, which is useful but modest on top of the schema's heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('EPA-regulated facilities'), enumerates the filter dimensions, and details the return payload. The mention that Registry ID is 'needed for the other EPA tools' positions this as the entry point to the EPA tool family, distinguishing it from detail/compliance-oriented siblings like epa_facility_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete, actionable usage conditions: 'Provide at least one filter' and warns that broad queries like state-only for a large state 'may be rejected as too broad.' This is clear context for constructing valid calls. However, it never names sibling alternatives or explicit when-not-to-use conditions (e.g., 'use epa_facility_details once you have a Registry ID'), 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.
epa_water_or_air_violationsARead-onlyIdempotentInspect
Report a facility's air (Clean Air Act) or water (Clean Water Act / Safe Drinking Water Act) violations and the related compliance summaries. Set media to 'air', 'water', or 'all'. Requires an EPA Registry ID.
| Name | Required | Description | Default |
|---|---|---|---|
| media | No | Which media to report: 'air', 'water', or 'all' (default 'all'). | |
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful context beyond annotations: the tool returns 'violations and related compliance summaries' and requires a Registry ID, which clarifies the input prerequisite. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It leads with the core purpose, then immediately gives the key parameter options and prerequisite. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with rich annotations, the description is largely complete: it states what the tool returns, the media choices, and the required input. It does not detail output structure or pagination, but with no output schema and openWorldHint true, this is a minor gap rather than a blocking omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description reinforces the media enum values and the Registry ID requirement but adds little new semantic detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and identifies the resource: a facility's air or water violations plus related compliance summaries, with explicit statute references (Clean Air Act, Clean Water Act, Safe Drinking Water Act). This clearly communicates the tool's domain, though it does not explicitly differentiate it from sibling tools like epa_facility_compliance or epa_enforcement_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: set media to 'air', 'water', or 'all' and provide an EPA Registry ID. However, it does not state when to prefer this tool over related EPA siblings or when not to use it, leaving the choice to inference from the topic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epss_scoreARead-onlyIdempotentInspect
FIRST EPSS exploit prediction score for a CVE. Returns probability (0-1) of exploitation in the next 30 days plus the percentile rank.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE identifier. |
TDQS
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 meaningful behavioral context beyond annotations by specifying the output semantics: a 0-1 probability, a 30-day lookahead window, and a percentile rank. It could add edge-case behavior (e.g., behavior for unknown/malformed CVE IDs), but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the first identifies the tool's unique function, the second enumerates exactly what is returned. The key scoping detail (EPSS prediction for a CVE) is front-loaded, and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool with openWorldHint and no output schema, the description covers the essential contract: input (CVE) and output (probability plus percentile). The main gap is error and edge-case behavior (invalid or nonexistent CVE IDs, data availability for recent CVEs), but given the tool's simplicity and the annotations, the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter cve_id, whose schema description is 'CVE identifier.' The description echoes the concept of a CVE without adding format details (e.g., CVE-YYYY-NNNNN pattern) or input constraints. The schema carries the parameter documentation, so baseline 3 with no additional description value is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (a CVE) and a specific, well-known score (FIRST EPSS exploit prediction score), then clarifies the exact return semantics: probability (0-1) of exploitation in the next 30 days plus percentile rank. This clearly distinguishes it from sibling tools like cve_lookup or kev_status_check, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—you call this when you need an EPSS score—but it never explicitly states when to prefer this over related siblings such as kev_status_check, cve_lookup, or cve_search_by_keyword. No exclusions or alternative routing is provided, so the agent must infer the distinction from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
faa_public_aviation_airport_profileARead-onlyIdempotentInspect
Return one official FAA NASR facility profile with privacy-minimized airport, runway, and runway-end technical fields. Includes identifiers, coordinates/elevation, status/use, tower and FAR 139 codes, fuel codes, runway length/width/surface/condition/lights, ILS and approach-light fields, declared distances, exact cycle, and provenance. Use this for 'FAA profile for JFK', 'runways and approach equipment at KDEN', or technical airport due diligence. It excludes contacts and remarks and is not a substitute for current NOTAMs, charts, or flight planning.
| Name | Required | Description | Default |
|---|---|---|---|
| airport | Yes | Exact FAA location id, ICAO id, NASR site number, or unambiguous facility name. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 valuable context: 'privacy-minimized', 'excludes contacts and remarks', and 'not a substitute for current NOTAMs, charts, or flight planning'. These go beyond annotations by clarifying scope and limitations, though it could further detail data freshness or potential null fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but contains multiple clauses listing fields, usage examples, and exclusions. It is front-loaded with the main purpose, but the field list is somewhat long. Still, every segment adds value—no filler. It is efficient for the amount of information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description comprehensively covers what the tool returns (a detailed list of fields), how to use it (examples and identifier types), and what it does not do (exclusions and NOTAM caveat). The schema covers parameters, and no output schema exists, so the field list serves as the return expectation. For a single-airport profile tool with low parameter complexity, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already fully cover both parameters: 'airport' accepts multiple identifier types, and 'response_format' specifies markdown/json with default. The description does not add parameter-specific detail beyond examples; it reiterates the concept of using identifiers. Since schema coverage is 100%, baseline is 3, and the description adds minimal extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'one official FAA NASR facility profile' with a specific list of technical fields. It distinguishes itself from sibling search and compare tools by targeting single-airport profiles, and provides concrete query examples ('FAA profile for JFK', 'runways and approach equipment at KDEN'). This is a precise verb-resource statement with clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this for...' with concrete examples, and lists exclusions: 'excludes contacts and remarks' and 'not a substitute for current NOTAMs, charts, or flight planning'. It does not explicitly name alternative tools (like the search or compare siblings), so it misses the 'alternatives' component, but the when/when-not guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
faa_public_aviation_compare_airportsARead-onlyIdempotentInspect
Compare two to eight FAA NASR facilities on one consistent 28-day source cycle. Ranks by longest published runway and compares runway count/dimensions, hard-surface and lighted counts, ILS and approach-light runway ends, tower/FAR 139 codes, status/use, identifiers, and provenance. Use this for 'compare JFK, LAX, and ORD runway capabilities' or 'which shortlisted airport has the longest runway and ILS-equipped ends?'. It is a technical evidence view, not an operational suitability decision or navigation source.
| Name | Required | Description | Default |
|---|---|---|---|
| airports | Yes | Two to eight FAA location ids, ICAO ids, site numbers, or unambiguous names. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 and side-effect profile. The description adds useful behavioral context beyond these: the '28-day source cycle' (data freshness) and the 'technical evidence view' caveat, which clarify the scope and limitations. It does not contradict annotations, and the added context is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. It opens with the core action and source cycle, then lists the comparison dimensions, then gives usage examples and a caveat. It is front-loaded and every sentence contributes meaning, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey what the tool returns. It lists the compared dimensions, implying a structured comparison output, and states it is a 'technical evidence view,' which sets expectations. It doesn't explicitly mention the response_format parameter or output structure, but the schema covers that. For a moderate-complexity compare tool, this is largely complete, with only minor gaps in explicit return-value description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'airports' and 'response_format' are already documented in the input schema. The description reinforces the 'two to eight' constraint for airports but does not add new syntax or format details beyond what the schema provides. Per the rubric, the baseline of 3 applies when the schema covers parameters, and the description offers only marginal additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Compare', the resource 'FAA NASR facilities', and enumerates the specific attributes compared (runway count/dimensions, hard-surface and lighted counts, ILS, etc.). It also provides concrete example queries ('compare JFK, LAX, and ORD runway capabilities') that clearly distinguish it from the single-airport profile and search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use examples ('Use this for...') and a clear when-not-to-use statement ('not an operational suitability decision or navigation source'). It also implies the alternative for single-airport queries by focusing on comparison, though it doesn't name sibling tools directly. This is strong guidance for an agent to decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
faa_public_aviation_search_airportsARead-onlyIdempotentInspect
Search LiveDataLink's self-hosted official FAA 28-day NASR snapshot for U.S. airports and other landing facilities. Returns FAA/ICAO identifiers, location, facility type/use/status, coordinates, elevation, runway counts and dimensions, tower/FAR 139 signals, pagination, and cycle provenance. Use this for 'find airports near a city', 'public-use airports in Ohio with a 5,000-foot runway', or to resolve an identifier before a profile call. Reference data only; not live airport status or NOTAMs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum facilities. Default 20. | |
| query | No | FAA/ICAO id, airport/facility name, or city. | |
| state | No | Two-letter U.S. state or territory code. | |
| offset | No | Facilities to skip. Default 0. | |
| status | No | FAA operational or closure status. Omit to include all statuses. | |
| facility_use | No | FAA public-use or private-use classification. | |
| facility_type | No | Airport, heliport, seaplane base, balloonport, gliderport, or ultralight facility. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| min_runway_length_ft | No | Require at least one runway of this published length. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive intent. The description goes beyond that by revealing the data is a 28-day snapshot, returns 'cycle provenance,' and is 'Reference data only; not live airport status or NOTAMs.' This is valuable behavioral context that annotations alone do not provide, and there is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence contributes: a precise resource statement, a compact list of return data, grounding use-case examples, and a critical reference-only warning. No filler or repetition; the most important scoping language is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, no-required-parameter, no-output-schema search tool, the description is thorough: it lists the returned identifier, location, type/status, runway, tower, pagination, and provenance fields, and covers appropriate usage and the important not-live caveat. Combined with 100% schema coverage and safety annotations, an agent has enough to invoke and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description adds above it by giving concrete example queries that map to parameter combinations: 'find airports near a city' (query), 'public-use airports in Ohio' (facility_use, state), 'with a 5,000-foot runway' (min_runway_length_ft), and 'resolve an identifier' (query). This aids an agent in choosing and composing parameters beyond the raw field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search') and resource (U.S. airports and other landing facilities in the FAA 28-day NASR snapshot), then enumerates the exact return fields. It further distinguishes the tool by tying it to use cases like 'find airports near a city' and 'resolve an identifier before a profile call,' which separates it from the sibling runway-search and compare tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use examples ('find airports near a city', 'public-use airports in Ohio with a 5,000-foot runway', 'resolve an identifier before a profile call') and a clear exclusion: 'Reference data only; not live airport status or NOTAMs.' It does not fully name the sibling alternatives such as faa_public_aviation_search_runways or faa_public_aviation_compare_airports, which would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
faa_public_aviation_search_runwaysARead-onlyIdempotentInspect
Search U.S. FAA NASR runways using bounded technical filters such as state, minimum published length/width, surface text, lighting, ILS, public use, and operational status. Returns the airport identity, runway dimensions/surface/condition/lighting, weight fields, ILS/approach-light end counts, pagination, cycle, and provenance. Use this for 'operational Texas runways at least 8,000 feet', 'public-use paved runways in Alaska', or airport-site screening. Reference data only; verify all performance and operational decisions independently.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum runways. Default 20. | |
| state | No | Two-letter U.S. state or territory code. | |
| offset | No | Runways to skip. Default 0. | |
| surface | No | Substring of FAA surface code, such as ASPH, CONC, TURF, WATER, or GRVL. | |
| ils_only | No | Require at least one runway end with a published ILS type. Default false. | |
| lighted_only | No | Require a nonblank FAA runway-light code. Default false. | |
| min_width_ft | No | Minimum published runway width in feet; water landing areas may be much wider than paved runways. | |
| min_length_ft | No | Minimum published runway length in feet. | |
| public_use_only | No | Require FAA public-use classification. Default false. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| operational_only | No | Exclude closed facilities. Default true. |
TDQS
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 useful behavioral context: it returns 'pagination, cycle, and provenance', and it explicitly warns that the data is reference-only and must be verified independently. It does not describe rate limits or exact pagination mechanics, but the annotations plus the reference-data warning cover the main behavioral concerns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a short warning. It front-loads the core purpose and filter types, then lists return fields, then gives examples, then ends with a safety caveat. Every sentence earns its place; there is no fluff or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with 11 optional parameters and no output schema, the description covers the purpose, filters, return fields, example queries, and a usage caveat. It does not explain pagination mechanics (limit/offset) in the description, but the schema covers those parameters and the description mentions pagination as a return field. The sibling tools are clearly differentiated, and the reference-data warning adds important context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters. The description adds a few semantic hints (e.g., 'water landing areas may be much wider than paved runways' is in the schema, not the description; the description mentions 'bounded technical filters' and lists filter categories). However, the description does not add much beyond the schema's parameter descriptions, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a specific resource ('U.S. FAA NASR runways'), and a precise scope ('bounded technical filters such as state, minimum published length/width, surface text, lighting, ILS, public use, and operational status'). It also lists the return fields, which distinguishes it from sibling tools like faa_public_aviation_search_airports and faa_public_aviation_airport_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete example queries ('operational Texas runways at least 8,000 feet', 'public-use paved runways in Alaska') and an explicit use case ('airport-site screening'). It also includes a clear exclusion: 'Reference data only; verify all performance and operational decisions independently.' This tells the agent when to use the tool and when not to rely on it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
facility_care_qualityARead-onlyIdempotentInspect
One-call care-quality + provider-identity read for a named US healthcare FACILITY (hospital, nursing home, home-health agency, or hospice). Joins two keyless federal sources: CMS Care Compare (data.cms.gov) for the facility's quality signal - the CMS star rating and, for a hospital, the measure-group highlights (mortality, safety of care, readmission, timely-and-effective care measured better / no different / worse vs national), plus ownership, type, and for a nursing home the health-inspection / staffing / quality-measure star breakdown, certified beds, abuse flag, and fines - and the NPPES NPI Registry for the facility's legal identity (organizational NPI, taxonomy, city/state, active status). Provide a facility name (e.g. 'Cleveland Clinic', 'Mayo Clinic Hospital'); optionally add a 2-letter state to disambiguate and a type (hospital / nursing_home / home_health / hospice) to pin the CMS dataset. When no type is given the tool infers the provider category from the NPPES taxonomy and probes the CMS datasets in order. A leg that fails is noted, not fatal. This is an INFORMATIONAL public-record read, NOT medical advice, a substitute for CMS Care Compare, or an endorsement of any facility.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional provider category to pin the CMS dataset: 'hospital', 'nursing_home', 'home_health', or 'hospice'. Omit to auto-detect. | |
| state | No | Optional 2-letter state to disambiguate the facility (e.g. 'OH', 'AZ'). | |
| facility | Yes | Facility name to look up (e.g. 'Cleveland Clinic', 'Mayo Clinic Hospital', 'Burns Nursing Home'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/destructive annotations, it discloses source-joining behavior, category inference via NPPES taxonomy, probing order, and that a failed leg is non-fatal. It also flags itself as informational rather than advice or endorsement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded summary followed by necessary source and data details; all sentences add information. It is slightly long due to enumerating returned fields, but this compensates for having no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description covers inputs, optional disambiguation, auto-inference, partial failure behavior, and enumerates the expected returned data fields. No critical operational gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of parameters, and the description adds value by explaining why state/type matter (disambiguation and CMS dataset pinning) and what happens when type is omitted. That is meaningful guidance, though not exhaustive on formats or return types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation: a one-call care-quality plus provider-identity read for a named US healthcare facility. It clearly identifies the two federal sources being joined, which separates it from single-source siblings like cms_hospital_search or npi_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit input pattern with optional state/type for disambiguation and pinning, plus auto-detection behavior when type is omitted. It also states exclusions (not medical advice, not a substitute for CMS Care Compare), but does not name alternative sibling tools directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fbi_cde_compare_state_to_nationalARead-onlyIdempotentInspect
Compare one state's monthly FBI summarized UCR offense rate with the national rate in LiveDataLink's self-hosted CDE aggregate snapshot, including both reporting-coverage series, rate difference, ratio, pagination, and provenance. Use this for 'California versus U.S. robbery rates in 2023', 'give national context for one state's burglary trend', or 'does state-national comparison have a coverage caveat?'. This deliberately supports only the FBI-recommended state-to-national context—not state rankings, city league tables, causal claims, or individual risk decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum monthly observations. Default 24. | |
| state | Yes | Two-letter U.S. state or District of Columbia abbreviation; US is not accepted. | |
| offset | No | Monthly observations to skip. Default 0. | |
| offense | Yes | FBI CDE summarized offense category. Aggregate categories overlap their component offenses. | |
| end_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| start_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds useful operational context beyond annotations: both reporting-coverage series, rate difference, ratio, pagination, and provenance are returned, and it flags a coverage caveat. It stops short of detailing pagination behavior limits or snapshot staleness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core comparison, then use cases and exclusions. The second sentence is dense but earns its length by listing outputs and boundary conditions; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns, and it does so by listing the coverage series, difference, ratio, pagination, and provenance. Combined with the exclusion list, an agent has enough to call it correctly; minor gaps remain about exact return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and enums document state and offense constraints already. The description reinforces that only state-to-national comparisons are supported (US not accepted per schema) but adds no parameter-level detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb (compare) and resource (one state's monthly FBI UCR offense rate vs. the national rate) with clear scope. It does not name the adjacent siblings (fbi_cde_state_crime_trend, fbi_cde_national_crime_trend), so the differentiation from those is only implicit in the 'state-to-national' framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete triggering examples ('California versus U.S. robbery rates in 2023', 'national context for one state's burglary trend') and explicit exclusions (no state rankings, city league tables, causal claims, or individual risk decisions). This is textbook when-to-use plus when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fbi_cde_national_crime_trendARead-onlyIdempotentInspect
Return a bounded U.S. monthly FBI summarized UCR offense-rate trend with national reporting population and coverage from LiveDataLink's self-hosted CDE snapshot. Use this for 'national burglary rate trend in 2020', 'U.S. violent-crime reporting coverage by month', or national context before a state comparison. The upstream national response does not publish reported count fields in this endpoint, so counts are null rather than back-calculated; crimes known to law enforcement only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum monthly observations. Default 24. | |
| offset | No | Monthly observations to skip. Default 0. | |
| offense | Yes | FBI CDE summarized offense category. Aggregate categories overlap their component offenses. | |
| end_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| start_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description adds genuine behavioral context beyond those: counts are null rather than back-calculated, and the data reflects 'crimes known to law enforcement only' — an important semantic caveat about the returned values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each doing distinct work: purpose/scope, usage examples, then a data caveat. Front-loaded with the core definition. Slightly dense but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining returns; it does so conceptually (monthly offense-rate trend plus national reporting population and coverage) and flags the null-count behavior. Combined with 100% parameter coverage, an agent has enough to call and interpret it, though pagination semantics for limit/offset are left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (including the enum constraints on offense and response_format) is already documented in the schema. The description adds only the general notion of a 'bounded' trend, which does not materially extend the parameter definitions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return a bounded U.S. monthly FBI summarized UCR offense-rate trend with national reporting population and coverage') and pins the scope as national and monthly. This distinguishes it from the state-level siblings (fbi_cde_state_crime_trend, fbi_cde_state_month_snapshot) without requiring the schema to be opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete trigger examples ('national burglary rate trend in 2020', 'U.S. violent-crime reporting coverage by month') and a positioning cue ('national context before a state comparison'), which implies fbi_cde_compare_state_to_national. It stops short of naming the alternative sibling explicitly, so it is clear context rather than full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fbi_cde_state_crime_trendARead-onlyIdempotentInspect
Return a bounded monthly trend for one state and one FBI summarized UCR offense category from LiveDataLink's self-hosted official CDE aggregate snapshot. Fields include reported offenses and clearances, rates per 100,000 reporting population, full and reporting populations, coverage percentage, pagination, and exact provenance. Use this for 'California violent-crime trend in 2023', 'monthly motor vehicle theft reported in Texas', or 'did coverage change during this state trend?'. Crimes known to law enforcement only; never use for cross-state rankings or individual decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum monthly observations. Default 24. | |
| state | Yes | Two-letter U.S. state or District of Columbia abbreviation; US is not accepted. | |
| offset | No | Monthly observations to skip. Default 0. | |
| offense | Yes | FBI CDE summarized offense category. Aggregate categories overlap their component offenses. | |
| end_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| start_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe, idempotent, read-only profile, so the description is free to add domain context: the data is a bounded self-hosted snapshot, it covers crimes known to law enforcement only, and it carries provenance and coverage metadata. These are useful behavioral/trait disclosures beyond the annotations, though no auth or rate-limit detail is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, followed by fields and then usage/caveats. Every sentence carries weight, though it is on the denser end and could trim some enumerations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields (offenses, clearances, rates per 100,000, populations, coverage percentage, pagination, provenance) and stating the data-scope caveat. For a 7-param, no-output-schema tool this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters (including the YYYY-MM formats, the enum, and the overlap note on aggregate categories) are already documented. The description adds 'bounded' and 'one state and one offense' framing but no new parameter syntax or format meaning, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return), the exact resource (bounded monthly trend for one state and one FBI summarized UCR offense category), and the data source (LiveDataLink self-hosted CDE snapshot). This clearly differentiates it from siblings like fbi_cde_national_crime_trend, fbi_cde_compare_state_to_national, and fbi_cde_state_month_snapshot without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use-case examples ('California violent-crime trend in 2023', 'monthly motor vehicle theft reported in Texas') and an explicit exclusion ('never use for cross-state rankings or individual decisions'). It does not name a specific alternative sibling to redirect to, so it falls just short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fbi_cde_state_month_snapshotARead-onlyIdempotentInspect
Return all ten hosted FBI summarized UCR offense categories for one state and month from LiveDataLink's self-hosted CDE aggregate snapshot, with counts, rates, reporting population coverage, and provenance. Use this for 'FBI crime snapshot for Ohio in June 2022', 'which CDE categories are available for this state-month?', or to inspect coverage before a trend query. Categories overlap and must not be summed; this is not a jurisdiction score, person-level record search, or current incident feed.
| Name | Required | Description | Default |
|---|---|---|---|
| month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| state | Yes | Two-letter U.S. state or District of Columbia abbreviation; US is not accepted. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world, non-destructive behavior, but the description adds genuinely non-obvious traits: the ten categories overlap and must not be summed, counts come with rates and reporting-population coverage, and provenance is included. It also warns that this is not a current incident feed, which prevents a plausible misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and scope, and the second sentence packs the usage examples, the coverage-inspection rationale, and the exclusions. The long clause chain in sentence one ('with counts, rates, reporting population coverage, and provenance') is dense but each element informs the agent, so there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description enumerates the return shape (ten overlapping categories, counts, rates, reporting coverage, provenance) and the schema covers all three parameters, including the markdown/JSON format choice. Nothing an agent needs to call this correctly or interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (month as YYYY-MM within the hosted snapshot, two-letter state with US excluded, response_format enum), so the schema already carries all parameter meaning. The description only weakly reinforces this by saying 'one state and month' and adds no format or edge-case detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (return the ten hosted FBI UCR offense categories for one state-month from the CDE aggregate snapshot) and differentiates itself from siblings by framing the output as a point-in-time snapshot rather than a trend or comparison. An agent can distinguish it from fbi_cde_state_crime_trend, fbi_cde_compare_state_to_national, and fbi_cde_state_reporting_coverage without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete trigger phrases ('FBI crime snapshot for Ohio in June 2022', 'which CDE categories are available for this state-month?') and a stated purpose of inspecting coverage before a trend query, plus explicit exclusions (not a jurisdiction score, person-level search, or incident feed). It stops short of naming the specific sibling tools to use instead, so the routing 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.
fbi_cde_state_reporting_coverageARead-onlyIdempotentInspect
Inspect monthly FBI UCR population coverage for one state in LiveDataLink's self-hosted CDE aggregate snapshot before interpreting its summarized crime trend. Returns reporting population, full population, coverage percentage, an explicit warning below 90 percent, pagination, and provenance. Use this for 'was California's 2021 FBI reporting coverage complete?', 'find low-coverage months in this state period', or to qualify an analysis. Coverage is not data quality proof and must accompany, not replace, methodological review.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum monthly observations. Default 24. | |
| state | Yes | Two-letter U.S. state or District of Columbia abbreviation; US is not accepted. | |
| offset | No | Monthly observations to skip. Default 0. | |
| end_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| start_month | Yes | Calendar month in YYYY-MM format within the hosted snapshot. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish the safe read-only/idempotent profile, and the description adds substantial behavior beyond them: it discloses the returned fields (reporting population, full population, coverage percentage), an automatic warning threshold below 90 percent, pagination, and provenance. It also issues an interpretive boundary ('coverage is not data quality proof'), which is genuinely useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then the return contents, then usage examples, then the caveat. Dense and information-rich, though the sentence listing return fields is somewhat packed and could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by enumerating the payload fields and the warning behavior. It also covers scope, usage, and interpretive limits, leaving nothing an agent needs missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters including the state abbreviation constraint and YYYY-MM month formats are already documented. The description adds only mild value by characterizing the data as monthly observations subject to pagination, which maps loosely to limit/offset. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (Inspect) and resource (monthly FBI UCR population coverage for one state) and explicitly scopes it to LiveDataLink's CDE aggregate snapshot. It also differentiates itself from the crime-trend siblings by framing its role as a check performed 'before interpreting its summarized crime trend.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage triggers via examples ('was California's 2021 coverage complete?', 'find low-coverage months') and a clear context rule: use it to qualify an analysis before interpreting trends. It stops short of naming sibling tools like fbi_cde_state_crime_trend as explicit alternatives, so the routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fbi_wantedARead-onlyIdempotentInspect
Search the FBI's public Wanted/fugitive list by name or keyword. Returns matching subjects with aliases, the responsible field offices, and a link. Complements sanctions screening for person due diligence. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-25, default 10). | |
| query | No | Name or keyword to search (optional; omit for the current featured list). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral detail: it returns matching subjects with aliases, responsible field offices, and a link, and notes that no API key is required. This adds value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core action and resource appear first, return information is front-loaded, and the complementary use case is stated efficiently. 'Keyless' is a useful one-word clarification of access requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only search tool, the description is largely complete: it states the data source, search behavior, key return fields, and authentication posture. There is no output schema, but the listed return fields give the agent a reasonable expectation. Minor gaps like pagination or result count are acceptable for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'limit'). The description restates that search is by name or keyword but does not add new meaning beyond the schema. Baseline 3 is appropriate because the schema carries the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: searching the FBI's public Wanted/fugitive list. It also clarifies that matching is by name or keyword, which makes the tool's scope unambiguous. It stands apart from neighboring sanctions and screening tools by naming its exact public data source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear context: it complements sanctions screening for person due diligence. This tells the agent when to reach for this tool. It does not explicitly list when not to use it or name alternative tools, but the intended placement relative to sanctions workflows is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_device_510kARead-onlyIdempotentInspect
FDA 510(k) clearances for medical devices. The 510(k) pathway is how most non-high-risk devices come to market in the US. Filter by manufacturer (applicant), device name, product code, or decision date range. Used for competitive intel, device R&D scouting, M&A research.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Manufacturer (applicant) name or device name search term. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| product_code | No | Optional product code (e.g. 'DXJ' for ECG). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile: readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds helpful domain context about the 510(k) pathway and what the dataset represents, but it does not disclose deeper behavioral details such as output shape, pagination, or whether a filter is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and uses three sentences that each add value: defining the resource, explaining the regulatory context, and noting practical applications. It is appropriately sized without being padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with fully documented parameters and strong annotations, the description covers the domain, filters, and likely use cases. It does not describe the return value shape, but the absence of an output schema and the simplicity of the tool make this an acceptable gap rather than a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description reiterates the main filter dimensions (manufacturer/applicant, device name, product code, decision date range) but does not add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as FDA 510(k) clearances for medical devices and states the main filtering dimensions. It differentiates from many FDA siblings like fda_device_recalls by focusing on 'clearances' rather than recalls, but it does not explicitly name or contrast sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical use cases—competitive intel, device R&D scouting, M&A research—which help an agent decide when the tool is relevant. It does not explicitly state when not to use it or point to alternative FDA tools, though the domain context makes the intended scope fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_device_recallsARead-onlyIdempotentInspect
FDA medical device recalls. Filter by device name or recalling manufacturer, classification (Class 1 most severe), or date range. Used for medical device supply chain monitoring and hospital biomed compliance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Optional device name or recalling firm search term. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| classification | No | Recall classification: 1 (Class I, most severe), 2, 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds mild behavioral context by explaining that classification Class 1 is most severe and that results can be filtered by date range, but it does not disclose return shape, pagination behavior, or data source limitations beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loads the core resource before giving filters and use cases. Every clause earns its place: it identifies the domain, lists the main query dimensions, and states practical applications.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with five optional, fully documented parameters, the description covers the essential purpose, filters, and use cases. It does not explain the return format, but given the read-only annotations and the schema completeness, the absence is a minor gap rather than a blocking issue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description's mention of 'device name or recalling manufacturer, classification, or date range' mirrors the schema fields without adding new parameter-level detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as FDA medical device recalls and specifies the available filters (device name/manufacturer, classification, date range). It distinguishes this tool from sibling recall tools like fda_drug_recalls and fda_food_recalls by the explicit 'medical device' scope, though it does not use a strong action verb such as 'search' or 'list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an intended context ('medical device supply chain monitoring and hospital biomed compliance'), which implies the tool is for medical-device-specific recall queries. It does not explicitly mention alternatives such as fda_drug_recalls or cpsc_recall_search, 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.
fda_drug_adverse_eventsARead-onlyIdempotentInspect
FDA Adverse Event Reporting System (FAERS) reports for a specific drug. Each result describes a reported adverse reaction including patient demographics, reactions, outcome, and seriousness. Used for pharmacovigilance and post-market safety analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| drug | Yes | Drug name (brand or generic) to query FAERS for. Example: 'Lipitor' or 'atorvastatin'. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| reaction | No | Optional MedDRA-preferred-term reaction filter (e.g. 'headache', 'nausea', 'liver injury'). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| serious_only | No | If true, only return serious adverse events (death, hospitalization, life-threatening, disability). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict them. It adds useful context that the data comes from spontaneous FAERS reports and that each result represents a reported adverse reaction, which helps the agent interpret the returned data correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, leading with the resource and scope before describing result contents and use case. The third sentence about pharmacovigilance is slightly generic but still earns its place as selection context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, read-only annotations, and no output schema, this description is reasonably complete: it states the domain, the query scope, and the key result fields. It could be stronger by explicitly differentiating from the nearest FDA sibling tools, but it is not missing essential information for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all six parameters, so the description does not need to repeat parameter details. It reinforces the core 'specific drug' concept and mentions reactions, which overlaps with the reaction parameter, but adds no substantive semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource as FAERS adverse event reports and explicitly says they are 'for a specific drug.' It also lists what each result contains (demographics, reactions, outcome, seriousness), which clearly distinguishes this tool from siblings like fda_drug_lookup and fda_drug_recalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Used for pharmacovigilance and post-market safety analysis' gives a clear intended use context, but it does not state when to prefer this tool over related FDA tools such as fda_drug_lookup, fda_drug_recalls, or fda_food_recalls, nor does it provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_drug_lookupARead-onlyIdempotentInspect
Look up FDA drug label info by NDC code, brand name, or generic name. Returns indications, dosage, warnings, contraindications, mechanism, manufacturer, and DEA scheduling. Used for clinical decision support, pharmacy automation, drug-info chatbots.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | Yes | NDC code (e.g. '0002-1407'), brand name (e.g. 'Lipitor'), or generic name (e.g. 'atorvastatin'). |
TDQS
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 context by enumerating the exact data sections returned, which is especially valuable since there is no output schema. It does not mention pagination or no-results behavior, but annotations cover 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The action and resource are front-loaded, the return fields are useful, and the final use-case clause earns its place by helping an agent understand applicability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with full parameter schema and strong annotations, the description adequately covers purpose, return content, and context. Minor gaps include no explicit pointer to sibling tools for adverse events or recalls and no statement about multiple matches, but these are not critical for this tool shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters fully documented, including concrete examples for query. The description only restates the identifier types already in the schema and adds no new parameter-level detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Look up FDA drug label info' by NDC code, brand name, or generic name. The listed return fields (indications, dosage, warnings, contraindications, mechanism, manufacturer, DEA scheduling) clearly differentiate it from sibling tools like fda_drug_adverse_events and fda_drug_recalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the phrase 'drug label info' and names use cases like clinical decision support and drug-info chatbots, but it never explicitly says when to prefer this tool over sibling FDA tools. There are no exclusions or alternative-tool routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_drug_recallsARead-onlyIdempotentInspect
FDA drug enforcement actions (recalls). Filter by product name, recall classification (I=most severe, II, III), state, or date range. Useful for pharmacy compliance, supply chain monitoring, pharmacovigilance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Optional product description / generic name / brand name search term. | |
| state | No | Optional 2-letter state filter. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| classification | No | Recall severity: I (most severe), II, III. |
TDQS
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. It adds domain context about enforcement actions and recall classification, but discloses no additional behavioral traits such as data coverage, ordering, pagination, or exclusions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the resource identity, followed by a clear summary of filters and use cases. Every sentence contributes useful information without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with six fully documented parameters and no output schema, the description covers the domain, filter options, and practical applications. It omits explicit sibling routing and return-format details, but the schema and annotations carry most of the operational burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented. The description summarizes the main filter dimensions and explains the severity scale, but adds little 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as FDA drug enforcement actions/recalls and enumerates concrete filter dimensions (product, classification, state, date range). The 'drug' scope distinguishes it from device and food recall siblings, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names use cases: pharmacy compliance, supply chain monitoring, and pharmacovigilance, which gives an agent clear context for when to invoke this tool. However, it does not mention alternatives or state when not to use this tool versus other FDA/recall tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_food_recallsARead-onlyIdempotentInspect
FDA food enforcement actions (food recalls). Filter by product description, recall classification, state, or date range. Used for retail food safety monitoring, supply chain compliance, restaurant management.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Optional product description search term. | |
| state | No | Optional 2-letter state filter. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| classification | No | Recall severity: I (most severe), II, III. |
TDQS
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 domain context (public FDA enforcement data) but does not disclose return-shape, pagination behavior, or data limitations. This is acceptable given the strong annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the key subject and filter capabilities, followed by practical use cases. No wasted words or redundant restatement of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The combination of a fully documented parameter schema, clear annotations, and a description covering data source, filters, and use cases is sufficient for an agent to select and call the tool. No output schema exists, but for a read-only filtered listing tool the expected return behavior is fairly predictable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented. The description reinforces which filters matter (product description, classification, state, date range) but adds no syntax or value beyond the schema, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies FDA food recalls as the resource and states the available filtering actions (product description, classification, state, date range). This differentiates it from closely related siblings like fda_drug_recalls and fda_device_recalls without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use contexts: retail food safety monitoring, supply chain compliance, and restaurant management. It does not name exclusions or alternative tools, but the intended scenarios are clear 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.
fdic_depositsARead-onlyIdempotentInspect
Branch-office deposit data from the FDIC Summary of Deposits (annual snapshot). Returns deposits per branch sorted by deposit volume, useful for measuring local-market banking concentration.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name | |
| limit | No | Max branches (default 25) | |
| state | No | Two-letter state code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the bar is lower. The description adds meaningful behavioral context beyond the annotations: the source is an annual FDIC Summary of Deposits snapshot, and results are sorted by deposit volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The data source and primary behavior are front-loaded, followed by sorting behavior and use case, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description conveys source, granularity, and ordering, which is adequate for a simple read-only lookup. However, with no output schema and all parameters optional, it does not clarify whether city/state are required or what the returned branch records contain beyond deposit volume, leaving minor gaps for an agent making the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters, so the baseline is 3. The description clarifies that the limit applies to branches ordered by deposit volume, but it does not add significant meaning to the city or state parameters beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb/resource: returns branch-office deposit data from the FDIC Summary of Deposits, with explicit output behavior (deposits per branch sorted by deposit volume). This clearly distinguishes it from institution-level FDIC siblings like fdic_search_institutions and fdic_financials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'useful for measuring local-market banking concentration' provides a clear use case. It does not explicitly name alternatives or exclusions, but the context is sufficient to route an agent toward this tool for branch-level deposit data rather than other FDIC tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_failuresARead-onlyIdempotentInspect
List FDIC bank failures. Filter by state and/or date range. Returns failure date, institution name, location, estimated cost, and resolution type. Sorted most-recent first. Use this for systemic-risk research, historical bank-stability analysis, or compliance work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code | |
| offset | No | Pagination offset | |
| end_date | No | End date YYYY-MM-DD | |
| start_date | No | Start date YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is already known. The description adds behavioral value by disclosing that results are 'Sorted most-recent first' and enumerating the output fields, which matters because no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and every sentence adds value: what it lists, how to filter, what is returned, sort order, and intended use cases. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description covers the essential invocation context: filters, return fields, sort order, and use cases. It could go further by noting historical date coverage or behavior when no filters are supplied, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already individually documented. The description adds useful conceptual grouping ('Filter by state and/or date range') and notes sort order, but does not substantially extend parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List FDIC bank failures.' It names the exact data returned (failure date, institution name, location, estimated cost, resolution type), which makes the tool's scope unmistakable and clearly distinguishes it from sibling FDIC tools like fdic_deposits, fdic_financials, and fdic_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives use cases: 'systemic-risk research, historical bank-stability analysis, or compliance work.' It clearly conveys when this list tool is relevant, though it does not explicitly name alternatives or state 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.
fdic_financialsARead-onlyIdempotentInspect
Get quarterly financial data for a specific bank by CERT number (FDIC Certificate Number). Returns recent quarters of assets, deposits, loans, capital ratios, income, and asset quality metrics. Most recent quarters first.
| Name | Required | Description | Default |
|---|---|---|---|
| cert | Yes | FDIC Certificate Number (get this from fdic_search_institutions) | |
| limit | No | Number of recent quarters (default 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish safety (readOnly, idempotent, non-destructive), and the description adds behavioral detail beyond them: output is ordered with most recent quarters first and covers specific metric families. No contradictions or hidden side effects are disclosed or suggested.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with action and object, then a tight list of return fields. Every sentence carries useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema and read-only annotations, the description supplies the critical missing pieces: the certification identifier context, time-series nature, field coverage, and ordering. With no output schema, listing the metric families is sufficient for an agent to set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters 100%, so the baseline of 3 applies. The tool description reinforces that cert selects a bank and that 'recent quarters' relates to the limit parameter, but it doesn't add substantial new semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Get') and resource ('quarterly financial data for a specific bank by CERT number'), then enumerates the returned metric categories. This is enough to distinguish it from sibling FDIC tools such as fdic_summary or fdic_deposits by scope and content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: retrieve financials for one bank when a CERT is known. It doesn't list exclusions or point to alternatives, but the 'specific bank' and 'most recent quarters' wording gives a clear contextual trigger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_historyARead-onlyIdempotentInspect
Institution history events for a specific bank by CERT: mergers, acquisitions, name changes, charter conversions, failures. Returns most-recent first.
| Name | Required | Description | Default |
|---|---|---|---|
| cert | Yes | FDIC Certificate Number | |
| limit | No | Max events (default 25) |
TDQS
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 valuable non-annotation behavior: results are returned most-recent first, and the event-type scope is made explicit. It could disclose pagination or how the default limit is applied, but for a read-only timeline lookup the disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the first delivers resource, scope, and event types; the second delivers ordering. The most important constraint (by CERT) is front-loaded. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup with one required parameter, no output schema, and annotations covering safety, the description is nearly complete: an agent knows the key, the optional limit (via schema), the event types, and the ordering. Minor gaps remain, such as the return shape or behavior when a CERT has no events, but nothing that would block a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both cert and limit, establishing a baseline of 3. The description adds marginal context by highlighting cert as the key and noting the event types that limit caps, but doesn't contribute 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('institution history events for a specific bank by CERT') and enumerates the exact event types included (mergers, acquisitions, name changes, charter conversions, failures), plus the result ordering. This clearly differentiates it from FDIC siblings like fdic_failures (failure lists) or fdic_search_institutions (institution lookup), even though the verb 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a specific bank by CERT' implies the tool is for when an agent already knows a bank's certificate number and needs its event timeline. However, it never names alternatives such as fdic_failures or fdic_search_institutions, nor states when not to use this tool, leaving routing among the many FDIC siblings to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_search_institutionsARead-onlyIdempotentInspect
Search FDIC-insured banks and savings institutions by name, state, or city. Returns CERT number, name, location, total assets, deposits, net income, ROA, ROE, charter class. Use the CERT number for follow-up queries to fdic_financials or fdic_history.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name (exact) | |
| name | No | Institution name (partial match) | |
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| offset | No | Pagination offset (default 0) | |
| active_only | No | Only currently-active banks (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, and non-destructive. The description adds value by naming the returned metrics and the CERT-as-key behavioral pattern for downstream queries. It does not discuss pagination or the active_only default, but those are covered by the input schema, so the added behavioral context is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences: the first states the search scope and returned fields, and the second gives a direct follow-up instruction. There is no wasted wording or redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description enumerates the main returned fields and explains how to chain into deeper FDIC tools. Combined with the fully documented input schema and safety annotations, an agent has enough context to call this tool correctly and use its result effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the schema fully documents all six parameters. The description highlights name, state, and city as the primary search keys, which is helpful, but it does not add syntax, format, or relationship details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific action ('Search'), a defined resource ('FDIC-insured banks and savings institutions'), and the search dimensions ('by name, state, or city'). It also lists concrete return fields and explicitly points to follow-up tools, making it easy to distinguish from the other FDIC sibling tools even without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical usage context by telling the agent to use the returned CERT number for fdic_financials or fdic_history follow-ups. It does not explicitly state when not to use sibling tools like fdic_summary, fdic_deposits, or fdic_failures, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_summaryARead-onlyIdempotentInspect
Industry-level summary financials. Returns year-by-year aggregates across all FDIC-insured institutions, optionally filtered to a single state. Useful for macro banking-sector analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of years (default 20) | |
| state | No | Two-letter state code (omit for national) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond that: it returns year-by-year aggregates and supports optional state-level filtering. It does not detail exact metrics returned or ordering, but the annotations lower the bar for additional safety-related disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads the core purpose and scope, the second gives the primary use case. There is no redundant wording or filler, and every clause contributes to tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no required parameters and full schema coverage, the description gives enough context to select and call it correctly: what it returns, at what aggregation level, and how state filtering works. The absence of an output schema means the actual financial fields are not enumerated, but 'summary financials' is a reasonable high-level contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'limit' and 'state' are both documented with defaults and meaning. The description only echoes the aggregation and state-filter idea at a higher level, adding little parameter nuance beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('Industry-level summary financials') and a clear behavior: returning year-by-year aggregates across all FDIC-insured institutions, optionally by state. This differentiates it from institution-level sibling tools like fdic_financials and fdic_search_institutions by emphasizing aggregate, sector-wide scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames the tool as 'useful for macro banking-sector analysis,' providing a clear context for when to use it. It does not name alternatives or state when not to use it, so it stops short of full routing guidance, but the context is clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_candidate_detailsARead-onlyIdempotentInspect
Get full detail for a single federal candidate by FEC candidate_id (e.g. 'P80001571'). Includes office, party, status, election years, and mailing address. Use fec_candidate_search to find the candidate_id.
| Name | Required | Description | Default |
|---|---|---|---|
| candidate_id | Yes | FEC candidate ID (e.g. 'P80001571', 'S2MA00170'). |
TDQS
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 value beyond that by disclosing the response scope ('full detail... includes office, party, status, election years, and mailing address'), giving the agent a concrete expectation of what comes back. It doesn't mention behavior for invalid IDs, but that's a minor gap for a simple lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first establishes purpose with an example; the second routes to the sibling tool. Both sentences earn their place and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup, everything needed to invoke it correctly is present: the parameter is fully documented, the return content is described (field list compensates for the absent output schema), annotations cover safety, and the prerequisite relationship to fec_candidate_search is stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the schema already documents candidate_id with two examples ('P80001571', 'S2MA00170'). The description repeats one example but adds no meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Get full detail for a single federal candidate') and identifies the lookup key (candidate_id) with a concrete example. It also enumerates the included fields (office, party, status, election years, mailing address), which distinguishes this from the financial-oriented sibling fec_candidate_financials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes to fec_candidate_search when the ID is unknown ('Use fec_candidate_search to find the candidate_id'), which is clear when-not-to-use guidance. However, it doesn't explicitly address the other FEC siblings (fec_candidate_financials, fec_committee_search); the field list implies the boundary, but an explicit exclusion would make it fully complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_candidate_financialsARead-onlyIdempotentInspect
Get aggregate campaign finance totals for a candidate by FEC candidate_id, broken down by election cycle. Includes total receipts, disbursements, individual contributions, cash on hand, and debts. Filter to one cycle with the cycle parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum cycles to return (default 10, max 50). | |
| candidate_id | Yes | FEC candidate ID (e.g. 'S2MA00170'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior, so the description's main value is adding what the tool returns: aggregate totals by election cycle, including receipts, disbursements, contributions, cash on hand, and debts. It also implies that multiple cycles are returned by default and that the cycle parameter narrows to one, which is useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary action is front-loaded, the resource and ID requirement are clear, the return fields are summarized, and the key optional filter is stated efficiently. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with three well-documented parameters and no output schema, the description covers the essential semantics: what is returned, how it is grouped, and how to narrow it. Minor gaps include not stating the default number of cycles returned or whether the results include a summary/aggregate row, but these are not critical given the schema covers limit and cycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are already fully described in the schema, so the baseline is 3. The description adds value by clarifying that the cycle parameter filters to a single election cycle and frames the data as cycle-level aggregates, but it does not meaningfully add semantics beyond what the schema already provides for candidate_id or limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a specific resource (aggregate campaign finance totals by FEC candidate_id), and a distinctive dimension (election cycle breakdown). It also enumerates the included fields, making the tool's purpose immediately recognizable and easily distinguishable from siblings like fec_candidate_search or fec_candidate_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over fec_candidate_details, fec_committee_search, or other FEC-related siblings. It also does not state that a user would first need to resolve a candidate to an FEC candidate_id via a search sibling, nor mention any exclusions or preferred alternatives. The only usage hint is the cycle parameter, which is a parameter instruction rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_candidate_searchARead-onlyIdempotentInspect
Search federal candidates (President, House, Senate) by name, state, office, or party using FEC data. Returns candidate IDs needed for the other FEC tools.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum candidates to return (default 20, max 100). | |
| party | No | Party code (e.g. 'DEM', 'REP', 'IND', 'LIB'). Optional. | |
| query | No | Candidate name fragment (e.g. 'Warren', 'Smith'). Optional. | |
| state | No | Two-letter state code to filter by (e.g. 'MA', 'TX'). Optional. | |
| office | No | Office: 'P' (President), 'S' (Senate), or 'H' (House). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior, and the description adds the important behavioral outcome that the tool returns candidate IDs, including their role as input to other FEC tools. It does not discuss pagination or rate limits, but those are secondary for this simple search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler: the first states the action and filters, the second states the output and contextual purpose. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter search tool, this description is complete: schema documents all parameters, annotations cover safety, and the description explains what the tool returns and why it matters. No critical information is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters are already documented in the input schema with descriptions (100% coverage), so the schema carries the parameter-semantics burden. The description only repeats the filter categories without adding syntax, defaults, or relationships beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('search') with a concrete resource ('federal candidates') and enumerates the filter dimensions (name, state, office, party). It also states the key output (candidate IDs) and positions the tool as a prerequisite for other FEC tools, which separates it from sibling FEC lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this tool is for finding candidate IDs needed before using the other FEC tools, which gives an agent a concrete reason to choose it. It does not explicitly name alternative tools or state when not to use it, so it stops 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.
fec_committee_searchARead-onlyIdempotentInspect
Search FEC-registered political committees (campaign committees, PACs, party committees, Super PACs) by name, state, or committee type. Returns committee IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum committees to return (default 20, max 100). | |
| query | No | Committee name fragment. Optional. | |
| state | No | Two-letter state code to filter by. Optional. | |
| committee_type | No | Committee type code: 'P' (President), 'S' (Senate), 'H' (House), 'N'/'Q' (PAC), 'O' (Super PAC), 'X'/'Y' (party). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: it clarifies that the search covers multiple committee categories and that the result is committee IDs. This is adequate for a safe lookup tool, though pagination and no-results behavior are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence covers the resource, scope, filter options, and return value with no filler. The most important information is front-loaded, and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter search tool with a fully documented schema and rich annotations, the description is largely complete. It explicitly states the return value ('Returns committee IDs'), compensating for the lack of an output schema, though the exact result shape and edge-case behavior are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all five parameters, so the description does not need to restate parameter details. However, it does add the high-level search dimensions ('by name, state, or committee type') that map to query, state, and committee_type, providing mild complementary value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('FEC-registered political committees'), enumerates the covered committee categories, and states the searchable dimensions (name, state, committee type). It also distinguishes itself from sibling tools by scoping to committees rather than candidates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for finding FEC committees by name, state, or type, but it does not explicitly name alternatives or state when not to use it. An agent must infer routing from the tool name and sibling names like fec_candidate_search rather than being told directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_independent_expendituresARead-onlyIdempotentInspect
List independent expenditures (FEC Schedule E) supporting or opposing a candidate or made by a committee. Shows spender committee, amount, date, support/oppose, and description. Provide candidate_id or committee_id.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum expenditures to return (default 20, max 100). | |
| candidate_id | No | FEC candidate ID the spending targets (e.g. 'P80001571'). Provide this or committee_id. | |
| committee_id | No | FEC committee ID of the spender (e.g. 'C00804856'). Provide this or candidate_id. |
TDQS
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 fully covered. The description adds context beyond annotations by disclosing the result contents and the two query modes (by candidate or by spender committee). It does not mention pagination behavior or what happens when neither ID is supplied, but these are minor for a read-only list tool with a limit parameter in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler: purpose first, then return contents, then the critical input requirement. Every sentence earns its place, and the most important operational instruction is kept to a short imperative. Efficiently sized for a 4-parameter read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with read-only annotations and no output schema, the description covers the essentials: what is listed, what fields are shown, and which identifiers are needed. The main gap is not specifying behavior when neither candidate_id nor committee_id is provided (both are optional in the schema), plus no mention of the cycle dimension's effect on results. Otherwise nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 — the schema already documents all four parameters. The description's 'Provide candidate_id or committee_id' reinforces the mutual-exclusivity relationship already stated in the schema property descriptions, adding emphasis but no genuinely new semantic information beyond what the structured data provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a precise resource ('independent expenditures (FEC Schedule E)') and enumerates the returned fields (spender committee, amount, date, support/oppose, description). It clearly distinguishes this tool from sibling FEC tools like fec_candidate_financials or fec_committee_search by focusing on expenditures rather than profiles or totals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear precondition — 'Provide candidate_id or committee_id' — which tells the agent the tool requires a known identifier. However, it gives no explicit when-to-use versus when-not-to-use guidance relative to sibling FEC tools (e.g., when to prefer fec_candidate_financials instead), and no exclusion criteria. The usage context is implied rather than explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fed_board_h15_evidence_packARead-onlyIdempotentInspect
Combine the latest official H.15 policy/reference rates with the complete nominal Treasury curve and headline 10y-2y and 10y-3m spreads in one provenance-backed evidence pack. Use this for 'summarize the current rate environment', 'build a Federal Reserve rates evidence pack', or as a direct-Board macro leg alongside other datasets. Values are historical observations, not a forecast, recommendation, or real-time quote.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO date YYYY-MM-DD. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds meaningful context by clarifying that values are 'historical observations, not a forecast, recommendation, or real-time quote' and that the pack is 'provenance-backed' — important for interpreting data freshness and reliability. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The main action is stated first, followed by concrete use cases and a succinct caveat. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only 2 optional parameters and no output schema, the description sufficiently conveys the pack's contents, applicable use cases, and key data caveat. It does not explain whether any default date or latest-point behavior applies, but the overall intent and boundaries are clear enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (date, response_format) are fully documented in the schema. The description adds no additional parameter-level detail, such as how the optional date affects the 'latest' default or how response_format changes output structure. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Combine' with concrete resources — H.15 policy/reference rates, nominal Treasury curve, and 10y-2y/10y-3m spreads — making the tool's aggregation purpose unmistakable. It also clearly implies this is a composite evidence pack versus granular sibling tools like fed_board_h15_rate_history or yield_curve, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use cases are given: 'summarize the current rate environment', 'build a Federal Reserve rates evidence pack', or use as a direct-Board macro leg. However, there is no explicit when-not-to-use guidance or stated alternative to federated granular tools, 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.
fed_board_h15_rate_historyARead-onlyIdempotentInspect
Return a bounded history for one active Federal Reserve Board H.15 business-day rate series from the self-hosted official snapshot. Includes canonical series metadata, values, pagination, exact D1 coverage, raw-package hash, and attribution. Use this for 'show the effective federal funds rate history', 'get daily 10-year Treasury yields', or 'what was prime over this period?'. Scope is 2000-present and is not a live market quote.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum observations. Default 30. | |
| offset | No | Observations to skip. Default 0. | |
| series | Yes | Exact H.15 series_name, descriptive name, or Treasury alias such as '10-year Treasury', '2y', or '3-month Treasury'. | |
| end_date | No | ISO date YYYY-MM-DD. | |
| start_date | No | ISO date YYYY-MM-DD. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds valuable behavioral context: it is a self-hosted official snapshot, it paginates, includes raw-package hash and attribution, and covers a fixed date range. It also clarifies that the data is not a live market quote, which is a meaningful caveat beyond what annotations convey. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of three focused sentences: what it returns, when to use it, and its scope/limitation. No fluff or redundancies. The key functional statement is front-loaded, and the usage guidance is concrete and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the response components (metadata, values, pagination, D1 coverage, hash, attribution). It also addresses scope and non-liveness. It does not mention error handling or how to locate series names, but the sibling fed_board_h15_search_series covers that route. For a bounded historical data tool with six parameters locked down by schema, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, providing per-parameter details for series, limit, offset, start_date, end_date, and response_format. The description adds only marginal semantics by emphasizing 'active' series and the bounded nature of the history. Since the schema already carries the parameter meaning, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource pairing: 'Return a bounded history for one active Federal Reserve Board H.15 business-day rate series.' It distinguishes itself from sibling tools by specifying 'history' (vs yield curve/spread), 'one active series' (vs search), and 'bounded' (vs full list). The usage examples reinforce what it does with concrete natural-language queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides example use cases ('show the effective federal funds rate history', 'get daily 10-year Treasury yields', 'what was prime over this period?') and scopes its applicability to 2000-present while noting it is not a live market quote. It does not explicitly mention alternative tools like fed_board_h15_search_series or fed_board_h15_yield_curve, but the scope boundaries and examples make the intended context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fed_board_h15_rate_spreadARead-onlyIdempotentInspect
Calculate a time series of one Federal Reserve Board H.15 rate minus another on aligned business dates. Returns both canonical series, component values, percentage-point and basis-point spreads, pagination, provenance, and exact hosted coverage. Use this for '10-year minus 2-year Treasury spread', 'prime minus fed funds', or 'compare 30-year and 5-year yields'. Treasury aliases such as '10y' and '2y' are accepted. Not a forecast or trading signal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum aligned observations. Default 30. | |
| offset | No | Aligned observations to skip. Default 0. | |
| end_date | No | ISO date YYYY-MM-DD. | |
| series_a | Yes | Exact H.15 series_name, descriptive name, or Treasury alias such as '10-year Treasury', '2y', or '3-month Treasury'. | |
| series_b | Yes | Exact H.15 series_name, descriptive name, or Treasury alias such as '10-year Treasury', '2y', or '3-month Treasury'. | |
| start_date | No | ISO date YYYY-MM-DD. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnlyHint/idempotentHint annotations by disclosing specific behavioral traits: returns both canonical series, component values, percentage-point and basis-point spreads, pagination, provenance, and exact hosted coverage. It also specifies 'aligned business dates,' which informs the data returned. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—five sentences with no fluff—and front-loads the core action and return values. The usage examples, alias note, and disclaimer each add distinct value. Every sentence earns its place, and the structure is logical: what it does, what it returns, when to use it, and an important caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description adequately explains return values (canonical series, component values, spreads, pagination, provenance, coverage). With readOnly annotations already covering safety, the description provides all necessary details for an agent to call the tool correctly, including aliases and business-date alignment. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all seven parameters are documented. The description adds meaningful semantics beyond the schema by stating that Treasury aliases like '10y' and '2y' are accepted for series_a and series_b, and by explaining the 'aligned business dates' context that affects date parameters. This is valuable supplementary information that aids correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with the specific verb and resource: 'Calculate a time series of one Federal Reserve Board H.15 rate minus another on aligned business dates.' It clearly defines the operation (spread calculation) and distinguishes from sibling tools that handle single rate history or yield curves. The inclusion of concrete examples like '10-year minus 2-year Treasury spread' and 'prime minus fed funds' further clarifies the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance via 'Use this for...' with three concrete examples, and explicitly states 'Not a forecast or trading signal,' which is an exclusion. However, it does not directly contrast with sibling tools like fed_board_h15_rate_history or fed_board_h15_yield_curve, so while the usage is clear, it lacks an explicit when-not-to-use statement referencing alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fed_board_h15_search_seriesARead-onlyIdempotentInspect
Search the active business-day series in LiveDataLink's self-hosted official Federal Reserve Board H.15 snapshot. Returns canonical series names, descriptions, instruments, maturities, coverage, pagination, and source hash. Use this for 'find the Fed funds series', 'what Treasury maturities are available?', or to resolve a series before a history/spread call. This is direct Board data, not a FRED proxy.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum series. Default 20. | |
| query | No | Optional words, instrument code, maturity, or series name. | |
| offset | No | Series to skip. Default 0. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 that this is a self-hosted snapshot of official Board data and clarifies the data source. It does not disclose any side effects, rate limits, or caching behavior, but given the strong annotation coverage, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loads the core purpose and return fields. It then gives concrete usage examples and a clarifying note about the data source. It is concise without being terse, and every sentence contributes to understanding the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description clearly states what it returns (canonical series names, descriptions, instruments, maturities, coverage, pagination, and source hash), gives usage examples, and clarifies the data source. It does not explain pagination parameters in detail, but the schema covers that. Overall, it is complete enough for an agent to decide when and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters (limit, query, offset, response_format) have descriptions in the schema, achieving 100% coverage. The description adds no new parameter-specific semantics beyond what the schema provides. It does imply the query parameter can be used to resolve a series before a history/spread call, but that is not a direct parameter-level clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('search') and resource ('active business-day series in LiveDataLink's self-hosted official Federal Reserve Board H.15 snapshot'), and enumerates the exact return fields (canonical series names, descriptions, instruments, maturities, coverage, pagination, and source hash). It also provides concrete example queries and explicitly distinguishes itself from a FRED proxy, making its purpose unambiguous and distinct from siblings like fed_board_h15_rate_history or fed_board_h15_yield_curve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage cases: 'find the Fed funds series', 'what Treasury maturities are available?', and 'resolve a series before a history/spread call.' It also clarifies that it is direct Board data, not a FRED proxy. However, it does not explicitly name sibling tools or state when to avoid this tool in favor of them, though the reference to resolving before a history/spread call implicitly points to related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fed_board_h15_yield_curveARead-onlyIdempotentInspect
Build the nominal US Treasury constant-maturity yield curve from the Federal Reserve Board's self-hosted H.15 snapshot for the latest business day on or before a date. Returns maturities, yields, canonical series names, 10y-2y and 10y-3m spreads, curve-shape classification, provenance, and source hash. Use this for 'show today's Treasury curve', 'was the curve inverted on 2024-06-03?', or 'compare short and long rates'. Not security pricing or investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO date YYYY-MM-DD. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the read-only/idempotent/non-destructive profile; the description supplements this with the latest-business-day rollback rule, the self-hosted snapshot source, and the exact computed outputs (spreads, shape classification, provenance, source hash). No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, return contents, usage examples/caveat. No filler and key discriminators are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with no output schema, the description spells out all return categories and gives representative queries. Only minor absence is explicit behavior when date is omitted, but optionality is already encoded by schema (required=0).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already documents date format and response_format enum at 100% coverage; the description adds the important semantic that the date resolves to the latest business day on or before it. That is meaningful beyond the schema, justifying 4 rather than baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb ('Build') and names the exact artifact (nominal US Treasury constant-maturity yield curve) plus source (FRB H.15 snapshot). It enumerates returned components, which differentiates it from sibling H.15 tools (rate_history, rate_spread, search_series).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three concrete query examples ('show today's Treasury curve', 'was the curve inverted on 2024-06-03?', 'compare short and long rates') and the non-advice disclaimer. However, it never explicitly tells the agent when to prefer a sibling such as fed_board_h15_rate_history or rate_spread, 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.
fed_z1_catalogARead-onlyIdempotentInspect
List and search the deliberately small catalog of aggregate U.S. balance-sheet and debt series in LiveDataLink's self-hosted Federal Reserve Z.1 snapshot. Returns official series IDs, stable LiveDataLink slugs, table/line metadata, units, adjustment basis, coverage, pagination, release hash, and attribution. Use this for 'what household balance-sheet measures are available?', 'find the mortgage debt series', or to resolve a series before another Z.1 call. This is not the full Z.1 universe.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum series. Default 20. | |
| query | No | Optional substring of slug, official series ID, or title. | |
| offset | No | Series to skip. Default 0. | |
| category | No | Optional curated category. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds real context beyond them: the catalog is intentionally partial, the return payload includes release hash and attribution, and pagination exists. It does not state rate limits or snapshot freshness, which are the remaining unknowns for a data-snapshot tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences that are front-loaded with purpose and then scope, usage, and boundaries. Every sentence earns its place; the return-field enumeration is slightly dense but justified since there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by enumerating the payload (series IDs, slugs, table/line metadata, units, adjustment basis, release hash, attribution). Combined with the scope caveat and usage examples, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (limit, query, offset, category, response_format) is already documented in the schema, including defaults and enum values. The description adds no syntax or filtering nuances beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb pair (list and search) plus the exact resource: a curated catalog of aggregate U.S. balance-sheet and debt series in a self-hosted Z.1 snapshot. It also sharply delimits scope with 'deliberately small' and 'This is not the full Z.1 universe,' so an agent can distinguish it from the broader fed_z1_series/fed_z1_snapshot siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection cues: example queries ('what household balance-sheet measures are available?', 'find the mortgage debt series') and the workflow hint 'resolve a series before another Z.1 call.' It stops short of naming the specific alternatives (fed_z1_series, fed_z1_change, fed_z1_snapshot) or stating when not to use it, so it is strong 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.
fed_z1_changeARead-onlyIdempotentInspect
Calculate the absolute and percentage change in one curated Federal Reserve Z.1 aggregate between two exact hosted quarters. Returns both observations, dollar change, percent change, series definitions, release provenance, and source hashes. Use this for 'how much did household net worth change from 2019 Q4 to 2024 Q4?', 'growth in mortgage debt since 2020', or 'change in federal debt outstanding between two quarters'. This is descriptive historical arithmetic, not a forecast or recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | Exact curated slug or official Z.1 series ID. Call fed_z1_catalog to discover supported values. | |
| end_period | Yes | Quarter in official Z.1 YYYY:Qn form, such as 2020:Q4. | |
| start_period | Yes | Quarter in official Z.1 YYYY:Qn form, such as 2020:Q4. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 useful behavioral context by specifying the return contents (both observations, dollar change, percent change, series definitions, release provenance, source hashes) and clarifying that this is descriptive historical arithmetic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core calculation, then return details, then concrete examples. Every sentence earns its place by either clarifying scope, output, or intended use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully summarizes return values. The input schema fully documents parameters, and annotations cover safety and idempotency, so the definition is complete enough 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.
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 parameter formats such as 'Exact curated slug or official Z.1 series ID' and 'YYYY:Qn'. The description adds the conceptual constraint of 'one curated Federal Reserve Z.1 aggregate between two exact hosted quarters,' but does not add syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Calculate the absolute and percentage change in one curated Federal Reserve Z.1 aggregate between two exact hosted quarters.' This clearly distinguishes it from sibling tools like fed_z1_series and fed_z1_snapshot, which retrieve or snapshot a series rather than compute a change between two periods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit use cases ('how much did household net worth change...', 'growth in mortgage debt since 2020') and an exclusion ('This is descriptive historical arithmetic, not a forecast or recommendation'). It does not, however, name alternative tools for related tasks such as retrieving raw observations via fed_z1_series.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fed_z1_seriesARead-onlyIdempotentInspect
Return a bounded quarterly history for one curated Federal Reserve Financial Accounts (Z.1) aggregate series from LiveDataLink's self-hosted release snapshot. Includes official series/table identifiers, dollar values, units, seasonal-adjustment basis, pagination, source hash, and release provenance. Use this for 'show household net worth since 2019', 'quarterly federal debt outstanding', or 'consumer credit history'. Values are aggregate historical estimates that may be revised.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum observations, newest first. Default 24. | |
| offset | No | Observations to skip. Default 0. | |
| series | Yes | Exact curated slug or official Z.1 series ID. Call fed_z1_catalog to discover supported values. | |
| end_period | No | Quarter in official Z.1 YYYY:Qn form, such as 2020:Q4. | |
| start_period | No | Quarter in official Z.1 YYYY:Qn form, such as 2020:Q4. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely non-obvious behavioral context: values come from a self-hosted release snapshot, carry a source hash and release provenance, and are aggregate historical estimates subject to revision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then payload, then examples and caveat. Three sentences with almost no waste; the enumerations are long but each item (units, SA basis, provenance) is informative rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the burden of describing returns and does so by listing the returned fields (identifiers, dollar values, units, SA basis, pagination, source hash, provenance). Combined with the revision caveat, an agent has enough to call and interpret the tool; only pagination mechanics and period-default behavior remain undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (series, limit, offset, start/end_period, response_format) is already documented, including the pointer to fed_z1_catalog for series discovery. The description adds no additional parameter syntax or constraints beyond what the schema supplies, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: returning a bounded quarterly history for one curated Fed Z.1 aggregate series, with the payload enumerated (ids, values, units, SA basis, provenance). It implicitly contrasts with siblings like fed_z1_snapshot/fed_z1_change through 'quarterly history,' but it never names them, so differentiation requires inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Concrete usage is given via three example phrasings ('household net worth since 2019', 'quarterly federal debt outstanding', 'consumer credit history'), which tells an agent when this is the right tool. It stops short of naming alternatives or stating when-not to use it; discovery of valid series is delegated to the schema note pointing at fed_z1_catalog.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fed_z1_snapshotARead-onlyIdempotentInspect
Return the latest hosted quarter for one to eight curated Federal Reserve Z.1 balance-sheet or debt aggregates on one consistent release. Includes values in millions and trillions of dollars, official IDs, adjustment bases, release quarter, hashes, and attribution. Use this for 'latest household net worth and liabilities', 'compare current household, business, and federal debt levels', or as a macro evidence leg alongside FRED and Treasury tools. Do not compare levels without considering definitions and adjustment bases.
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | One to eight unique exact curated slugs or official series IDs. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 covered. The description adds value beyond that by disclosing the return contents (millions/trillions values, official IDs, adjustment bases, release quarter, hashes, attribution) and the definitional caveat about comparing levels, which is meaningful for a no-output-schema read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, then return contents, then use cases and the comparison caveat. Efficient and logically ordered, with only minor overlap between the return-content and caveat sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates what is returned (millions/trillions values, IDs, adjustment bases, release quarter, hashes, attribution) and warns about definitional pitfalls in comparison, which is complete enough for a read-only snapshot tool. Pagination/error behavior is not addressed, but not central here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (series, response_format) are already fully documented in the schema, including the 1-8 count and enum. The description only re-states 'one to eight' for the series concept and adds no syntax, slug-format, or uniqueness detail beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Return) and resource (latest hosted quarter for 1-8 curated Federal Reserve Z.1 balance-sheet/debt aggregates on one consistent release), which an agent can distinguish from the fed_z1_change, fed_z1_catalog, and fed_z1_series siblings. It is clear but stops short of naming any sibling explicitly to differentiate scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage contexts ('latest household net worth and liabilities', 'compare current household, business, and federal debt levels', or a macro evidence leg alongside FRED and Treasury tools) plus a guardrail ('Do not compare levels without considering definitions and adjustment bases'). It gives clear when-to-use guidance but does not route the agent to the Z.1 siblings for change/catalog/history needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fema_nfhl_compare_inventory_itemsARead-onlyIdempotentInspect
Compare 2-10 exact FEMA NFHL inventory units for coverage freshness and advertised download size. Returns requested-order rows, missing IDs, total estimated bytes, and provenance, enabling auditable acquisition estimates across target counties/communities. No geometry is hosted or downloaded. Use flood_zone_lookup instead for point/address flood-zone questions.
| Name | Required | Description | Default |
|---|---|---|---|
| dfirm_ids | Yes | Two to ten distinct exact FEMA DFIRM IDs. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 covered. The description earns extra credit by disclosing return content (requested-order rows, missing IDs, total estimated bytes, provenance) and the key constraint that no geometry is hosted or downloaded, which is not derivable from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and cardinality, then the return shape, then the non-goal. Every clause carries information; nothing is restated from title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in to enumerate the return payload and the provenance field, and it clarifies that no geometry is transferred. For a read-only, open-world lookup with complete parameter documentation, nothing an agent needs to call or interpret it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented and the baseline is 3. The description reinforces the '2-10 exact' cardinality and precision requirement for dfirm_ids but adds nothing for response_format beyond what the enum description provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare) and resource (FEMA NFHL inventory units) with a hard-bound cardinality (2-10) and the exact comparison axes (coverage freshness, advertised download size). It also names the sibling it is not (flood_zone_lookup) for the point/address case, so an agent can route without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes a concrete alternative scenario to flood_zone_lookup, which prevents a common misuse. It does not, however, distinguish this from the closer siblings fema_nfhl_get_inventory_item, fema_nfhl_search_inventory, or fema_nfhl_summarize_state_inventory, so the comparison-vs-single-lookup boundary 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.
fema_nfhl_get_inventory_itemARead-onlyIdempotentInspect
Get one self-hosted FEMA NFHL inventory unit by exact DFIRM ID. Returns jurisdiction, state, coverage-unit kind, package update date, advertised size, filename, canonical FEMA download URL, and immutable provenance. Use this to produce acquisition evidence after search. It does not fetch or inspect the geodatabase; use flood_zone_lookup for address/coordinate zone questions.
| Name | Required | Description | Default |
|---|---|---|---|
| dfirm_id | Yes | Exact six-character FEMA DFIRM ID, optionally suffixed -NFHL. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower, and the description adds real context: it clarifies this is metadata-only and does NOT fetch or inspect the geodatabase, plus mentions 'immutable provenance' in the return. It stops short of stating rate limits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: identity, return fields, then usage/routing. The alternative is placed last as a redirect, and nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields (jurisdiction, state, coverage-unit kind, update date, size, filename, URL, provenance), which is genuinely helpful. Combined with the boundary statements it is nearly complete, though it omits any note on missing/invalid DFIRM ID behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema; baseline is 3. The description only reinforces 'exact DFIRM ID' and adds no format or suffix guidance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: fetch one inventory unit by exact DFIRM ID. It distinguishes itself from fema_nfhl_search_inventory ('after search'), fema_nfhl_compare_inventory_items, and flood_zone_lookup, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('produce acquisition evidence after search') and an explicit when-not/alternative ('does not fetch or inspect the geodatabase; use flood_zone_lookup for address/coordinate zone questions'). Both the trigger and the handoff are stated, not inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fema_nfhl_get_snapshot_metadataARead-onlyIdempotentInspect
Return the pinned FEMA NFHL inventory snapshot's run ID, row/state counts, displayed update-date coverage, hashes, acquisition method/evidence origin, rights, exact official source URLs, scope boundary, fail-closed inventory-schema checks, and MapServer layer-ID/type verification. Use this to qualify evidence and freshness before relying on inventory results. This is not a polygon corpus and does not replace flood_zone_lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/destructive=false, so safety is covered; the description goes further by disclosing fail-closed inventory-schema checks, scope boundary, evidence origin, rights, and hashes. These are meaningful behavioral traits an agent needs to interpret trustworthiness, though it stops short of describing response shape or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the returned-field inventory before the usage guidance and the exclusion, which is the right order. The field enumeration is dense and longer than strictly necessary, but every clause is informative rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly compensates by enumerating the returned metadata fields, and it supplies the trust/qualification context an agent needs for an evidence-provenance tool. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage and a single fully-documented response_format enum, the schema already carries the parameter semantics. The description adds no parameter-level detail, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') and resource (the pinned NFHL inventory snapshot's metadata) and enumerates the exact fields returned, so the agent knows precisely what it gets. It explicitly distinguishes itself from flood_zone_lookup ('not a polygon corpus and does not replace flood_zone_lookup'), routing the agent away from a common confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to qualify evidence and freshness before relying on inventory results' gives explicit when-to-use guidance, and the closing sentence provides a when-not-to-use exclusion against flood_zone_lookup. It does not, however, name the actual sibling alternatives (fema_nfhl_search_inventory, get_inventory_item) that return the inventory rows themselves.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fema_nfhl_search_inventoryARead-onlyIdempotentInspect
Search LiveDataLink's complete pinned projection of FEMA's nationwide NFHL coverage/download inventory by jurisdiction, state, unit kind, displayed update date, and advertised ZIP size. Returns bounded pagination, both displayed and filename-derived dates, canonical FEMA download evidence, and snapshot hashes. Commercial use: screen coverage/freshness and plan acquisition before property diligence. This is inventory metadata only; for an address or coordinate flood-zone question use flood_zone_lookup, which consults FEMA's live Flood Hazard Zones layer.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Stable sort. Default jurisdiction. | |
| limit | No | Maximum rows. Default 20. | |
| query | No | DFIRM ID, item ID, jurisdiction, state, code, or filename search terms (maximum 8 terms). | |
| state | No | Two-letter state/territory code or full FEMA state name. | |
| offset | No | Rows to skip. Default 0. | |
| updated_from | No | Inclusive displayed inventory update date floor, YYYY-MM-DD. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| updated_through | No | Inclusive displayed inventory update date ceiling, YYYY-MM-DD. | |
| jurisdiction_kind | No | Inventory coverage-unit kind derived conservatively from FEMA identifiers/names. | |
| max_advertised_mb | No | Maximum FEMA-advertised package size in approximate MiB. | |
| min_advertised_mb | No | Minimum FEMA-advertised package size in approximate MiB. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and open-world behavior. The description adds meaningful return context beyond annotations: bounded pagination, both displayed and filename-derived dates, canonical FEMA download evidence, snapshot hashes, and a pinned rather than live data source. It does not specify auth needs, rate limits, or maximum page size, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, then returns, then use case, then disambiguation. Every sentence earns its place and none of the dense phrasing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter search tool with no output schema, the description covers purpose, filter scope, returned data, intended commercial use, and the critical distinction from live flood-zone lookup. Annotations handle safety, and the schema fully covers parameters, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 11 parameters are already documented in the input schema. The description lists some filter dimensions but adds no syntax, format, or behavioral meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource (FEMA's nationwide NFHL coverage/download inventory), then names the exact filter dimensions. It also distinguishes itself from a key sibling by stating that address/coordinate flood-zone questions belong to flood_zone_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit use case ('screen coverage/freshness and plan acquisition before property diligence') and an explicit when-not/alternative ('for an address or coordinate flood-zone question use flood_zone_lookup'). The routing instruction is concrete enough to prevent the most likely misselection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fema_nfhl_summarize_state_inventoryARead-onlyIdempotentInspect
Summarize all hosted FEMA NFHL inventory units for one state/territory: unit counts by kind, oldest/latest package dates, total advertised download-volume estimate, and largest unit. Use for state coverage/freshness comparisons and data-acquisition budgeting. This does not mean every place or parcel has digital NFHL geometry and is not a flood determination.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter state/territory code or full FEMA state name. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior, so the safety profile is covered. The description adds useful behavioral context by enumerating what the summary contains and by warning that the result is not parcel-level coverage or a flood determination. It does not mention limits, permissions, or freshness caveats beyond package dates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core operation and output contents, followed by usage guidance and an important scope disclaimer. Every clause contributes to either selection or correct interpretation, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the key return dimensions: unit counts by kind, oldest/latest package dates, total download-volume estimate, and largest unit. It also sets accurate expectations about what the summary does not prove. Combined with complete annotations and schema coverage, the definition is complete enough to call and interpret correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully documents both parameters, including the state code/name and response_format enum. The description reinforces the one-state scope but adds no syntax or formatting detail beyond the schema. Baseline 3 is appropriate when the schema carries parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Summarize') and resource ('all hosted FEMA NFHL inventory units for one state/territory'), then enumerates the summary dimensions. This clearly distinguishes it from sibling tools like fema_nfhl_get_inventory_item and fema_nfhl_search_inventory, which operate on individual or searched items rather than state-level aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it for 'state coverage/freshness comparisons and data-acquisition budgeting,' which gives clear context. It also includes a scope disclaimer that the result does not mean every place/parcel has digital NFHL geometry and is not a flood determination. It does not name alternative sibling tools for related needs, but the intended use is well specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fhfa_hpi_compareARead-onlyIdempotentInspect
Compare two to eight US geographies on a consistent FHFA HPI series and rank them by one-year price-index change. Returns latest level, one-year and five-year change, CAGR, recent direction, stable place_id/geography_level fields, and source provenance for later property-market evidence packs. Use this for 'compare home-price momentum in Texas and Florida' or 'which of these metros has stronger five-year appreciation?'. Not a property valuation or investment recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| places | Yes | Two to eight exact FHFA place ids or geography names. | |
| frequency | No | Observation frequency. Default quarterly. | |
| hpi_flavor | No | FHFA index flavor. Default purchase-only. | |
| index_basis | No | Index column to use. Default seasonally_adjusted. | |
| geography_level | No | Optional exact FHFA geography level to disambiguate state, metro, division, or national series. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds beyond that: 'stable place_id/geography_level fields' and 'source provenance for later property-market evidence packs' clarify output stability and downstream reuse. It does not address error scenarios or rate limits, but the read-only profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three to four sentences with no filler. The first sentence captures purpose, the second enumerates returned fields, and the final gives examples plus an important caveat. It is appropriately front-loaded though slightly longer than absolutely necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description lists the key returned fields: 'latest level, one-year and five-year change, CAGR, recent direction, stable ident fields, and source provenance.' That is adequate for an analyst to understand the response shape. It does not discuss edge cases like unknown place IDs or mixed geography levels, which would be the next step in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters already carry descriptions and enums. The overview's 'two to eight' and 'state, metro, division, national' only repeat what is already in the schema, adding no new parameter-level insight beyond the structured field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Compare'), resource ('two to eight US geographies'), and the ranking output ('rank them by one-year price-index change'). This clearly separates it from nearby fhfa_hpi_series and fhfa_hpi_trend, whose names imply single-series functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage examples ('compare home-price momentum in Texas and Florida') and a clear exclusion ('Not a property valuation or investment recommendation'). It does not name the sibling alternatives (fhfa_hpi_series/fhfa_hpi_trend) for comparison, but the 'two to eight geographies' condition strongly implies where this tool fits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fhfa_hpi_seriesARead-onlyIdempotentInspect
Return a bounded FHFA House Price Index history for one US geography from LiveDataLink's self-hosted official snapshot. Includes stable FHFA place_id, geography level, year/period, adjusted and unadjusted index values, pagination, snapshot hash, and required attribution. Use this for 'show California house-price history', 'chart the Austin metro HPI', or as a federal price-index leg alongside realestate_trend. The index measures average price change; it is not a property value or appraisal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum observations. Default 24. | |
| place | Yes | Exact FHFA place_id or geography name, such as 'CA', 'California', a 5-digit CBSA id, or an FHFA metro name. | |
| offset | No | Observations to skip for pagination. Default 0. | |
| end_year | No | Optional latest observation year. | |
| frequency | No | Observation frequency. Default quarterly. | |
| hpi_flavor | No | FHFA index flavor. Default purchase-only. | |
| start_year | No | Optional earliest observation year. | |
| index_basis | No | Index column to use. Default seasonally_adjusted. | |
| geography_level | No | Optional exact FHFA geography level to disambiguate state, metro, division, or national series. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds valuable context beyond annotations: data provenance (LiveDataLink self-hosted snapshot), return contents (place_id, geography level, year/period, adjusted/unadjusted values, pagination, snapshot hash, attribution), and semantic clarification ('not a property value or appraisal'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero fluff. The first sentence states the core action, the second enumerates key output components, and the third gives examples plus a critical disambiguation. Content is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with a fully documented schema)Skip, the description provides everything an agent needs: anchor examples, output field list, data source, and conceptual context ('index measures average price change; not a property value'). Pagination, years, and frequency are in the schema, so no gaps remain for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3. The description references place examples ('California', 'Austin metro') and mentions adjusted/unadjusted values, which maps to index_basis, but does not add meaning beyond what the schema's parameter descriptions already provide. No additional parameter semantics are introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return'), a precise resource ('bounded FHFA House Price Index history for one US geography'), and scoping (single geography, official snapshot). It distinguishes itself from siblings like fhfa_hpi_compare and realestate_trend by noting it covers one geography and serves a distinct data role. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage examples ('show California house-price history', 'chart the Austin metro HPI') and a collaboration note (e.g., 'federal price-index leg alongside realestate_trend') provide clear context. It stops short of explicit exclusions (e.g., 'for comparing multiple geographies, use fhfa_hpi_compare'), so guidance is strong but not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fhfa_hpi_trendARead-onlyIdempotentInspect
Summarize the latest FHFA HPI trend for one US geography from the self-hosted official series. Returns latest index, previous-period, one-year and five-year changes, five-year CAGR, recent direction, stable geography identifiers, and provenance. Use this for 'how fast are home prices rising in Texas?', 'is the Miami HPI falling?', or as the public-data corroboration leg for a realestate_market_screen. Not a forecast, appraisal, or investment recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| place | Yes | Exact FHFA place_id or geography name, such as 'CA', 'California', a 5-digit CBSA id, or an FHFA metro name. | |
| frequency | No | Observation frequency. Default quarterly. | |
| hpi_flavor | No | FHFA index flavor. Default purchase-only. | |
| index_basis | No | Index column to use. Default seasonally_adjusted. | |
| geography_level | No | Optional exact FHFA geography level to disambiguate state, metro, division, or national series. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds clarity by stating it is 'not a forecast, appraisal, or investment recommendation', which is a useful disclaimer. However, it does not disclose potential edge cases (e.g., what happens if geography is not found, or how recent the data is). With annotations covering safety, the description meets the baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loads the primary purpose and output. It efficiently packs use casesheb and a disclaimer without fluff. Every sentence earns its place, making it easy for an agent to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, 100% schema coverage, no output schema), the description adequately covers what the agent needs: purpose, example outputs, and usage context. It doesn't explain the return format in detail, but with readOnly and idempotent annotations, it is reasonably complete. A minor gap is not describing the 'stable geography identifiers' field, but it is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds some context by mentioning the type of data (e.g., 'self-hosted official series') and includes a 'stable geography identifiers' hint, but it doesn't add meaningful semantics beyond the schema. It doesn't clarify the format of 'place' beyond schema, but the schema has examples, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool summarizes FHFA HPI trend for a geography, listing the exact output metrics (latest index, changes, CAGR, direction). It provides concrete example questions that specify the resource (Texas, Miami). It does not explicitly distinguish from the sibling fhfa_hpi_compare or fhfa_hpi_series, but the purpose is clear and the examples are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases ('how fast are home prices rising in Texas?', 'is the Miami HPI falling?') and explicitly mentions using it as a public-data corroboration leg for 'realestate_market_screen'. It does not explicitly say when not to use it or mention alternatives like fhfa_hpi_compare, but the context provided is actionable and sufficient for common selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flood_zone_lookupBRead-onlyIdempotentInspect
FEMA flood zone designation for an address or coordinate. Returns the zone code, plain-English risk, BFE if applicable, FIRM panel reference, and whether NFIP insurance is mandated for federally-backed mortgages.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| location | No | Address or zip to geocode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful context by naming the exact return fields and noting that BFE is included 'if applicable,' but it does not disclose other behavioral traits like geocoding failure handling, data vintage, or coverage limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently communicates the core purpose and enumerates the key return fields without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the outputs well, which matters because there is no output schema. However, it leaves the input model underspecified: an agent must infer that location is for addresses and lat/lon are for coordinates, and there is no guidance about required vs optional inputs or mutual exclusivity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description needed to explain the parameters, but it does not clarify how lat, lon, and location relate to each other, whether they are alternatives, or what coordinate format is expected. It only loosely maps to 'address or coordinate' without giving enough detail for an agent to confidently choose the right inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: looking up FEMA flood zone designations for an address or coordinate, and it lists specific outputs. It is distinct enough in subject matter from siblings like nfip_flood_claims or geocode_address, but it does not explicitly name or differentiate itself from any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when flood zone information is needed, but gives no explicit guidance on when to prefer this tool over related alternatives such as nfip_flood_claims, property_lookup, or location_risk_report. No exclusions, prerequisites, or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_authorityARead-onlyIdempotentInspect
Check if a trucking company is legally authorized to operate and has valid insurance. Returns operating authority status (common, contract, broker - active/inactive/revoked), BIPD insurance, cargo insurance, bond/surety status, and whether they're allowed to haul freight. Use this for questions like 'can this carrier legally operate?', 'do they have insurance?', 'is this broker licensed?', 'verify carrier authority', 'check trucking company credentials', 'is this freight company legit?', or any carrier compliance check.
| Name | Required | Description | Default |
|---|---|---|---|
| dot_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint false, the description adds useful behavioral context by specifying exactly what statuses and insurance categories the tool returns. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by useful return-value detail and example queries. It is slightly long, but each sentence contributes functional guidance and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read-only lookup with no output schema, and the description explains both the input context and the main return categories. It doesn't cover not-found or error behavior, but for this tool complexity that is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines dot_number as a positive integer with no property description. The description adds some context by indicating the tool operates on trucking companies/carriers, but it never explicitly says the dot_number is a USDOT number or how to obtain it, leaving a small semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Check') against a specific resource ('trucking company') and enumerates concrete outputs: operating authority status, insurance types, bond/surety, and freight eligibility. It doesn't explicitly differentiate from sibling FMCSA tools like fmcsa_carrier_lookup or fmcsa_safety_scores, but the stated scope is specific enough to identify the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides example questions and a 'use this for' directive, so the intended usage context is fairly clear. However, it doesn't mention alternatives or exclusions, and the closing phrase 'or any carrier compliance check' is overbroad since safety-score checks are handled by fmcsa_safety_scores.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_compareARead-onlyIdempotentInspect
Compare 2 to 5 trucking companies side by side on safety, fleet size, insurance, and authority. Returns a comparison table: fleet size, driver count, safety rating, crash history, BASIC safety scores, authority status, insurance, and out-of-service rates. Use this for questions like 'which carrier is safer?', 'compare these trucking companies', 'which freight company should I use?', 'evaluate these carriers against each other', 'help me pick between these haulers', or any carrier vetting decision.
| Name | Required | Description | Default |
|---|---|---|---|
| dot_numbers | Yes | 2-5 USDOT numbers, as an array or comma-separated string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral detail by stating that it returns a comparison table and enumerating the exact data dimensions: fleet size, driver count, safety rating, crash history, BASIC safety scores, authority status, insurance, and out-of-service rates. This is helpful since no output schema 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and output are front-loaded in the first sentence, and the second sentence follows with the return format and then example queries. It is efficiently written, though the five example phrasings are somewhat redundant and could be trimmed without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with full schema coverage and safety annotations, the description is largely complete: it states the input scope, the decision use case, and the returned comparison dimensions. It does not cover data freshness or how incomplete records are handled, but that is a minor gap given how much is already explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents dot_numbers thoroughly, including the 2-5 range and accepted formats (array or comma-separated string), so schema coverage is 100%. The description reinforces the 2-5 carrier range but adds no new parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compare 2 to 5 trucking companies side by side on safety, fleet size, insurance, and authority.' This clearly distinguishes it from sibling tools like fmcsa_carrier_lookup, fmcsa_carrier_search, and fmcsa_safety_scores, which are single-carrier or score-specific operations. The tool's purpose as a multi-carrier comparison is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context with concrete question examples such as 'which carrier is safer?' and 'compare these trucking companies,' and closes with 'or any carrier vetting decision.' It does not explicitly name alternative tools or state when not to use it, but the 'use for questions like...' framing gives an agent solid selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_lookupARead-onlyIdempotentInspect
Look up a trucking company, freight carrier, or motor carrier by DOT number or MC number. Returns company name, address, phone, fleet size, number of drivers, safety rating, operating authority, insurance status (BIPD, cargo, bond), crash history, inspection rates, and out-of-service percentages. Use this for questions like 'is this carrier safe?', 'look up this trucking company', 'check this DOT number', 'verify this carrier', 'what's their safety rating?', or any freight carrier lookup. Covers all US carriers registered with FMCSA.
| Name | Required | Description | Default |
|---|---|---|---|
| mc_number | No | ||
| dot_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive behavior, so the description mainly adds scope ('Covers all US carriers registered with FMCSA') and return categories. It does not clarify that calling with neither dot_number nor mc_number is likely invalid, even though the schema marks both optional. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Information-dense and front-loaded with the core lookup, followed by a useful field inventory, usage examples, and scope. The examples are slightly redundant, but the description remains focused and earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter lookup with no output schema, the description is mostly complete: it lists return fields, identifiers, and coverage. The main gaps are the lack of an explicit at-least-one-parameter constraint and route to sibling FMCSA tools, which prevents a top score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides property names and integer types but no descriptions; the description supplies the domain meaning (DOT/MC are carrier identifiers) and says the lookup is by one or the other. It stops short of documenting exact accepted formats or explicitly stating that at least one parameter is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('look up') on a defined resource class (trucking/freight/motor carrier) keyed by DOT or MC number, and enumerates returned fields. It does not explicitly name or exclude nearby siblings like fmcsa_carrier_search, fmcsa_carrier_authority, or fmcsa_carrier_compare, so differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit query-phrase examples ('is this carrier safe?', 'check this DOT number') that tell an agent when to invoke it. However, it never says when not to use it or mentions alternatives for narrower or comparative carrier lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_searchARead-onlyIdempotentInspect
Search for trucking companies, freight carriers, or motor carriers by company name. Find any carrier's DOT number, MC number, location, fleet size, and operating status. Supports partial name matching. Use this for questions like 'find this trucking company', 'what's the DOT number for Werner?', 'search for freight carriers in Texas', 'look up this logistics company', or any carrier name search. Returns up to 50 matching carriers from the FMCSA national database.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
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 context beyond annotations: partial-name matching, a 50-result cap, the FMCSA national database source, and the fields returned. It does not discuss zero-result or ambiguous-match behavior, but this is a minor gap for a read-only search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: core operation first, return fields second, then matching behavior and examples. The example list is mostly helpful, though 'or any carrier name search' is a slightly redundant catch-all and the 'freight carriers in Texas' example is a bit loose because the tool only searches by company name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately lists the key return fields and the result limit, giving an agent enough information to invoke and interpret the tool. The main gap is that it does not warn that searches are name-only and cannot filter by location, despite one example mentioning Texas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameter. It does: the 'name' parameter is a company name, partial matches are supported, and examples clarify expected input. It stops short of specifying case sensitivity or formatting, but the schema constraints and examples suffice for this simple one-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search for trucking companies... by company name,' then lists concrete returned fields (DOT number, MC number, location, fleet size, operating status). It also notes partial name matching, which helps distinguish it from exact-lookup siblings like fmcsa_carrier_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit example questions and states 'or any carrier name search,' so an agent knows when to invoke it. It does not explicitly mention when to prefer sibling tools such as exact DOT/MC lookup or safety-score tools, though the name-search framing implies the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_safety_scoresARead-onlyIdempotentInspect
Get safety information for a trucking company by DOT number. Returns either CSA BASIC percentile scores (where FMCSA publishes them, rare per FAST Act 2015 restrictions) OR a public safety summary built from crash counts, fatal/injury crashes, driver/vehicle/hazmat out-of-service rates, and inspection volumes (always available). Use this for questions like 'is this carrier safe?', 'what's their safety record?', 'how many crashes?', 'should I hire this carrier?', 'check their inspection history', or any trucking safety evaluation. Higher BASIC percentiles = worse record. For OOS rates, lower is better; national averages provided for comparison.
| Name | Required | Description | Default |
|---|---|---|---|
| dot_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond that: it explains the conditional return of CSA BASIC percentiles versus the always-available public safety summary, specifies the metrics included, and clarifies interpretation ('Higher BASIC percentiles = worse record'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then efficiently covers return modes, example use cases, and interpretation guidance. The example-question list is slightly long but each item is decision-relevant, and no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the two possible return forms, the data contained in the safety summary, and how to interpret the metrics. It does not cover error cases or mention alternative fmcsa tools, but for a single-parameter read-only lookup the essential information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate, but it only repeats that the tool works 'by DOT number.' This adds little beyond the parameter name and the schema's integer/exclusiveMinimum constraints. It does not explain how to obtain or format a DOT number or any additional semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get safety information for a trucking company by DOT number.' The description further clarifies the two possible return types, which helps differentiate it from generic carrier lookups. However, it does not explicitly distinguish itself from sibling tools like fmcsa_carrier_lookup or fmcsa_carrier_authority.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context through example questions like 'is this carrier safe?' and 'how many crashes?' and explicitly says 'or any trucking safety evaluation.' It does not state when not to use it or mention alternative tools, so it lacks explicit exclusions and sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_category_seriesARead-onlyIdempotentInspect
List the most popular FRED series in a category. Category IDs are numeric (e.g. 32991 = Interest Rates, 32263 = Money Stock, 9 = National Accounts). Use this to browse FRED structurally rather than via search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| category_id | Yes | FRED category ID. See https://fred.stlouisfed.org/categories/ for the hierarchy. |
TDQS
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). The description adds context by saying results are the most popular series in a category, which implies ordering and selection behavior. However, it does not disclose pagination behavior, response shape, or rate limits; with no output schema, more detail would have been useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and each sentence earns its place: the first states the core purpose, the second gives parameter context, and the third provides usage direction. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only listing tool, the description is mostly complete: purpose, category ID semantics, and structural browsing intent are all covered. It could be more complete by connecting to fred_observations for actual data retrieval or noting whether output is metadata-only, but the annotations and schema make the tool safely callable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters well, so the baseline is 3. The description actively enriches category_id by providing concrete numeric examples and their meanings (32991 = Interest Rates, 32263 = Money Stock, 9 = National Accounts), which helps an agent select a valid category ID without further research.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (FRED series), and the scoping dimension (category with numeric IDs). It distinguishes itself from search by saying 'browse FRED structurally rather than via search,' though it does not explicitly name sibling tools like fred_observations or fred_series_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: browse FRED by category instead of searching. The example category IDs help an agent know what input is expected. It does not spell out when not to use this tool versus related siblings such as fred_observations or fred_series_info, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_compareARead-onlyIdempotentInspect
Compare 2 to 5 FRED series side-by-side over the same date range. Returns observations for each series. Useful for ratio analysis (e.g. compare 10Y vs 2Y yield) or cross-series correlation.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound ISO date (YYYY-MM-DD). | |
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| start | No | Inclusive lower-bound ISO date (YYYY-MM-DD). | |
| series_ids | Yes | 2 to 5 FRED series IDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavior beyond the annotations: it compares series side-by-side over the same date range and returns observations for each series. With readOnlyHint and idempotentHint already covering safety, this extra detail about output shape is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the core action and scope, the second states the output, the third gives practical use cases. Everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with the fully-covered schema and annotations, gives an agent enough to invoke the tool correctly: required series_ids, optional start/end/limit, output type, and use cases. Minor gaps like non-overlapping date-range behavior are not necessary for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add parameter-specific details, which is acceptable at baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Compare'), the resource ('FRED series'), and the scope (2 to 5 series, same date range). It also specifies what is returned ('observations for each series'), which distinguishes it from single-series FRED tools like fred_observations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear use cases ('ratio analysis', 'cross-series correlation') that signal when to choose this tool. It does not explicitly name alternatives or exclusions, but the context is strong enough for an agent to select this over single-series or search-focused FRED tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_observationsARead-onlyIdempotentInspect
Get time-series observations for a FRED series ID. Workhorse query for any economic indicator. Optional date range, units transformation (lin, chg, pch, log, etc.), and frequency aggregation (m, q, a).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound ISO date (YYYY-MM-DD). | |
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| start | No | Inclusive lower-bound ISO date (YYYY-MM-DD). | |
| units | No | Units transformation: 'lin' (default), 'chg' (change), 'ch1' (change YoY), 'pch' (% change), 'pc1' (% change YoY), 'log', etc. | |
| frequency | No | Aggregate to a different frequency: 'd', 'w', 'bw', 'm', 'q', 'sa', 'a'. | |
| series_id | Yes | FRED series ID (e.g. 'GDP', 'UNRATE'). See https://fred.stlouisfed.org/ for the catalog. | |
| aggregation_method | No | Aggregation method when changing frequency: 'avg', 'sum', or 'eop' (end of period). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds optional date range, units transformation, and frequency aggregation, but does not disclose pagination, default limits, or error behavior beyond what the schema already lists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core purpose is front-loaded and the optional parameters are summarized compactly. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only observations query, the description plus fully documented schema and safety annotations are nearly complete. The only minor gap is the lack of explicit comparison to sibling FRED tools, but the tool call itself is fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description paraphrases units and frequency options with examples such as 'lin, chg, pch, log' and 'm, q, a', but adds no meaning beyond the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get time-series observations for a FRED series ID.' This is clear and distinguishable from fred_search and fred_series_info, but it does not explicitly differentiate from fred_quick_indicator or fred_compare, which also retrieve FRED indicator data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Workhorse query for any economic indicator' implies this is the default tool for FRED data retrieval, offering clear context. However, it gives no explicit when-not-to-use guidance or alternatives, leaving the agent to infer boundaries versus similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_quick_indicatorBRead-onlyIdempotentInspect
Quick-access wrapper for the most-queried FRED indicators by friendly name. Avoids needing to memorize FRED series IDs. Valid indicators: unemployment_rate, fed_funds, fed_funds_target, cpi, core_cpi, gdp, real_gdp, ten_year_yield, two_year_yield, thirty_year_yield, thirty_year_mortgage, m2, industrial_production, retail_sales, nonfarm_payrolls, housing_starts, case_shiller, vix, wti, brent, natural_gas_henry_hub, dollar_index, consumer_sentiment, initial_claims, pce_inflation, recession_indicator.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound ISO date (YYYY-MM-DD). | |
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| start | No | Inclusive lower-bound ISO date (YYYY-MM-DD). | |
| indicator | Yes | Friendly indicator name. See description for valid options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds that this is a curated wrapper restricted to a fixed set of friendly names, which is useful and consistent. It does not describe the exact response format, but with annotations covering the safety profile, the additional behavioral disclosure is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence immediately states the purpose, the second gives the rationale, and the remainder is an exhaustive list of valid values. The list is long but necessary given the closed set, and there is no filler prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description never explicitly states what is returned (presumably FRED observations) or how to interpret the result. The parameter schema covers start/end/limit, but the return shape is a notable omission. The tool is simple enough that an agent can likely call it, but the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions and the indicator enum lists exactly the same values as the description, so the description's list is redundant. The main added semantic is the friendly-name-to-series-ID mapping, but the schema's indicator description already calls it a 'friendly indicator name.' Thus the description does not move meaningfully beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific convenience wrapper over frequently used FRED indicators, selected by friendly names, and explains that it removes the need to memorize FRED series IDs. It is clear about the resource and access pattern, but it does not explicitly frame itself against siblings like fred_observations, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates a use case: users who want one of the 26 listed common indicators without knowing the series ID. It does not explicitly state when to prefer fred_observations, fred_search, or other siblings, nor provide any exclusions. Usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_releasesARead-onlyIdempotentInspect
Browse FRED economic releases (e.g. Employment Situation, CPI, GDP). With upcoming_dates=true, returns the upcoming release calendar instead. Useful for knowing when fresh data is expected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| release_id | No | Optional. If provided, return only that release's metadata. | |
| upcoming_dates | No | If true, return upcoming release date schedule instead of release metadata. Default false. |
TDQS
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 behavioral context beyond annotations by explaining that upcoming_dates=true switches the response from release metadata to the upcoming release calendar, which is meaningful for agent expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loaded with the main purpose and examples, and then the mode switch. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only catalog tool with zero required parameters and full schema documentation, the description is largely complete: it states the resource, gives examples, and explains the alternate mode. It could explicitly route to fred_observations or fred_series_info for actual data values, but that is not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (limit, release_id, upcoming_dates) are already fully documented in the schema. The description's mention of upcoming_dates=true aligns with the schema but adds no new semantic detail beyond it, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource combination — 'Browse FRED economic releases' — and reinforces it with concrete examples (Employment Situation, CPI, GDP). It also clearly distinguishes the two modes of operation (release metadata vs. upcoming calendar), making its purpose unambiguous and distinct from sibling tools that focus on series, observations, or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('Useful for knowing when fresh data is expected') and explains when the upcoming_dates parameter changes behavior. It does not explicitly name sibling alternatives like fred_observations or fred_series_info or state when not to use this tool, 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.
fred_searchARead-onlyIdempotentInspect
Full-text search across FRED's 800,000+ economic series. Returns matching series IDs and titles ranked by popularity. Use when you don't know the exact series ID.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| tag_names | No | Optional semicolon-delimited tag filter (e.g. 'usa;monthly'). | |
| search_text | Yes | Free-text search query (e.g. 'unemployment Texas', 'natural gas price', 'corporate profit'). | |
| search_type | No | 'full_text' (default) or 'series_id'. |
TDQS
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 safety is well covered. The description adds useful behavioral context: it searches a corpus of 800,000+ series, returns IDs and titles, and ranks by popularity. It doesn't disclose pagination or the result shape, but the annotations and moderate complexity make this a solid score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states what the tool does, the second explains when to use it. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With schema covering 100% of parameters and annotations covering mutability/idempotence/read-only safety, the description is nearly complete. The only gaps are the resulting payload structure and behavior when no results are found, but since there is no output schema and this is a search/discovery tool with known caveats, a 4 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 4 parameters already described in the schema (search_text, search_type, tag_names, limit). The description adds the ranking-by-popularity context and the example use case, but doesn't significantly expand on parameter semantics beyond the schema. Baseline 3 applies because the schema carries the documentation load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs full-text search across FRED's 800,000+ economic series and returns matching series IDs and titles ranked by popularity. It also explicitly identifies the use case: when you don't know the exact series ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to use this tool when you don't know the exact series ID, which gives clear selection guidance. Among FRED siblings, fred_series_info, fred_observations, fred_category_series, and fred_quick_indicator serve different purposes; this description explicitly frames its use case for discovery rather than retrieval of a known series.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_series_infoARead-onlyIdempotentInspect
Get metadata for a FRED economic data series by ID. Returns title, units, frequency, seasonal adjustment, observation range, and notes. Useful for verifying a series exists and understanding its measurement before pulling observations.
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | FRED series ID (e.g. 'GDP', 'UNRATE', 'CPIAUCSL', 'DGS10'). |
TDQS
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, so the safety profile is well covered. The description adds that the tool returns metadata and can verify existence, but it does not disclose error behavior for nonexistent series, rate limits, or other operational quirks. With strong annotation coverage, a mid score 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The first sentence states the action and the return payload; the second provides the use case. Everything earns its place 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.
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 lookup tool with rich annotations, the description is complete: it tells the agent what it does, what it returns, and when to use it. No output schema exists, but the description lists the return fields, so an agent can judge whether this tool satisfies the user's request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage: the only parameter, series_id, is described with helpful examples ('GDP', 'UNRATE', 'CPIAUCSL', 'DGS10'). The description adds little beyond confirming the ID identifies a FRED series, which the schema already conveys. Baseline 3 is correct because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get metadata') with a specific resource ('FRED economic data series by ID') and enumerates precisely what is returned: title, units, frequency, seasonal adjustment, observation range, and notes. It clearly distinguishes this from pulling observations or searching for series, and the sibling context reinforces that fred_series_info is for metadata, not observations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says it is useful 'for verifying a series exists and understanding its measurement before pulling observations,' which gives clear usage context relative to fred_observations. It does not explicitly name alternative tools or state when not to use it, but the 'by ID' phrasing implies the series ID should already be known, and the connection to pulling observations is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocode_addressARead-onlyIdempotentInspect
Geocode a US street address with the Census Geocoder (keyless). Accepts a one-line address OR structured street/city/state/zip parts. Returns the normalized matched address, longitude/latitude, and Census geographies (state, county, tract, block, congressional district) with GEOIDs. No match returns an explicit not-found message.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ZIP code for a structured query. | |
| city | No | City for a structured query. | |
| state | No | Two-letter state code for a structured query (e.g. 'DC'). | |
| street | No | Street line for a structured query (e.g. '4600 Silver Hill Rd'). | |
| address | No | One-line address, e.g. '4600 Silver Hill Rd, Washington, DC 20233'. Provide this OR the structured parts. |
TDQS
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 annotations: it is keyless, returns the normalized matched address, coordinates, Census geographies with GEOIDs, and explicitly reports an unmatched address with a not-found message.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences front-load the core purpose, then cover input modes and outputs. Every sentence adds necessary selection or invocation information with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the key return components including normalized address, coordinates, Census geographies, GEOIDs, and not-found behavior. For a five-parameter tool with zero required fields and no output schema, this is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% parameter coverage with clear examples. The description adds useful relational semantics by stating that callers can pass either a one-line address OR structured street/city/state/zip parts, clarifying the intended parameter grouping beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Geocode a US street address with the Census Geocoder (keyless).' It clearly distinguishes this tool from sibling tools like geocode_coordinates and geocode_batch by scope (street address) and single-address mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: US-only addresses, keyless Census Geocoder, and two accepted input modes (one-line vs. structured parts). It does not explicitly name alternatives or state when not to use the tool, but the 'street address' framing implies the boundary versus coordinate/batch geocoding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocode_batchARead-onlyIdempotentInspect
Geocode up to 10 one-line US addresses in a single call. Returns one block per input address (matched address, coordinates, and county/tract GEOIDs). For large jobs the Census batch file API supports up to 10k rows; this tool covers small ad-hoc batches.
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | Yes | Array of one-line address strings. Max 10. |
TDQS
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 behavioral detail beyond annotations by specifying the return shape (one block per input address with matched address, coordinates, and county/tract GEOIDs) and the batch limit of 10. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The core action and batch limit are front-loaded, return shape is stated second, and the alternative API guidance is a compact final sentence. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with a single parameter and 100% schema coverage, the description covers the key operational constraints: max 10 addresses, US-only addresses, one output block per input, and the boundary against the larger Census API. It lacks details like error behavior or address normalization, but those are not critical for a simple geocoding call with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'addresses' parameter, so the schema already defines an array of one-line address strings with max 10. The description adds value by clarifying what each returned block contains, which indirectly explains how the input addresses map to outputs. Some format expectations (e.g., address formatting guidelines) are not detailed, but the schema plus description are largely sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool geocodes up to 10 one-line US addresses in a single call, with a specific verb (geocode), resource (addresses), and explicit constraints. It also distinguishes itself from the larger Census batch file API, helping an agent differentiate it from similar geocoding tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames when to use this tool ('small ad-hoc batches') versus when to use the Census batch file API ('up to 10k rows'). It doesn't name a sibling tool, but the guidance is sufficient for an agent to select it appropriately against the broader sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocode_coordinatesARead-onlyIdempotentInspect
Reverse-geocode a longitude/latitude pair with the Census Geocoder (keyless). Returns the Census geographies (state, county, tract, block, congressional district) containing the point, with GEOIDs.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude (y), e.g. 38.84 | |
| longitude | Yes | Longitude (x), e.g. -76.92 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds meaningful context: calls are keyless, uses the Census Geocoder, and returns a specific set of geographies. It does not detail rate limits or error behavior, but the annotations carry the safety profile and the description adds useful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that front-loads the operation and includes only high-value details: reverse geocoding, coordinate inputs, source, keyless access, and return values. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only tool, this description is complete: it explains the inputs, source, authentication requirement (none), and expected output. The absence of an output schema is mitigated by the explicit statement that Census geographies and GEOIDs are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions fully cover both parameters with examples (latitude and longitude). The description reinforces that the tool expects a coordinate pair but adds no further meaning beyond the schema, which already names and explains both fields. A baseline of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Reverse-geocode'), a specific resource ('a longitude/latitude pair'), and the data source ('Census Geocoder'). It also names the return values (Census geographies with GEOIDs), distinguishing it from forward-geocoding tools like geocode_address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this when you have coordinates and need the containing Census geographies. It does not explicitly name alternatives or state when not to use it, but the 'Reverse-geocode' phrasing and coordinate input provide enough context to differentiate it from address-based or batch geocoding siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_repoARead-onlyIdempotentInspect
Public GitHub repository stats: description, stars, forks, open issues, primary language, license, last push date, and archived status. Useful for assessing the health and maintenance of an open-source dependency. Keyless (60 req/hr unauthenticated).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository as 'owner/repo', e.g. 'facebook/react'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a useful behavioral constraint beyond annotations: 'Keyless (60 req/hr unauthenticated)', which helps agents plan around rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the return fields are listed first, then the use case, then the rate limit. Every clause adds information needed for selecting and invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only stats tool, the description is complete: it lists the output fields, states the intended use case, and discloses the rate limit. The annotation profile covers safety, and the schema covers parameter syntax.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single 'repo' parameter is clearly documented with format and example. The description reinforces that the tool operates on a GitHub repository but does not need to add more because the schema already carries the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (public GitHub repository) and the exact type of data returned: description, stars, forks, open issues, primary language, license, last push date, and archived status. This is specific enough to distinguish it from sibling package and repository tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: 'useful for assessing the health and maintenance of an open-source dependency.' This tells an agent when to select it, though it does not explicitly name alternatives or state 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.
govinfo_legislation_committee_pathARead-onlyIdempotentInspect
Return the complete committee and subcommittee path published in GovInfo Bill Status XML for one bill, preserving stable committee system codes, parent links, chambers, committee types, and dated activities. Use this for 'which committees handled H.R. 2?', 'show subcommittee referrals for this bill', or 'build a committee-routing audit trail'. Coverage is 118th-Congress HR/S only; absence means the captured XML supplied no committee record.
| Name | Required | Description | Default |
|---|---|---|---|
| bill_type | Yes | Hosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot. | |
| bill_number | Yes | Numeric bill number within the fixed 118th Congress. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 tool is safe to call. The description adds valuable behavioral context: it mentions coverage constraints (118th-Congress HR/S only), the absence behavior (no committee record in captured XML), and the preservation of stable codes and dated activities兴盛 This goes beyond the annotations and helps the agent understand what to expect in terms of data completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the core purpose and output components in the first sentence, followed by usage examples and coverage in the second. It is front-loaded with the key information and avoids unnecessary words. Every sentence adds value: the first defines what it does, the second gives usage and limitations. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, 2 required, no output schema), the description covers the essential aspects: what it returns (committee path components), when to use it (examples), coverage constraints (118th Congress HR/S only), and absence behavior. The schema already handles parameter details, and annotations cover safety. There is no critical missing information for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, so parameters like bill_type, bill_number, and response_format are already well-documented in the schema. The description adds context by explaining the scope (118th Congress HR/S only) and providing usage examples, which clarifies the meaning beyond the raw schema. It doesn't add deep syntax details for each parameter, but the schema already covers that. Given high schema coverage, a score of 4 is appropriate for the added context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the complete committee and subcommittee path from GovInfo Bill Status XML for one bill, specifying the exact resource (GovInfo Bill Status XML) and the output components (committee codes, parent links, chambers, committee types, dated activities). It distinguishes itself from siblings like govinfo_legislation_relationships and govinfo_legislation_version_lineage by focusing on committee paths, and provides explicit example queries. The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage examples ('which committees handled H.R. 2?', 'show subcommittee referrals for this bill', 'build a committee-routing audit trail'), which tells the agent when to use this tool. It also states coverage limitations (118th-Congress HR/S only) and the absence handling, which helps the agent decide if this tool is appropriate. Though it doesn't mention alternatives explicitly, the clear use cases and limitations suffice to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
govinfo_legislation_evidence_packARead-onlyIdempotentInspect
Combine a hosted bill's identity, sponsor/cosponsor aggregates, law citations, policy subjects, complete committee path, complete text-version lineage, bounded recent actions, related-measure summary, official URLs, per-record XML hash, and snapshot provenance. Use this for 'build an evidence pack for H.R. 2670', 'document the source trail for S. 1', or 'summarize what the official status record proves before due diligence'. Coverage is the complete 118th-Congress HR/S slice only; recent actions default to 15 and relationships to 20 with explicit stored totals and truncation flags.
| Name | Required | Description | Default |
|---|---|---|---|
| bill_type | Yes | Hosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot. | |
| bill_number | Yes | Numeric bill number within the fixed 118th Congress. | |
| action_limit | No | Maximum most-recent actions in the pack. Default 15; stored total is always returned. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering safety. The description adds behavioral detail: 'recent actions default to 15 and relationships to 20 with explicit stored totals and truncation flags' – indicating the tool returns totals and flags, and mentions per-record XML hash and snapshot provenance, which are useful data-quality signals. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but well-organized: it leads with the combination of components, then gives example prompts, then coverage and defaults. No wasted words, though it's longer than typical. It's front-loaded with the core value proposition and structured logically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description effectively enumerates what the tool returns (identity, aggregates, citations, subjects, committee path, version lineage, actions, related measures, URLs, hashes, provenance), covers the scope limitation, and states defaults and truncation behavior. Since there is no output schema, this description provides an agent with a clear expectation of the result. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters (bill_type, bill_number, action_limit, response_format) are already documented in the schema. The description adds the default for action_limit (15) and mentions relationships bound at 20 with truncation flags, clarifying behavior beyond the schema. This is a modest addition, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is explicit about what the tool does: it combines a bill's identity, sponsor/cosponsor aggregates, law citations, policy subjects, committee path, text-version lineage, recent actions, related measures, URLs, hashes, and provenance. It also gives concrete natural-language use cases ('build an evidence pack for H.R. 2670') and distinguishes it from simpler siblings like govinfo_legislation_committee_path or congress_bill_details by describing it as a combined evidence pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear scenarios for when to use it (evidence packing, source trail documentation, due diligence summaries) and states its coverage limitation (118th Congress HR/S only) and defaults. However, it doesn't explicitly state when to prefer a lighter sibling tool (e.g., 'for just the committee path use govinfo_legislation_committee_path'), so it lacks explicit exclusions. It still implies usage context well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
govinfo_legislation_relationshipsARead-onlyIdempotentInspect
Return a paginated related-measure map for one bill from official GovInfo Bill Status XML, including companion, identical, related, and procedurally related measures, who identified each relationship, and the related measure's latest published action. Use this for 'find the Senate companion to this House bill', 'which rule resolution governed this bill?', or 'map CRS-identified related measures'. Coverage starts from 118th-Congress HR/S bills; related targets may be resolution types that are not otherwise hosted as primary records.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum relationship records. Default 25. | |
| offset | No | Relationship records to skip. Default 0. | |
| bill_type | Yes | Hosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot. | |
| bill_number | Yes | Numeric bill number within the fixed 118th Congress. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds useful behavioral context: pagination, the official source, coverage starting at the 118th Congress, and that related targets may include resolution types not otherwise hosted. It does not add auth/rate-limit details, but it is not misleading and supplements the annotations well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first front-loads the return payload and source, the second gives concrete use examples and coverage limits. Every clause adds value with 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.
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 lists the key result components: relationship types, who identified each relationship, and the latest published action. It also discloses pagination and coverage boundaries. It does not explain the exact JSON/markdown structure or error behavior, but for a read-only, well-scoped tool this is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already explained in the input schema. The description reinforces that bill_type is limited to HR/S and references pagination, but it does not add meaning beyond the schema for limit, offset, bill_number, or response_format. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb-resource pair: 'Return a paginated related-measure map for one bill.' It names the data source (official GovInfo Bill Status XML) and enumerates the exact relationship types included. It also gives concrete example queries ('find the Senate companion to this House bill'), which clearly differentiates it from sibling govinfo tools focused on search, committee paths, or version lineage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this for' and provides three realistic scenarios, making intended usage clear. It states a coverage constraint (118th-Congress HR/S bills) but does not explicitly exclude other tools or mention when an alternative would be more appropriate. Still, for a lookup tool the guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
govinfo_legislation_searchARead-onlyIdempotentInspect
Search LiveDataLink's self-hosted official GovInfo Bill Status snapshot across bill number/title, all published titles, sponsor, policy area, legislative subjects, and committee names, with optional enacted and multi-version filters. Returns stable bill identifiers, sponsor/status facts, pagination, source XML hashes, and provenance. Use this for 'find 118th Congress bills about aviation safety', 'which border bills became law?', or 'bills assigned to the Finance Committee with multiple text versions'. Coverage is complete for HR and S in the 118th Congress only; resolutions and other Congresses are excluded. For Congress.gov's live/current API view, use the existing Congress tools instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum bills. Default 20. | |
| query | Yes | Bill number/title phrase, sponsor name, policy area, subject, or committee phrase. | |
| offset | No | Bills to skip. Default 0. | |
| bill_type | No | Hosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot. | |
| policy_area | No | Optional exact policy-area label, case-insensitive. | |
| enacted_only | No | When true, require at least one law citation in the captured Bill Status XML. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| multiple_text_versions_only | No | When true, require at least two published GovInfo text-version links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, idempotent, and non-destructive behavior. The description adds important context beyond annotations: data is a static snapshot (not live), coverage is limited to HR/S in the 118th Congress, and returned data includes pagination, source XML hashes, and provenance. This reveals the data freshness and scope limitations, which is valuable for setting expectations. It stops short of describing error modes or exact result formatting, but the key behavioral traits are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized: scope first, return payload second, example queries third, coverage limitation fourth, alternative tool last. Every sentence conveys a distinct fact, and the length is justified given the tool's complexity alert. It is not redundant, though the first sentence is long and could be split for even easier scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 8 parameters and no output schema, the description covers the key aspects an agent needs: what is searched, what is returned (identifiers, facts, pagination, hashes, provenance), coverage limits, and how it compares to a sibling. There is no mention of how to handle errors or empty results, but the description is sufficiently complete for initial selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters. The description echoes the query param's scope and highlights the 'enacted and multi-version filters' (matching enacted_only and multiple_text_versions_only), which adds a small hint but does not compensate for anything missing. Baseline 3 is appropriate because the schema carries the full semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and a clearly defined resource ('LiveDataLink's self-hosted official GovInfo Bill Status snapshot'), listing the searchable fields (bill number/title, sponsor, policy area, subjects, committees). It differentiates from siblings by emphasizing 'self-hosted snapshot' and explicitly contrasting with Congress.gov live tools, so an agent knows exactly what this tool is and is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases with example queries ('find 118th Congress bills about aviation safety', 'which border bills became law?') and states the coverage boundary ('HR and S in the 118th Congress only; resolutions and other Congresses are excluded'). It also names the alternative ('For Congress.gov's live/current API view, use the existing Congress tools instead'), making the selection logic fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
govinfo_legislation_version_lineageARead-onlyIdempotentInspect
Return every published GovInfo text-version link for one hosted bill, including version type/code, date, immutable package identifier, package page, and official XML URL. Use this for 'show the introduced, reported, engrossed, enrolled, and law versions of H.R. 2670', 'what version codes exist for S. 1?', or to assemble a reproducible legislative-text lineage. This is version metadata, not a text diff. Coverage is 118th-Congress HR/S only.
| Name | Required | Description | Default |
|---|---|---|---|
| bill_type | Yes | Hosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot. | |
| bill_number | Yes | Numeric bill number within the fixed 118th Congress. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds valuable behavioral context: it returns only version metadata, not diffs, and is limited to 118th-Congress HR/S bills. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured: the first sentence states core behavior and output fields, the second gives natural-language usage examples, and the third clarifies scope and what the tool is not. Every sentence earns its place; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey return values; it does so by listing version type/code, date, immutable package identifier, package page, and official XML URL. It also states the coverage limitation (118th-Congress HR/S only) and clarifies that this is metadata rather than diffs. This 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, including enums and clear explanations for bill_type, bill_number, and response_format. The description restates the HR/S scope but adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource: 'Return every published GovInfo text-version link for one hosted bill', and it enumerates the returned fields. The examples clearly illustrate the intended use. However, it never explicitly names a sibling tool such as govinfo_legislation_search or govinfo_legislation_relationships, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete user intents ('show the introduced, reported, engrossed, enrolled, and law versions...', 'what version codes exist for S. 1?') and a broader goal ('assemble a reproducible legislative-text lineage'). The statement 'This is version metadata, not a text diff' adds a useful exclusion. It does not name alternative tools or give explicit when-not-to-use guidance beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grants_get_opportunityARead-onlyIdempotentInspect
Fetch full detail for a Grants.gov opportunity by its numeric opportunity id (the 'id' field from grants_search, e.g. '334326'). Returns description, eligibility, funding (ceiling/floor/estimated), key dates, CFDA numbers and the agency contact.
| Name | Required | Description | Default |
|---|---|---|---|
| opportunityId | Yes | Numeric opportunity id from a grants_search result (e.g. '334326'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds meaningful return-value context by listing the kinds of data returned (description, eligibility, funding, dates, CFDA numbers, agency contact), which is useful absent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core action, identifier source, and return contents are all front-loaded, making it quick for an agent to parse and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, the description covers the input provenance and the expected return fields. It is sufficient for correct invocation; a minor gap is that it does not describe behavior when the id is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the input schema already explains that opportunityId is a numeric opportunity id from grants_search with an example. The tool description reinforces this but does not add substantial new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch full detail'), a specific resource ('Grants.gov opportunity'), and a precise identifier ('numeric opportunity id'). It also ties the id to grants_search, which distinguishes it from the main sibling tool in this domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates that this tool is for fetching details after obtaining an opportunity id from grants_search. It does not explicitly say 'use grants_search when you lack an id', but the dependency is clear 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.
grants_searchARead-onlyIdempotentInspect
Search federal funding opportunities on Grants.gov (keyless). Filter by keyword, opportunity status (forecasted/posted/closed/archived), agency, funding category and eligibility. Returns opportunity number, title, agency, status, open/close dates and CFDA numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | Max results (default 25, max 100). | |
| keyword | No | Free-text keyword (e.g. 'clean energy', 'rural health'). | |
| agencies | No | Agency code filter (e.g. 'NSF', 'HHS'). Pipe-separate multiples. | |
| oppStatuses | No | Pipe-separated statuses. Default 'forecasted|posted'. Options: forecasted, posted, closed, archived. | |
| eligibilities | No | Applicant-eligibility code filter (e.g. '25' state governments, '99' unrestricted). Pipe-separate multiples. | |
| fundingCategories | No | Funding category code filter (e.g. 'ENV', 'ED'). Pipe-separate multiples. | |
| fundingInstruments | No | Funding-instrument code filter (e.g. 'G' grant, 'CA' cooperative agreement). Pipe-separate multiples. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), so the bar is lower. The description adds genuine value beyond annotations by disclosing that the API is keyless and by enumerating the return fields (opportunity number, title, agency, status, open/close dates, CFDA numbers), which orients the agent on what results look like. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first sentence states purpose and keyless access, second sentence enumerates filters and return fields. Everything earns its place, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with 7 optional parameters, the description covers the domain origin, filter capabilities, and return fields (partially compensating for the missing output schema). The only notable gap is the lack of an explicit pointer to grants_get_opportunity for fetching full opportunity details, which would complete the navigation story.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all 7 parameters have meaningful schema descriptions including default values and pipe-separated syntax. The description summarizes these filters but adds no genuinely new semantics beyond what the schema already documents, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search federal funding opportunities on Grants.gov') plus the keyless qualifier, and lists concrete filter dimensions and return fields. This clearly positions it as the discovery tool and distinguishes it from the sibling grants_get_opportunity, which presumably retrieves a single opportunity's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear usage context — searching for funding opportunities with filters, and the keyless note signals no auth setup is needed. However, it never explicitly names the alternative (grants_get_opportunity) or states when not to use it, so the agent must infer the search-vs-detail split from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsa_per_diem_lookupARead-onlyIdempotentInspect
Look up official GSA lodging and meals-and-incidental (M&IE) reimbursement rates for a federal fiscal year and CONUS destination. Provide either a five-digit ZIP, or a two-letter state with an optional city. State-only results are paginated and capped at 25 locations per call. Returns all 12 monthly lodging limits, the daily M&IE limit, locality/county coverage, and official source metadata. GSA fiscal years run October 1 through September 30; Alaska, Hawaii, territories, and foreign locations use other federal rate sources.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Exactly five ZIP digits, preserving leading zeroes. Do not combine with state or city. | |
| city | No | Optional city within state, e.g. 'O'Fallon'. GSA punctuation quirks are normalized safely. | |
| limit | No | Maximum locations returned; default 10 and hard maximum 25. | |
| state | No | Two-letter code for a contiguous state or DC. Required with city; omit when using zip. | |
| offset | No | Locations to skip for state-result pagination; default 0. | |
| fiscal_year | Yes | Four-digit federal fiscal year. GSA generally publishes the current three fiscal years. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is already known. The description adds valuable behavioral context: pagination caps, return contents (12 monthly lodging limits, daily M&IE limit, locality/county coverage, source metadata), and the fact that GSA publishes the current three fiscal years. These details go beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and well-structured. It opens with the core purpose, then details the input methods, pagination, return contents, and fiscal year caveats. Every sentence contributes useful information without redundancy, and the structure naturally guides the reader from what to how.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain return values, and it does: it lists the monthly lodging limits, daily M&IE limit, locality/county coverage, and source metadata. It also covers fiscal year timing and exclusions. The description is comprehensive for a moderately complex lookup tool, though it could mention potential errors or how pagination works in more detail. Overall, it's complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters already have descriptions. The tool description adds critical semantic context: the mutual exclusivity of zip versus state+city, the optional nature of city, and the default/maximum limit. It also notes normalization of GSA punctuation quirks for city names. This adds value beyond the schema, justifying a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: looking up GSA lodging and M&IE rates for a federal fiscal year and CONUS destination. It specifies the exact resource (GSA rates), the data returned, and the input types (ZIP or state+city). It also distinguishes itself from the sibling tool gsa_per_diem_mie_breakdown by focusing on the main lookup rather than a breakdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage instructions: use either a five-digit ZIP or a two-letter state with an optional city, and notes that state-only results are paginated and capped. It also explains the fiscal year definition and explicitly excludes Alaska, Hawaii, territories, and foreign locations, implying this tool is for CONUS only. While it doesn't name alternatives, the scope is well defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gsa_per_diem_mie_breakdownARead-onlyIdempotentInspect
List the official CONUS meals-and-incidental expense (M&IE) tiers for a federal fiscal year, including breakfast, lunch, dinner, incidental, and first/last travel-day amounts. Use gsa_per_diem_lookup to identify the applicable total for a destination.
| Name | Required | Description | Default |
|---|---|---|---|
| fiscal_year | Yes | Four-digit federal fiscal year. GSA generally publishes the current three fiscal years. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by specifying the exact data elements returned and the CONUS scope, which goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: the first states purpose and data fields, the second routes to the sibling tool. No wasted words, and key info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and annotations covering safety, the description is complete enough. It tells what fields are returned and references the sibling for totals. It doesn't address edge cases like invalid fiscal years or availability, but these are minor for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes fiscal_year completely (four-digit federal fiscal year, current three years). The description does not add any new meaning to the parameter, so it provides no extra semantic value beyond the schema. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('CONUS meals-and-incidental expense tiers'), and enumerates the exact data returned (breakfast, lunch, dinner, incidental, first/last day amounts). This clearly distinguishes it from siblings like gsa_per_diem_lookup, which retrieves a total.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names the alternative tool (gsa_per_diem_lookup) and the condition for using it (to identify the applicable total). While it implies this tool is for breakdown details, it doesn't explicitly state 'use this when you need the M&IE breakdown,' 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.
hurricane_trackerARead-onlyIdempotentInspect
Currently-active hurricanes and tropical systems from NOAA NHC, with category, wind/pressure, current position, movement, and forecast cone link.
| Name | Required | Description | Default |
|---|---|---|---|
| basin | No | Optional basin filter: 'AL' (Atlantic), 'EP' (Eastern Pacific), 'CP' (Central Pacific). |
TDQS
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 only needs to add context beyond safety. It adds the authoritative source (NOAA NHC), the active-storm scope, and a useful summary of returned fields. It does not mention update frequency or empty-result behavior, but those are secondary given the simple read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence front-loads the key scope ('Currently-active') and packs source, data fields, and forecast link with no wasted words. It is easy to scan and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter read-only tool, the description covers the essential calling context: source, temporal scope, and return content. Since there is no output schema, the field list is valuable. It is slightly incomplete in not saying what happens when no storms are active, but annotations and schema make the tool straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional basin parameter is fully documented in the input schema, so the description does not need to repeat it. The description adds no basin-specific semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource — currently active hurricanes and tropical systems from NOAA NHC — and enumerates the included data: category, wind/pressure, position, movement, and forecast cone link. It is clearly distinguishable from generic weather tools, though it lacks 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'currently-active' implies a temporal use case: this tool is for live storms rather than historical data. However, the description does not name alternatives such as nws_active_alerts or weather_current, 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.
influence_network_mapARead-onlyIdempotentInspect
One-call 'follow the money and influence' map for an organization, joined across three federal public-record streams: FEC (the org's connected political committees / PACs - its political-spending vehicles), the U.S. Senate Lobbying Disclosure Act (filings where the org is the client, the reported lobbying spend, the firms it hired, and the issue areas lobbied), and USAspending (federal contracts + grants the org RECEIVES, with award counts and top agencies). Returns a readable map of money flowing OUT to influence (lobbying + political committees) vs. money flowing IN from federal awards. Built for investigative journalism, govcon, and due-diligence research. Informational public-record synthesis, NOT a risk score (distinct from counterparty_risk_score). The FEC leg needs an api.data.gov key and is noted as skipped if unavailable; a source that fails is noted, not fatal.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Optional 4-digit lobbying filing year (e.g. '2024'); defaults to the most recent year with filings. | |
| state | No | Optional 2-letter state to scope the FEC committee search. | |
| company | No | Alias for organization. | |
| organization | Yes | Organization / company name (e.g. 'Lockheed Martin', 'Boeing'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive behavior. The description adds meaningful behavioral context beyond that: the FEC leg requires an api.data.gov key, unavailable sources are reported as skipped rather than fatal, and the result is a synthesized readable map rather than a raw dataset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: purpose, sources, output shape, use cases, differentiation from a sibling, and operational caveat. Every sentence earns its place and the most important scoping information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description does a good job explaining what is joined, what the map compares, and what happens when a source is unavailable. It could be slightly more explicit about the output field structure and how the optional year/state parameters affect each data leg, but it is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for all four parameters. The description reinforces the organization-level focus but does not add substantive parameter-level detail beyond what the schema documents, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: a one-call 'follow the money and influence' map for an organization. It names the three data streams, the outbound vs. inbound money distinction, and explicitly separates itself from counterparty_risk_score, making it easy to distinguish from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states intended use cases (investigative journalism, govcon, due-diligence research) and explicitly says it is not a risk score, naming counterparty_risk_score as the distinct alternative. It could be stronger with more explicit 'use this instead of raw FEC/lobbying/spending searches' guidance, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_reputationARead-onlyIdempotentInspect
Risk profile for an IP address: geolocation and network (ASN/ISP/org) plus two abuse signals - whether it is a known Tor exit node, and whether it appears on the abuse.ch Feodo botnet command-and-control blocklist. For fraud, abuse, and security screening. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 or IPv6 address to screen. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only, idempotent operation. The description adds meaningful behavioral context beyond that: exact data sources/signals included and the fact that no API key is required. This is more than minimal and helps the agent anticipate what the response will cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense, well-structured sentence that lists the key outputs and finishes with the supported use case and keyless note. 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.
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 no output schema, the description is complete enough: it specifies the input, the returned data categories, the intended use, and authentication expectations. An agent can confidently select and invoke this tool with no missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'ip' is already described as 'IPv4 or IPv6 address to screen.' The description adds context about how the IP is used (risk screening) but does not add new parameter-level semantics beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as producing a risk profile for an IP address, enumerating the exact data categories: geolocation, network info, Tor exit node status, and Feodo botnet blocklist status. This distinguishes it from sibling lookup tools like rdap_ip by focusing on abuse-risk signals rather than raw registration data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the intended use case: 'For fraud, abuse, and security screening.' This gives clear context for when to select the tool, though it does not explicitly name alternatives or state 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.
issuer_diligence_dossierARead-onlyIdempotentInspect
One-call NARRATIVE public-record diligence dossier for a public company / SEC issuer. Joins SEC EDGAR (registrant identity, CIK/ticker, recent filings and their form mix), federal courts via CourtListener (RECAP dockets whose name references the issuer), USAspending (federal contract awards, name-matched), and CPSC product-safety recalls into a readable brief with a short headline and four sections: Identity & SEC, Litigation, Federal business, and Product-safety. Every source degrades gracefully - a failing leg is noted, not fatal. This is a narrative synthesis, deliberately distinct from counterparty_risk_score (a 0-100 score) and entity_dossier (SEC+EPA+sanctions only). Informational public-record synthesis, not a background check or legal/financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state hint for disambiguation (currently informational). | |
| ticker | No | Optional stock ticker hint to pin the SEC EDGAR match (e.g. 'LMT'). | |
| company | Yes | Public company / SEC issuer name (e.g. 'Lockheed Martin', 'Pfizer'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly, openWorld, and idempotent annotations, the description discloses that every source degrades gracefully and a failing leg is noted but not fatal. It also clarifies that the output is a narrative synthesis with a headline and four named sections, which is useful behavioral context that the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and audience, then uses compact clauses to list sources, output structure, degradation behavior, and sibling distinctions. Every clause earns its place; the length is justified by the tool's multi-source complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description still explains what the agent will receive: a readable brief with a headline and four named sections, plus graceful handling of source failures. The single required parameter is semantically complete, and the relationship to the closest sibling tools is explicit. Nothing critical for selecting or invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters already have schema descriptions, so the baseline is 3. The description adds meaningful matching semantics: RECAP dockets are matched by name reference and USAspending awards are name-matched, while the ticker/state hints act as disambiguation aids. This goes slightly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific deliverable — a 'one-call NARRATIVE public-record diligence dossier' — and scopes it to public companies / SEC issuers. It enumerates the joined sources and output sections, and explicitly distinguishes itself from counterparty_risk_score and entity_dossier, so an agent can tell it apart from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: public-record diligence for an SEC issuer. It explicitly contrasts the tool with counterparty_risk_score (a 0-100 score) and entity_dossier (SEC+EPA+sanctions only), which routes agents to the right alternative. It also adds an exclusion: it is not a background check or legal/financial advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iv_analyticsARead-onlyIdempotentInspect
Compute derived options-volatility analytics for a US ticker from LiveDataLink's historical volatility series (2019-2024): IV Rank (where current implied vol sits in its own range over the lookback window), IV Percentile (share of days with lower IV), Variance Risk Premium (implied minus realized vol), 52-week IV high/low, and 1-week/1-month IV momentum. Premium synthesis over the options-history store. Analytical aid, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Optional as-of date (YYYY-MM-DD); defaults to the latest available day. | |
| ticker | Yes | US stock ticker with listed options (e.g. 'AAPL', 'SPY'). | |
| lookback_days | No | Trailing window for rank/percentile (default 252 ~ 1 trading year). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive. The description adds useful behavioral context beyond annotations: it names the data source timeframe, lists computed metrics, mentions 'premium synthesis over the options-history store,' and includes a disclaiming note that it is an analytical aid, not investment advice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused paragraph that front-loads the main action and then enumerates the derived metrics. Each clause adds useful information, though 'Premium synthesis over the options-history store' is slightly jargon-heavy and could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no output schema, the description provides strong context: data source, metric definitions, lookback interpretation, and a disclaimer. It does not explicitly describe the response format, but the enumerated metrics give an agent a clear picture of what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents ticker, as_of, and lookback_days with defaults and examples. The description reinforces the meaning of the lookback window through 'IV Rank' and 'IV Percentile' definitions, but it does not substantially add parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Compute'), a precise resource ('derived options-volatility analytics for a US ticker'), and lists the exact metrics produced. It clearly distinguishes this from raw-data siblings like options_history_volhist by emphasizing 'derived' analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this tool synthesizes/derives volatility analytics from historical series, so an agent can infer when to use it instead of raw-history or quote tools. It does not explicitly name alternatives or provide exclusion criteria, but the intended role is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kev_status_checkARead-onlyIdempotentInspect
Check whether a CVE is in the CISA Known Exploited Vulnerabilities catalog. Returns date added, due date, ransomware association, and required action.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE identifier. |
TDQS
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 by disclosing the returned fields (date added, due date, ransomware association, required action), which goes beyond what annotations provide. It does not discuss edge cases like CVEs not found in the catalog, but this is acceptable given the simpler tool scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that starts with the tool's purpose and immediately lists the useful output fields. There is no filler, redundancy, or unnecessary repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup tool, the description covers the action, the target catalog, and the return value fields. It does not specify the response when a CVE is not in the catalog, but the absence of an output schema is partially compensated by listing return fields. Overall it is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes cve_id as a 'CVE identifier' with 100% coverage. The description does not add format guidance (e.g., CVE-YYYY-NNNNN), but the schema description is sufficient for the single parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check whether') and a specific resource ('CISA Known Exploited Vulnerabilities catalog'), and enumerates the exact output fields. This clearly distinguishes it from generic CVE tools like cve_lookup or cve_search_by_keyword even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: determining whether a CVE is in the CISA KEV catalog. It does not explicitly name alternatives or state when not to use the tool, but the narrowly scoped catalog reference makes 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.
kyb_aml_evidence_case_fileARead-onlyIdempotentInspect
Assemble a reusable KYB/AML evidence case file for one company. Combines canonical identity and join keys, GLEIF ownership-chain screening, and public-record standing across sanctions, SEC, EPA, and federal awards, with explicit unavailable-source notes and a reviewer checklist. Informational evidence organization, not legal advice or sanctions clearance.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | No | Optional EIN hint for nonprofit identity. | |
| lei | No | Optional 20-character LEI to anchor the ownership chain. | |
| state | No | Optional 2-letter state. | |
| format | No | Case-file format. Defaults to markdown. | |
| ticker | No | Optional SEC ticker hint. | |
| company | Yes | Company or organization name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, so the bar is lower and the safety profile is covered. The description adds real behavioral value beyond that: it discloses what the output contains (sources screened, unavailable-source notes, reviewer checklist) and the epistemic limit ('informational evidence organization, not legal advice or sanctions clearance'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: the main action is front-loaded, the composition details follow in the second sentence, and the caveat lands last. Each sentence earns its place and the ordering moves from what → contents → limitation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description carries the burden of explaining the result and largely succeeds: it lists the covered source domains, the output components (unavailable-source notes, reviewer checklist), and the scope limitation. It could go further on how a caller should interpret or act on the checklist, but for a read-only, idempotent aggregator the description is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so per the baseline the schema already documents all six parameters. The description adds modest context by framing ein/lei/ticker as 'canonical identity and join keys' (i.e., optional resolution hints) and by tying 'one company' to the required company param, but it does not deepen parameter semantics meaningfully beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Assemble a reusable KYB/AML evidence case file for one company,' with a concrete scope boundary (single company). It enumerates the constituent parts (identity/join keys, GLEIF ownership-chain screening, sanctions/SEC/EPA/federal-awards standing) and explicitly distinguishes itself from related outputs via the 'not legal advice or sanctions clearance' caveat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: this is the consolidated case-file assembler rather than a point screen, which implicitly routes an agent away from siblings like beneficial_owner_screen or corporate_ownership_tree. It offers a when-not exclusion ('not legal advice or sanctions clearance') but never names alternative tools or the conditions that would select them, so it stops short of full explicitness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lane_location_risk_packARead-onlyIdempotentInspect
Compare origin and destination risk for a logistics lane. Runs site-bound hazard/environmental profiles for both addresses and optionally adds FEMA disaster history for each area. Returns source coverage, point-in-time risk evidence, and an operational review checklist. This is informational public-record synthesis, not an insurance rating or route guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report format. Defaults to markdown. | |
| origin_area | No | Optional origin county/place for FEMA history. | |
| origin_state | No | Optional origin 2-letter state, required with origin_area. | |
| origin_address | Yes | Full US origin street address. | |
| destination_area | No | Optional destination county/place for FEMA history. | |
| destination_state | No | Optional destination 2-letter state, required with destination_area. | |
| destination_address | Yes | Full US destination street address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses what the tool runs, what it returns, and its limitations. The disclaimer that this is informational public-record synthesis and not an insurance rating or route guarantee is valuable behavioral context that annotations cannot provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what the tool does, what it runs/returns, and what it is not. Key comparison intent is front-loaded, and no content is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately describes the return types: source coverage, point-in-time risk evidence, and an operational review checklist. It also mentions the optional FEMA extension and the limitations, making it complete enough for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantic linkage by explaining that the optional area/state parameters feed FEMA disaster history, which helps an agent understand how optional parameters relate to the tool's behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: compare origin and destination risk for a logistics lane. It clearly distinguishes itself from single-location tools like location_risk_report by emphasizing the two-address comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary use case clear: when you need to compare risk along a logistics lane between two addresses. It does not explicitly name alternatives or exclusions, but the two-address framing provides sufficient contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leie_exclusion_detailsARead-onlyIdempotentInspect
Retrieve one HHS OIG LEIE exclusion record by the evidence ID returned from a LEIE lookup/search, including exclusion/reinstatement/waiver dates and source freshness.
| Name | Required | Description | Default |
|---|---|---|---|
| exclusion_id | Yes | 24-character evidence ID from a LEIE result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds that the result includes exclusion/reinstatement/waiver dates and source freshness, but it does not disclose behaviors such as not-found handling or data-source caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clear, front-loaded sentence that states the action, the scope, and the return contents with no filler. Every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with rich annotations, the description covers the input source and the output categories. Because there is no output schema, slightly more detail about the response envelope would make it fully complete, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents exclusion_id as a 24-character evidence ID from a LEIE result. The description echoes this provenance without adding new format, validation, or value semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('retrieve'), identifies the exact resource ('one HHS OIG LEIE exclusion record'), and specifies the key ('evidence ID returned from a LEIE lookup/search'). This clearly distinguishes it from sibling tools such as leie_search_exclusions and leie_lookup_npi.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the tool as a follow-up to a LEIE lookup/search by requiring an evidence ID from those flows. It does not explicitly name alternative tools or state when not to use it, but the intended usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leie_lookup_npiARead-onlyIdempotentInspect
Check a 10-digit NPI against the self-hosted HHS OIG List of Excluded Individuals/Entities (LEIE). Returns matching exclusion records with source freshness and evidence IDs. A match is a screening lead, not final identity confirmation; verify it with HHS OIG.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | Exactly 10 digits; placeholder NPI 0000000000 is rejected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive hints, so the safety profile is covered. The description adds valuable behavioral context: that a match is a screening lead, not final identity confirmation, and advises verification with HHS OIG. It also mentions source freshness and evidence IDs, which enriches the agent's understanding of the output. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core action, and every sentence adds value: the action, the return content, and a critical caveat. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup with annotations covering safety and idempotency, the description fully covers what the tool does, what it returns, and the important limitation of a match. No missing information that would prevent an agent from calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for the sole parameter 'npi' has 100% coverage, so the schema already fully documents the format (exactly 10 digits) and the placeholder rejection. The description only repeats the '10-digit' requirement 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Check a 10-digit NPI'), a precise resource ('self-hosted HHS OIG List of Excluded Individuals/Entities (LEIE)'), and the return value (matching exclusion records). It clearly distinguishes itself from sibling tools like leie_search_exclusions (which searches by other criteria) by focusing on NPI-based lookup, even though it doesn't name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the usage condition: when you have a 10-digit NPI, use this tool. It does not explicitly mention alternatives or when-not-to-use, but the context is unambiguous. Since there is no exclusion guidance, it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leie_search_exclusionsARead-onlyIdempotentInspect
Search the self-hosted HHS OIG LEIE by individual or business name, with optional two-letter state and a bounded result limit. Returns evidence IDs for follow-up. Name similarity alone does not establish identity.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Individual or business name, at least 2 characters. | |
| limit | No | Maximum rows, default 10 and maximum 50. | |
| state | No | Optional two-letter US state code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds a critical behavioral caveat: 'Name similarity alone does not establish identity,' warning that results are potential matches, not confirmations. It also specifies that the tool returns 'evidence IDs for follow-up,' setting expectations for output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences: the first states the operation and inputs, the second states the output, and the third is a crucial caveat. No wasted words; key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with full schema coverage and safety annotations, the description covers the main inputs, output shape (evidence IDs), and a vital caveat about identity. It could also note data recency or that it is a self-hosted snapshot, but this is not critical for calling the tool correctly. Lacking an output schema, the description sufficiently bridges the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for each parameter (name min length, limit default/max, state format). The description adds no new semantic details beyond restating that state is 'optional two-letter' and the limit is 'bounded'. Baseline 3 is appropriate given complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Search' with a specific resource ('self-hosted HHS OIG LEIE') and outlines the inputs (name, optional state, limit) and output ('evidence IDs'). It clearly indicates a name-based search tool but does not explicitly differentiate itself from sibling tools like leie_lookup_npi or leie_exclusion_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching the LEIE by name but does not explicitly state when to use it over alternatives. It mentions 'individual or business name' and 'follow-up', but names no alternatives such as leie_lookup_npi for NPI searches. No explicit when-not-to-use guidance exists, so an agent must infer usage from the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lei_hierarchyARead-onlyIdempotentInspect
Map a company's corporate family tree from the GLEIF relationship register (keyless, CC0 open data): given a company name or LEI, returns its direct parent, ultimate (top-of-tree) parent, and a list of its direct children/subsidiaries with the total subsidiary count. Answers 'who ultimately owns this company?' and 'what does this company own?' — core due-diligence and beneficial-ownership questions. Each node includes the LEI, legal name, and jurisdiction so you can drill further. Relationships GLEIF has no filing for are reported as 'none reported' (not an error).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A company legal name (e.g. 'Apple Inc') or a 20-character LEI code. Names resolve to the top-ranked match. | |
| children_limit | No | Max direct children to list (default 15, max 50). The total count is always reported. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: relationships with no GLEIF filing are reported as 'none reported' rather than errors, and the data source is open and keyless. This helps set expectations for missing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized: it opens with the core action, names the data source, lists outputs, gives canonical questions, describes node contents, and closes with a critical missing-data behavior. Every clause earns its place without redundant restatement of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description sufficiently explains returned data: parent, ultimate parent, direct children, total count, and node fields (LEI, legal name, jurisdiction). It also covers input modes, the limit behavior, and the meaning of missing relationships. Combined with the annotations, the tool is fully callable by an agent without lurking ambiguities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description reinforces that the query can be a name or LEI and notes the total count is always reported, but it does not materially expand on the schema for children_limit. Baseline 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.
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: 'Map a company's corporate family tree from the GLEIF relationship register.' It clearly enumerates the outputs (direct parent, ultimate parent, direct children, subsidiary count) and distinguishes itself from simple entity lookups like lei_lookup by focusing on hierarchy relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool: for 'who ultimately owns this company?' and 'what does this company own?' questions, and for due-diligence work. It provides input guidance (company name or LEI) but does not explicitly contrast it with similar sibling tools such as corporate_ownership_tree or beneficial_owner_screen, leaving some alternative-selection inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lei_lookupARead-onlyIdempotentInspect
Resolve a company name to its Legal Entity Identifier (LEI), or look up an LEI code directly, using the GLEIF public register (keyless, CC0 open data). Returns each matching entity's 20-character LEI, exact legal name, operating status (ACTIVE/INACTIVE), jurisdiction (ISO 3166-2), legal-form code, legal address (city/region/country), LEI registration status (ISSUED/LAPSED/RETIRED), and last-update date. The LEI is the global standard join key for entity resolution — use it to disambiguate a company and cross-reference it against sanctions, SEC EDGAR, federal spending, and due-diligence tools. Pass a name (fuzzy match, returns ranked candidates) or a 20-char LEI (exact).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max candidate records for a name search (default 10, max 25). Ignored for an exact LEI. | |
| query | Yes | A company legal name (e.g. 'Apple Inc') or a 20-character LEI code (e.g. 'HWUPKR0MPOU8FGXBT394'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds substantial behavioral context: keyless access to public CC0 data, fuzzy matching with ranked candidates for names, exact matching for LEIs, and the full list of returned fields including status and jurisdiction. This goes well beyond the annotation signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately detailed but well structured: purpose first, then return fields, then use-case context, then input modes. Every sentence earns its place, though the sanctions/EDGAR list is slightly expansive and could be trimmed without losing core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining return values, and it does: it enumerates LEI, legal name, operating status, jurisdiction, legal-form code, address, registration status, and last-update date. It also covers both invocation modes and the data source, making the tool fully understandable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query as a company name or 20-character LEI and limit as max candidates. The description reinforces this with 'fuzzy match, returns ranked candidates' and 'Ignored for an exact LEI', but adds only marginal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: resolve a company name to an LEI or look up an LEI directly. It clearly distinguishes the tool's scope by naming the GLEIF public register and emphasizing the LEI as a global join key, which separates it from generic company-lookup siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases: disambiguating a company and cross-referencing against sanctions, SEC EDGAR, federal spending, and due-diligence tools. It also explains the two valid input modes. It does not explicitly name alternatives or state when not to use this tool, so it stops just 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.
list_tool_groupsARead-onlyIdempotentInspect
List every tool group (category) available on LiveDataLink with its domain count and tool count. Use this to discover which groups exist, then connect to https://livedatalink.ai/mcp?groups=<comma,separated> (or send the header X-Tool-Groups: <comma,separated>) to load ONLY those groups. Filtering keeps the tool list small so an agent selects tools accurately and uses less context. Free to call, no credits consumed. Optional 'query' filters group names.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional substring to filter group names (case-insensitive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond the annotations: it is 'Free to call, no credits consumed,' and it returns domain counts and tool counts for every group. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then gives a concise usage workflow, the context-efficiency rationale, the cost note, and the optional parameter. Every sentence serves a clear purpose with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description fully covers what the tool returns, how to use the result, when to call it, the cost, and the filtering behavior. Nothing essential is missing for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the 'query' parameter. The description adds the clarifying detail that the query is an 'Optional substring' and, combined with the schema, that filtering is case-insensitive. This is enough for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List every tool group (category) available on LiveDataLink with its domain count and tool count.' It clearly identifies the output and distinguishes this discovery/metadata tool from the many domain-specific sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use the tool: 'Use this to discover which groups exist,' followed by concrete next steps for loading only the desired groups via URL or header. It also explains the benefit of filtering for context efficiency, though it does not explicitly contrast with an alternative discovery tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_tender_fraud_shieldARead-onlyIdempotentInspect
Screen a carrier before accepting or dispatching a load. Resolves the carrier and combines FMCSA authority, insurance, safety, sanctions, court, and federal-award evidence with the supplied tender context. Flags inactive authority, missing liability evidence, sanctions or litigation findings, broker-only records, and mismatches between the carrier's reported location and the tender contact address. Returns CLEAR, REVIEW, or BLOCK with reasons, source coverage, primary links, and a dispatcher verification checklist. This is an analytical fraud-screening aid, not a substitute for direct FMCSA or insurance verification.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC/MX number without the prefix. | |
| dot | No | USDOT number (preferred). | |
| name | No | Carrier legal name when DOT/MC is unavailable. | |
| format | No | Report format. Defaults to markdown. | |
| load_id | No | Optional internal load/tender identifier to echo in the report. | |
| carrier_address | No | Address supplied with the tender or onboarding packet, used for a coarse location consistency check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only, idempotent operation. The description adds meaningful behavioral context beyond that: it resolves the carrier, combines multiple evidence sources, flags specific risk indicators, and returns CLEAR/REVIEW/BLOCK with reasons, links, and a checklist. It also discloses that it is an analytical aid and not a substitute for direct verification, which is valuable caveat information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three information-dense sentences with no fluff. It front-loads the primary purpose, then summarizes inputs, outputs, and caveats efficiently. Every sentence contributes to understanding the tool's behavior and limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description fully compensates by enumerating the return elements: disposition, reasons, source coverage, primary links, and a dispatcher verification checklist. Combined with complete parameter documentation and safety annotations, the description provides sufficient context for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented in the schema. The description adds extra semantic value by explaining how the carrier address is used for 'coarse location consistency check' and by framing the tender context as part of the screening logic, which enriches understanding beyond the parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Screen a carrier before accepting or dispatching a load.' It clearly defines the tool's analytical scope (FMCSA authority, insurance, safety, sanctions, court, federal-award evidence) and differentiates it from sibling carrier tools by emphasizing tender context, disposition outcomes, and fraud-screening purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: before accepting or dispatching a load. It does not name alternative sibling tools or explicitly state when not to use it, but the use case is clear enough to guide selection among carrier-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_contributionsARead-onlyIdempotentInspect
Search LDA contribution reports (political contributions disclosed by lobbyists/registrants). Filter by year, registrant, or lobbyist name.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Results per page (default 20). | |
| filing_year | No | Filing year, e.g. 2025. | |
| lobbyist_name | No | Lobbyist name, partial match. | |
| registrant_name | No | Registrant (firm) name, partial match. |
TDQS
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 useful domain context (LDA source, contribution reports) but does not disclose pagination behavior, output format, or matching semantics beyond what the schema already states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no redundant filler. It front-loads the core resource and action, then lists the available filters. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with strong annotations and fully documented parameters, the description is adequate but not complete. It does not describe the return value shape, pagination behavior, or how this tool differs from several similarly named lobbying siblings, all of which an agent might need to choose correctly among the available tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including defaults and partial-match behavior. The description only restates the year/registrant/lobbyist filters and adds no extra meaning about page_size or parameter relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search'), a specific resource ('LDA contribution reports'), and clarifies the domain ('political contributions disclosed by lobbyists/registrants'). It is clear on its own, but it does not explicitly differentiate itself from the closely named sibling tools like lobbying_search, lobbying_lobbyists, or lobbying_registrants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this to find political contribution reports and filter by year, registrant, or lobbyist name. However, it provides no explicit when-to-use versus alternatives like lobbying_search or lobbying_detail, and no exclusion criteria or guidance on 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.
lobbying_detailARead-onlyIdempotentInspect
Get the full detail of one lobbying filing by its UUID (from lobbying_search results), including all lobbying activities, issues, covered officials contacted, and the lobbyists involved.
| Name | Required | Description | Default |
|---|---|---|---|
| filing_uuid | Yes | Filing UUID from lobbying_search results. |
TDQS
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 detail about what the response includes: lobbying activities, issues, covered officials contacted, and lobbyists. It does not describe response structure or error behavior, but the annotations lower the burden and the content list is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the core purpose and includes the source and expected contents. No wasted words; every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description covers the purpose, the input origin, and the expected content categories. It is complete enough for an agent to know when to call it and what it will receive, though it could mention edge cases like invalid UUIDs or missing filings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with filing_uuid already documented as 'Filing UUID from lobbying_search results.' The description mostly restates this, reinforcing that the parameter is the identifier from search results, but it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('one lobbying filing'), and identifies the UUID as the identifier from lobbying_search results. It names the exact contents included, distinguishing it from sibling tools like lobbying_search, lobbying_lobbyists, and lobbying_contributions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly ties usage to lobbying_search results, providing clear context for when this tool should be invoked. It does not explicitly discuss alternatives or when not to use it, but the 'one filing by UUID' scoping makes the appropriate use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_lobbyistsARead-onlyIdempotentInspect
Search individual lobbyists by name (and optionally by their registrant firm). Returns lobbyist records with their associated firm.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination. | |
| page_size | No | Results per page (default 20). | |
| lobbyist_name | No | Lobbyist name, partial match. | |
| registrant_name | No | Optional registrant (firm) name to scope the search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that results include the associated firm, which is useful, but does not disclose pagination behavior or other operational details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words, with the core purpose front-loaded. Every sentence adds value and the description is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with fully documented parameters, the description is nearly complete. It states the input dimensions and the output contents, though it does not elaborate on pagination defaults or result ordering, which would be useful but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description reinforces the meaning of lobbyist_name and registrant_name but adds little beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and a clear resource ('individual lobbyists'), and specifies the key search dimensions (name, optional registrant firm). This distinguishes it from sibling tools like lobbying_registrants, which target firms rather than individuals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is the tool for finding individual lobbyists by name, optionally scoped by firm. It does not explicitly name alternatives or exclusion criteria, but the focused scope provides sufficient usage context for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_registrantsBRead-onlyIdempotentInspect
Search registered lobbying firms (registrants) by name. Returns registrant profile records.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Results per page (default 20). | |
| registrant_name | No | Registrant (firm) name, partial match. |
TDQS
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 that the tool returns 'registrant profile records,' which is useful since no output schema exists, but it does not disclose additional behaviors such as pagination behavior or field-level output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that names the action, target, search field, and return type with no wasted words. It is appropriately sized for a simple lookup tool and every phrase contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, optional-parameter search tool with strong annotations and full schema coverage, the description is mostly adequate: it identifies the resource, the search field, and the return type. It loses a point because it does not clarify how this tool relates to nearby lobbying tools or describe the structure of the returned profile records, which would be helpful without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both registrant_name and page_size are already documented. The description reinforces the meaning of registrant_name by saying 'by name' but adds nothing about page_size or result control beyond what the schema provides, which keeps this at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Search registered lobbying firms (registrants) by name.' It also indicates the return type ('registrant profile records'), making the core purpose unambiguous. However, it does not explicitly differentiate this tool from closely related siblings like lobbying_search or lobbying_lobbyists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by name' implies a usage context, but the description offers no guidance on when to choose this tool over alternatives, no exclusions, and no mention of related lobbying tools. An agent would have to infer selection criteria from the tool name and sibling list rather than from explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_searchARead-onlyIdempotentInspect
Search U.S. federal lobbying disclosure filings (Senate LDA). Filter by year, filing type, registrant (lobbying firm), client (who hired them), or general issue code. Returns filings with the client, registrant, period, income/expenses, and lobbying issues. Pair with FEC and Congress tools to follow the money.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination. | |
| page_size | No | Results per page (default 20, max 25). | |
| issue_code | No | General issue area code, e.g. 'ENG' (energy), 'TAX', 'HCR' (health). | |
| client_name | No | Client name (the entity that hired the lobbyist), partial match. | |
| filing_type | No | Filing type code, e.g. 'RR' (registration), 'Q1'-'Q4' (quarterly reports). | |
| filing_year | No | Filing year, e.g. 2025. | |
| registrant_name | No | Lobbying firm / registrant name (partial match). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful behavioral context by naming the Senate LDA source and specifying that results include client, registrant, period, income/expenses, and lobbying issues, going beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and resource, followed by filter options and return contents. The closing sentence about pairing with FEC and Congress tools is useful context, though slightly tangential, so it is not perfectly minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does a good job of telling the agent what results look like, and the schema documents all seven optional parameters. It is not fully complete because it does not mention pagination behavior, response size, or how this relates to the other lobbying_* sibling tools, but it is adequate for a read-only search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented in the schema. The description essentially restates the filter dimensions from the schema without adding new semantic detail such as matching behavior, defaults, or special values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Search') and resource ('U.S. federal lobbying disclosure filings (Senate LDA)'), and it lists the key filters and returned fields, so an agent can understand the tool's function. It does not explicitly differentiate itself from sibling tools like lobbying_detail, lobbying_lobbyists, or lobbying_registrants, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is useful by describing filters and return fields, and it suggests pairing with FEC and Congress tools. However, it does not explicitly state when to use this tool versus the lobbying_* siblings, and it offers no 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.
local_searchARead-onlyIdempotentInspect
Find local businesses, restaurants, services, and places near any location. Returns name, type, address, phone, website, hours, cuisine, and distance. Use this for 'find restaurants near me', 'coffee shops in downtown Houston', 'gas stations near 60601', 'best pizza in Chicago', 'pharmacies nearby', 'hotels in Austin', 'find a mechanic', 'gyms near me', or any local business or place discovery question. Supports: restaurants, cafes, bars, gas stations, pharmacies, hospitals, doctors, dentists, gyms, hotels, grocery stores, banks, schools, parks, libraries, auto repair, salons, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to find (e.g., 'restaurants', 'coffee', 'gas station') | |
| radius | No | Search radius in miles (default: 1.5) | |
| location | Yes | Where to search (city, zip, or address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful context about the supported categories and default-radius behavior through schema. It does not disclose response pagination, unavailability of certain categories, or cutoff ranges, so it adds some but not rich behavioral context. With annotations covering the core traits, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is focused and front-loaded with the core action, followed by the return fields, then usage examples, then supported categories. Every sentence contributes something useful, with no redundant restatement of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover safety and idempotence, the schema covers all three parameters, and the description covers scope, return fields, examples, and category list. The main gap is lack of explicit mention of result limits or fallback behavior for unknown locations, but for a read-only local discovery tool this is adequate and nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented. The description adds practical value by listing the output fields and many example query strings, but it does not deepen the meaning of the parameters beyond the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') plus a clear resource ('local businesses, restaurants, services, and places near any location') and enumerates return fields. It distinguishes itself from the large sibling set by naming the exact query patterns it serves, so an agent can immediately recognize 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives many concrete example queries and explicitly says 'Use this for... or any local business or place discovery question.' It does not name sibling alternatives like recreation_nearby or realestate_search to exclude, but the examples plus 'any local discovery' provide strong practical guidance for when to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
location_risk_reportARead-onlyIdempotentInspect
One-call, site-bound hazard + environmental profile with an explainable 0-100 risk score. Geocodes an address (or takes lat/lon) then fans out to FEMA flood zone, recent FEMA disaster declarations (county), active NWS alerts, USGS earthquakes within 50km, EPA ECHO regulated facilities (by ZIP/state), and parcel records (Maryland statewide / Texas-Harris County only). The score starts at 100 and subtracts itemized deductions (flood SFHA, active alerts, declarations, EPA non-compliance, strong quakes). A failing source is noted, not fatal. Premium cross-source synthesis; not a substitute for a professional site assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude (use with lon instead of address). | |
| lon | No | Longitude (use with lat instead of address). | |
| state | No | Optional 2-letter state override (helps EPA/parcel/declaration scoping). | |
| address | No | Full US street address to geocode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, the description reveals how the score is derived: it starts at 100 and subtracts itemized deductions for SFHA flood, active alerts, declarations, EPA non-compliance, and strong quakes. It also states that a failing source is noted but not fatal, giving the agent important context for interpreting partial responses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds information: purpose, source fan-out and coverage, scoring mechanics, failure behavior, and disclaimer. The key output is front-loaded in the first sentence, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's multi-source complexity and the lack of an output schema, the description is unusually complete: it names all integrated data sources, states the scoring model, gives geographic coverage limits, and describes failure behavior. An agent has enough context to decide when to call it and how to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters already have schema descriptions, so 100% schema coverage sets the baseline at 3. The description adds the high-level geocode-address-or-take-lat/lon pattern and explains how state scopes EPA/parcel/declaration lookups, but much of this is restated in the schema, so it does not substantially raise the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence identifies the deliverable—an explainable, site-bound hazard/environmental profile with a 0-100 risk score—and the rest details inputs and sources, so an agent can recognize it as a consolidated report rather than a single-source lookup. The explicit fan-out to FEMA, NWS, USGS, EPA, and parcel sources distinguishes it from sibling tools that cover only one of those domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'One-call' plus the long fan-out list tells the agent this is the appropriate choice when a consolidated location risk score is needed across multiple sources, and the coverage caveats help set expectations. It also adds a clear 'not a substitute for a professional site assessment' exclusion. It does not explicitly name sibling alternatives such as environmental_site_risk or say when to prefer a single-source lookup, so the guidance is strong 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.
market_size_estimatorARead-onlyIdempotentInspect
One-call TAM / market-size read for an industry (NAICS) in a US geography. Joins two independent federal sources that both count business activity by NAICS + area so each corroborates the other: US Census County Business Patterns (establishments, employment, annual payroll - needs a Census API key) and BLS QCEW (keyless: private establishment count, total wages, average annual pay, with employment implied from wages / avg pay). Returns the establishment count, employment, and a wage/payroll-based market-size anchor with the per-source evidence. Pass an 'industry' (e.g. 'restaurants', 'software publishers') or an explicit 'naics' code, and an optional 'state' or 'metro' (defaults to national). Market size here is the total annual wages/payroll paid in the industry+area - a concrete lower bound, NOT total revenue/receipts. A source that fails is noted, not fatal. Informational, not a guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| metro | No | Optional 5-digit CBSA/metro code (e.g. '12420' Austin, TX). Census leg only; requires the Census key. | |
| naics | No | Explicit 2 to 6 digit NAICS industry code (e.g. '722' food services, '5112' software publishers). Overrides 'industry'. | |
| state | No | Optional 2-letter state code or 2-digit FIPS (e.g. 'TX', '48'). Omit for a national estimate. | |
| industry | No | Free-text industry to map to a NAICS code (e.g. 'restaurants', 'software publishers', 'construction'). Provide this or 'naics'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld/idempotent annotations, the description discloses that the Census leg requires an API key while the BLS leg is keyless, that sources corroborate each other, and that a failing source is noted rather than fatal. It also clarifies that the returned value is a wage/payroll lower bound, not revenue. This substantially exceeds what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose, data sources, inputs, output semantics, and caveats are each addressed without redundancy. The core value proposition is front-loaded, and the caveats are placed at the end without burying the actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter optional-input tool with no output schema, the description covers inputs, defaults, override behavior, return categories, source-specific requirements, failure handling, and interpretation caveats. An agent has enough information to select the tool, construct valid parameters, and understand what the result means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents all four parameters at 100% coverage, the description adds meaningful semantic context: 'naics' overrides 'industry', state/metro are optional with national default, and metro requires the Census key. This helps an agent correctly construct calls beyond the raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it provides a TAM/market-size read for an industry in a US geography by joining Census CBP and BLS QCEW data. It distinguishes itself by describing the unique output (establishment count, employment, wage/payroll-based anchor, per-source evidence), which separates it from raw-data siblings like census_business or bls_series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use this tool: when a one-call market-size/TAM estimate is needed, and clarifies that it is informational, not a guarantee. It doesn't explicitly name sibling alternatives or state when NOT to use it, but the 'one-call' framing and market-size definition make the intended use unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nasa_firms_search_firesARead-onlyIdempotentInspect
Search NASA FIRMS satellite active-fire/hotspot detections inside a bounded latitude/longitude box. Uses LiveDataLink's D1 mirror by default when configured, or the NASA Area API when live mode is requested. Results include acquisition time, satellite/sensor, confidence, fire radiative power, brightness, and day/night flag. Supports limit/offset pagination. A hotspot is a satellite thermal anomaly, not confirmation of a wildfire; verify consequential decisions with incident authorities and NASA FIRMS. The interactive bounding box is limited to 60 degrees wide by 30 degrees high; split larger regions into multiple calls.
| Name | Required | Description | Default |
|---|---|---|---|
| east | Yes | Eastern longitude; must be greater than west. | |
| west | Yes | Western longitude of the bounding box. | |
| limit | No | Maximum detections returned. Default 25. | |
| north | Yes | Northern latitude; must be greater than south. | |
| south | Yes | Southern latitude of the bounding box. | |
| offset | No | Rows to skip for pagination. Default 0. | |
| source | No | NASA FIRMS sensor product. Default VIIRS_NOAA20_NRT. | |
| data_mode | No | auto uses the D1 mirror when configured; hosted requires D1; live requires NASA_FIRMS_MAP_KEY. Default auto. | |
| day_range | No | Number of days from start_date, or most recent days when omitted. Default 1. | |
| start_date | No | Optional first UTC date in YYYY-MM-DD form. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses several important behaviors: the default use of LiveDataLink's D1 mirror versus the NASA Area API when live mode is requested, the support for limit/offset pagination, and the exact fields returned in results. It also includes an important caveat that a hotspot is a satellite thermal anomaly and not confirmation of a wildfire, advising verification with incident authorities and NASA FIRMS. This goes far beyond the annotations and gives the agent essential context for interpreting output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each carrying distinct information: the core purpose, data-source behavior, returned fields and pagination, and the caveat/limitation. The purpose is front-loaded, and there is no redundancy or filler. The structure allows an agent to quickly grasp what the tool does and how to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters and no output schema, the description is remarkably complete. It covers the query scope (bounding box), data sources and modes, pagination, return field details, the key limitation on bounding-box size, and a caution about interpretation. The only missing element is error handling, but the schema already documents parameters such as data_mode and its API-key requirement. No critical operational detail appears to be absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the bounding-box size limit (60x30 degrees) that affects the west/south/east/north parametersaine and noting pagination via limit/offset. These contextual details are not present in the schema descriptions, so the description meaningfully enhances parameter understanding despite the schema already being complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb 'Search' and a concrete resource: 'NASA FIRMS satellite active-fire/hotspot detections inside a bounded latitude/longitude box.' This clearly distinguishes it from all sibling tools, none of which target satellite fire detections. It also enumerates the result fields, leaving no ambiguity about what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (searching hotspot detections within a bounding box) and gives an explicit constraint: the interactive bounding box is limited to 60 degrees wide by 30 degrees high, instructing users to split larger regions. It does not explicitly name alternatives or exclusions, but the specificity of the resource and the bounding-box guidance are sufficient 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.
nfip_flood_claimsARead-onlyIdempotentInspect
National Flood Insurance Program claim history. A state-only request uses LiveDataLink's privacy-preserving self-hosted aggregate; zip/county/year filters use the live OpenFEMA API. Useful for assessing prior loss patterns without redistributing claim-level records from the hosted store.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Five-digit zip code. | |
| limit | No | Max rows (default 200). | |
| state | No | Two-letter state code. | |
| county | No | FEMA county code. | |
| end_year | No | Latest year of loss. | |
| start_year | No | Earliest year of loss. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=true and idempotentHint=true, the safety profile is covered. The description adds valuable behavioral context: it discloses that state-only requests use a privacy-preserving self-hosted aggregate while filtered requests hit the live OpenFEMA API, and it clarifies the privacy posture of not redistributing claim-level records. It doesn't mention edge cases like an empty request or rate limits, but the core behavioral distinction is well explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The first sentence states what the tool is and the key behavioral split; the second gives a use case. Information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-output-schema tool, the description covers the essentials: data source, filtering modes, and privacy implications. The only gap is that it doesn't specify behavior when no parameters are provided (all params are optional), and it doesn't report return value structure, but the rules state output schema absence doesn't burden the description. Overall, an agent can correctly invoke this tool for common scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining how parameters interact: a state-only request (just 'state') triggers a different data source than zip/county/year filters. This conditional behavior is not encoded in the schema and is important for selecting the correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (National Flood Insurance Program claim history) and the two operational modes based on filter usage. It distinguishes this tool from siblings like flood_zone_lookup by focusing on claim history rather than zones. The phrase 'without redistributing claim-level records' adds a precise scope that separates it from potential record-redistribution tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('assessing prior loss patterns') and explains when to use each backend (state-only vs. zip/county/year). However, it does not explicitly name alternative tools or state when not to use this tool, leaving exclusion to inference rather than direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_detailsARead-onlyIdempotentInspect
Full IRS EO BMF record for one organization by EIN, with the coded fields (subsection, foundation status, deductibility, EO status, ruling date) decoded to human-readable labels. Includes address, NTEE code, and the most recent reported asset/income/revenue figures.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | Employer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418". |
TDQS
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 context beyond that: coded fields are decoded to human-readable labels, and figures are the most recent reported values, which informs how the agent should interpret the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first defines scope and lookup method, the second summarizes contents. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the major returned categories (address, NTEE code, recent financial figures, decoded fields). It does not describe not-found behavior or exact response shape, but for a single-record lookup tool the description is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, EIN, and the schema already documents its format and examples at 100% coverage. The description adds no additional parameter semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('Full IRS EO BMF record') and a precise lookup key (EIN), and clarifies it is for one organization. It also lists the decoded coded fields, which distinguishes it from status-only or location/name search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this when you need the full BMF record for a specific EIN, as opposed to a status check or search. It does not explicitly name sibling tools or state when not to use it, 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.
nonprofit_lookup_einARead-onlyIdempotentInspect
Look up a US tax-exempt organization by exact EIN from the IRS Exempt Organizations Business Master File (~1.27M orgs). Returns name, address, IRC subsection, and current EO status. Use nonprofit_details for the fully decoded record.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | Employer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond those: the data source and corpus size (~1.27M orgs), the specific fields returned, and the hint that this returns a less-decoded record than nonprofit_details. Nothing contradicts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the first packs verb, resource, scope, data source, corpus size, and return fields; the second routes to the decoded alternative. Information is front-loaded and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with rich annotations and no output schema, the description covers the data source, the matching scope, returned fields, and the relationship to nonprofit_details. A minor gap is not stating behavior when the EIN is not found or when to prefer nonprofit_status, but these are small against an otherwise complete definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the ein parameter already documents the 9-digit format with or without dash and gives examples. The description's 'exact EIN' adds a mild semantic of exact-match behavior, but the schema carries the format burden. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Look up'), a precise resource (US tax-exempt org by exact EIN from the IRS EOBMF), and names the return fields (name, address, IRC subsection, EO status). The 'exact EIN' qualifier distinguishes it from the nonprofit_search_name and nonprofit_search_location siblings without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'exact EIN' phrasing implies this tool is for precision lookups rather than fuzzy search, and the explicit pointer 'Use nonprofit_details for the fully decoded record' names a concrete alternative. However, it does not explicitly tell an agent to use nonprofit_search_name or nonprofit_search_location when only a name/location is known, 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.
nonprofit_search_locationARead-onlyIdempotentInspect
Find tax-exempt organizations by location: city, state, and/or 5-digit ZIP. At least one filter is required. Useful for discovering charities, churches, and foundations in an area. Returns up to 100 organizations.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit ZIP code. | |
| city | No | City name (combine with state for best results). | |
| limit | No | Max results to return (default 20, max 100). | |
| state | No | 2-letter US state/territory code, e.g. "TX". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only, idempotent, and non-destructive hints. The description adds useful behavioral detail beyond those hints: a required-filter constraint despite schema-optional parameters, and a hard cap of 100 returned organizations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action and filter options, and every sentence earns its place: required-filter condition, use case, and result cap. There is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered lookup with strong annotations, the description covers the essential constraints: required filters, location dimensions, purpose, and maximum result count. It is not fully complete because it does not name sibling alternatives or describe the returned organization fields, but neither is critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description only restates the location filter types and the requirement for at least one filter; it does not add new parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Find'), a resource ('tax-exempt organizations'), and a specific dimension ('by location: city, state, and/or 5-digit ZIP'). It is clearly different from siblings like nonprofit_search_name, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the key usage condition ('At least one filter is required') and gives a concrete use case ('discovering charities, churches, and foundations in an area'). It does not reference alternative tools such as nonprofit_search_name or nonprofit_lookup_ein, so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_search_nameARead-onlyIdempotentInspect
Fuzzy-search tax-exempt organizations by name, optionally filtered to a US state. Tolerant of word reordering and minor spelling differences. Returns ranked matches with EIN, location, and IRC subsection. Use the returned EIN with nonprofit_details or nonprofit_lookup_ein.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Organization name or partial name to search for. | |
| limit | No | Max matches to return (default 10, max 50). | |
| state | No | Optional 2-letter US state/territory code to narrow results, e.g. "NY", "TX", "CA". |
TDQS
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 behavioral detail beyond annotations: fuzzy matching tolerates word reordering and minor spelling differences, returns ranked results, and includes EIN, location, and IRC subsection. This gives the agent a clear model of what the tool does without contradicting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears in the first sentence, followed by matching behavior, return contents, and downstream tool guidance. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with three fully schema-documented parameters and no output schema, the description provides sufficient completeness. It explains matching behavior, result contents, ranking, and how to proceed with the returned EIN, so an agent can invoke it correctly and understand the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full parameter descriptions for name, limit, and state (100% coverage). The description adds only minimal semantic context beyond the schema, such as the fuzzy-search nature and optional state filtering, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fuzzy-search') and resource ('tax-exempt organizations by name'), and distinguishes this tool from sibling tools like nonprofit_lookup_ein and nonprofit_search_location by anchoring it to name-based fuzzy matching. It also mentions optional state filtering, making the tool's purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: when searching by organization name, especially with uncertainty about exact spelling or word order, and optionally narrowing by state. It also tells the agent to use the returned EIN with nonprofit_details or nonprofit_lookup_ein, but it does not explicitly state when not to use this tool in favor of those exact-lookup tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_statusARead-onlyIdempotentInspect
Current exempt-organization status for one organization by EIN: whether the IRS recognition is active, revoked, or terminated, plus the decoded status label, contribution deductibility, and the ruling (recognition) date. Tells donors and grantmakers if an org is still in good standing.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | Employer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418". |
TDQS
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 useful operational context by naming the exact status categories (active, revoked, terminated) and derived fields (deductibility, ruling date), so the agent knows what the response means without 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry a complete definition: what the tool returns, the exact status semantics, and the intended audience. There is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup with no output schema, the description explains the core return fields well. It does not specify behavior for unknown EINs or explicitly acknowledge the openWorldHint possibility of missing data, but the practical use case is sufficiently covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single EIN parameter completely, including accepted formats with and without dashes. The description adds no new parameter-level semantics beyond reinforcing that the lookup is for one organization.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (look up current exempt-organization status) with a concrete resource (one organization by EIN) and enumerates the returned fields. It is clearly more specific than broad sibling searches, but it does not explicitly differentiate itself from sibling nonprofit detail/lookup tools by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: check an organization's IRS standing before donating or granting money. However, the description never states when to choose this over sibling tools such as nonprofit_details or nonprofit_lookup_ein, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_lookupARead-onlyIdempotentInspect
Look up a single US healthcare provider by their 10-digit NPI (National Provider Identifier). Returns name, type, credential, primary specialty (taxonomy), practice location, and status. Keyless CMS data.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | 10-digit NPI number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: it is 'Keyless CMS data' and it specifies the output fields returned. It does not cover rate limits or error behavior, but for a simple lookup this is a strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences front-load the action and resource, then list the return fields and the keyless aspect. 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.
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 no output schema, the description is complete: it states the input requirement, the scope, the returned data, and the authentication context. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the only parameter, 'npi', as a 10-digit NPI number, so parameter semantics are covered. The description reinforces the 10-digit requirement but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up'), a specific resource ('single US healthcare provider'), and a precise identifier ('10-digit NPI'). It also enumerates the returned fields, making the tool's purpose immediately distinguishable from the many search siblings like npi_search_provider or npi_search_specialty.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for looking up one provider when the NPI is already known, rather than searching by name or specialty. However, it does not explicitly name sibling alternatives or state when to use them instead, 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.
npi_search_organizationARead-onlyIdempotentInspect
Search healthcare organizations (hospitals, clinics, group practices, labs) by name. Requires organization_name; state and city optional.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City to narrow results (optional). | |
| limit | No | Max results (1-50, default 10). | |
| state | No | Two-letter state code to narrow results (optional). | |
| organization_name | Yes | Organization name (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds some scoping context by specifying organization types and name-based search, but it does not disclose additional runtime behaviors such as result format, pagination, or whether matching is exact or partial. The description 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the main action and resource, then immediately states required and optional parameters. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with one required parameter, the combination of description, schema, and annotations is largely sufficient for an agent to call it correctly. It could be strengthened by naming the data source or clarifying result behavior, and there is no output schema, but these are not critical gaps for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for organization_name, city, state, and limit. The description mostly restates what the schema already defines (organization_name required; state and city optional) without adding new semantic details or edge-case guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('healthcare organizations'), and helpful examples ('hospitals, clinics, group practices, labs'). It clearly indicates a name-based lookup for organizations, which implicitly differentiates it from provider-focused siblings like npi_search_provider, but it does not explicitly name or contrast those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the required parameter (organization_name) and the optional filters (state, city), which gives the agent a clear precondition for calling the tool. However, it provides no explicit guidance on when not to use this tool or which sibling tool should be used instead, so the routing guidance is mostly implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_search_providerARead-onlyIdempotentInspect
Search individual US healthcare providers by name. Requires a last_name (first_name, state, city optional). Returns NPI, specialty, location for each match.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City to narrow results (optional). | |
| limit | No | Max results (1-50, default 10). | |
| state | No | Two-letter state code to narrow results (optional). | |
| last_name | Yes | Provider last name (required). | |
| first_name | No | Provider first name (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent read operation. The description adds a return contract ('Returns NPI, specialty, location for each match') and the required-input constraint, both useful beyond the schema. It doesn't detail empty-result behavior, but that is minor given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences convey the action, scope, required input, optional refinements, and return contents with no filler. Critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool, the description covers the search scope, required parameter, and return content; the schema covers limit/city/state formats. It could be more explicit about when to use sibling NPI tools, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all five parameters. The description only restates the required/optional nature already visible in the schema, adding no new parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Search'), a precise resource ('individual US healthcare providers'), and the lookup method ('by name'). This sets it apart from siblings like npi_search_organization and npi_lookup, which handle different resources or lookup styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the exact use case: locate individual providers when you have a last name, with optional narrowing by first name/state/city. It gives clear context but does not explicitly list exclusions or point to alternative tools such as npi_search_organization for organizations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_search_specialtyARead-onlyIdempotentInspect
Find healthcare providers by specialty (taxonomy description) in a location. Requires taxonomy (e.g. 'Cardiology', 'Pediatrics', 'Nurse Practitioner'); state and city optional but recommended.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City to narrow results (optional). | |
| limit | No | Max results (1-50, default 10). | |
| state | No | Two-letter state code to narrow results (optional). | |
| taxonomy | Yes | Specialty / taxonomy description, e.g. 'Cardiology'. |
TDQS
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 description does not need to repeat those. It adds the useful hint that state/city narrow the search and are recommended, but it does not disclose behavioral details such as what happens without location filters, pagination behavior, or result limit interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the main action and scope, and contains no filler. Each clause adds a useful decision-relevant detail: what is searched, what is required, and how to narrow results.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with four fully documented parameters and strong annotations, the description is largely sufficient for correct invocation. It provides the required parameter, optional narrowing fields, and examples. It does not describe the return shape, but there is no output schema and the purpose makes the expected result reasonably clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by giving multiple concrete examples of taxonomy values ('Cardiology', 'Pediatrics', 'Nurse Practitioner') and by framing state/city as 'recommended' rather than merely optional, which helps the agent choose effective inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is specific: it names the verb 'Find', the resource 'healthcare providers', and the selection logic 'by specialty (taxonomy description) in a location'. It is clear and maps to the tool name, but it does not explicitly contrast with sibling tools like npi_search_provider or npi_search_organization, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly says taxonomy is required and that state/city are optional but recommended, which gives practical usage context. However, it never mentions when to prefer this tool over the sibling NPI search tools or when not to use it, so the 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.
npm_packageARead-onlyIdempotentInspect
Look up an npm (Node.js) package: latest version, description, license, repository, last publish date, deprecation status, and last-month download count. Pair with cve_search_by_keyword to check for known vulnerabilities. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | npm package name, e.g. 'express' or '@scope/pkg'. |
TDQS
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 value by naming the returned fields, noting 'Keyless' access, and advising a companion vulnerability search—context not present in the schema. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the core action and deliverables, then add a pairing tip and auth note. No filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with rich annotations and no output schema, the description is complete: it enumerates the return fields, specifies that no key is needed, and points to the relevant vulnerability companion. An agent has sufficient information 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already has a clear description with examples ('express' or '@scope/pkg'). The tool description does not add parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') and a specific resource ('npm (Node.js) package'), then enumerates the exact data fields returned. This immediately distinguishes it from sibling package/registry tools like pypi_package and cargo_crate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to call this tool—any time an npm package's metadata or download stats are needed—and explicitly recommends pairing with cve_search_by_keyword for vulnerability checking. It does not spell out exclusions such as 'use pypi_package for Python packages,' but the npm scoping makes the boundary obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nport_compare_fundsARead-onlyIdempotentInspect
Compare two funds in the same self-hosted SEC Form N-PORT snapshot. Returns common securities, each fund's reported portfolio percentage, a weighted-overlap percentage, identifier lineage, and quarterly-freshness caveats. This is as-filed public data, not live holdings or investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum shared securities; default 25. | |
| fund_a | Yes | First EDGAR series ID, mapped ticker, or fund name. | |
| fund_b | Yes | Second EDGAR series ID, mapped ticker, or fund name. |
TDQS
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 useful behavioral context beyond those annotations: data is as-filed public data, not live holdings, and includes quarterly-freshness caveats. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences front-load the purpose, enumerate return contents, and add a disclaiming caveat. There is 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.
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 listing the main return categories and source caveats. It is sufficient for an agent to invoke the tool correctly, though it does not define 'identifier lineage' or explain behavior when the two funds are not in the same snapshot.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents fund_a, fund_b, and limit, including that limit defaults to 25. The description reinforces that two funds are compared and what overlap means, but it does not add 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Compare two funds'), a specific resource ('same self-hosted SEC Form N-PORT snapshot'), and enumerates concrete outputs: common securities, portfolio percentages, weighted overlap, identifier lineage, and freshness caveats. This clearly distinguishes it from single-fund tools like nport_fund_holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the key context: comparisons happen within the same N-PORT snapshot, not across live holdings. It also explicitly disclaims live data and investment advice, which helps an agent avoid misuse. However, it does not name alternative sibling tools or state explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nport_fund_holdingsARead-onlyIdempotentInspect
List the largest holdings for a fund in LiveDataLink's self-hosted SEC Form N-PORT corpus. Resolve by EDGAR series ID, mapped ticker, or fund-name substring. Returns as-filed values, portfolio percentages, security identifiers, report date, filing accession, source quarter, and public-reporting-lag warning.
| Name | Required | Description | Default |
|---|---|---|---|
| fund | Yes | EDGAR series ID, mapped ticker, or fund name (at least 2 characters). | |
| limit | No | Maximum holdings; default 25. |
TDQS
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 need not repeat safety. It adds value by enumerating returned fields (as-filed values, portfolio percentages, security identifiers, report date, filing accession, public-reporting-lag warning), which gives agents confidence about what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, well-front-loaded sentence that immediately communicates the core operation and then enumerates return fields. No fluff or repetition; could arguably be split into two sentences but it is still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the return fields and warning signifier. It covers the data source and resolution input. It doesn't mention error behavior, but for read-only holdings list the most critical details are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented. The description adds the 'fund-name substring' nuance and the notion of 'largest holdings,' which the schema does not specify, but it doesn't go beyond that to substantially augment the parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'list' and names the resource 'largest holdings for a fund,' with an explicit data source (SEC Form N-PORT corpus) and three resolution methods (EDGAR series ID, mapped ticker, fund-name substring). This clearly distinguishes the tool from nport_compare_funds, which seems to target multiple-fund comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states how the fund can be identified (EDGAR series ID, ticker, or name substring), giving clear usage context. However, it provides no guidance for choosing this tool over its sibling nport_compare_funds and no exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_alt_fuel_station_detailARead-onlyIdempotentInspect
Detailed info for a single alternative fuel station by station ID. Get the ID from nrel_alt_fuel_stations results.
| Name | Required | Description | Default |
|---|---|---|---|
| station_id | Yes | Station ID from the alt-fuel stations dataset. |
TDQS
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, so the safety profile is covered. The description adds that the tool returns detail for a single station and requires an ID from nrel_alt_fuel_stations, but it does not describe output structure or any other behavior beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant wording. It front-loads what the tool does and then provides the key prerequisite for obtaining the station_id.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only detail lookup, the description is mostly sufficient: it explains the resource, the parameter source, and the tool's role relative to nrel_alt_fuel_stations. However, 'detailed info' is somewhat vague and does not indicate what fields the result will contain, especially since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds operational meaning by telling the agent to source the station_id from nrel_alt_fuel_stations results, going slightly beyond the schema's generic 'Station ID from the alt-fuel stations dataset' phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns 'detailed info for a single alternative fuel station by station ID.' It also names the related nrel_alt_fuel_stations tool, which clearly distinguishes this detail lookup from the broader station search/list tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear workflow context: 'Get the ID from nrel_alt_fuel_stations results.' This tells an agent when and how to use the tool, but it does not explicitly state when not to use it or list alternative detail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_alt_fuel_stationsARead-onlyIdempotentInspect
Find alternative fuel stations near a location: electric (EV) charging, CNG, LNG, E85, hydrogen, propane, biodiesel. Used by route planning agents, fleet operators, and EV/clean-fuel tech.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude. Use with lon as alternative to location. | |
| lon | No | Longitude. Use with lat as alternative to location. | |
| limit | No | Max stations to return (default 25, max 200). | |
| state | No | Optional 2-letter state code filter. | |
| radius | No | Search radius in miles (default 5, max 500). | |
| status | No | Optional status filter: E (available, default), P (planned), T (temporarily unavailable). | |
| location | No | Address or city/state. Either location OR lat+lon required. | |
| fuel_type | No | Comma-separated fuel types: ELEC (default), CNG, LNG, E85, HY, LPG, BD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the description does not need to restate those. It adds useful scoping language ('near a location') and a fuel-type list, but it does not disclose output format, data source limitations, or behavior around defaults beyond what the schema already specifies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loads the core action with the resource and fuel types. The second sentence about target users adds useful context but is slightly auxiliary, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema and annotations, the description provides enough context for an agent to identify and invoke the tool. It could be more complete by noting the US-centric scope and the explicit requirement to provide either location or lat/lon, but those details are recoverable from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters clearly. The description adds user-friendly fuel-type labels but does not meaningfully expand on parameter semantics such as the location-or-lat/lon requirement, radius defaults, or status values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') with a clear resource ('alternative fuel stations near a location') and enumerates supported fuel types, making the tool's purpose immediate. It also implicitly distinguishes itself from sibling NREL tools like solar or utility-rate lookups and from station-detail tools by focusing on location-based searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context on who would use this tool ('route planning agents, fleet operators, EV/clean-fuel tech') and makes the primary use case clear. However, it does not explicitly say when to choose this tool over related alternatives such as nrel_alt_fuel_station_detail, nor does it mention exclusions or prerequisites like needing a location or lat/lon pair.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_pvwattsARead-onlyIdempotentInspect
Estimate solar PV system production using NREL's PVWatts v8 model. Returns annual and monthly AC energy output (kWh), solar resource (kWh/m²/day), and capacity factor. Used by solar developers, homeowners, and ESG analysts to size and estimate solar arrays.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Use with lon as alternative to address. | |
| lon | No | Longitude in decimal degrees. Use with lat as alternative to address. | |
| tilt | No | Array tilt angle in degrees (default 20). | |
| losses | No | Total system losses percent (default 14). | |
| address | No | Street address, city/state, or place name. Either address OR lat+lon required. | |
| azimuth | No | Array azimuth in degrees (default 180 = south for northern hemisphere). | |
| array_type | No | 0=fixed open rack, 1=fixed roof (default), 2=1-axis tracking, 3=1-axis backtracking, 4=2-axis tracking. | |
| module_type | No | 0=standard (default), 1=premium, 2=thin film. | |
| system_capacity | Yes | System size in kilowatts DC (e.g. 5 for a 5 kW residential system). |
TDQS
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 context by naming the model version, specifying the returned metrics and units, and framing the operation as an estimate, which clarifies the computational nature beyond the annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences: purpose/model, outputs with units, and audience/use case. Every sentence contributes distinct value, and the core action is front-loaded. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description covers the essential selection and invocation context: what it does, what it returns, and who it serves. Parameter mechanics are fully documented in the schema, so the description need not repeat them. A minor gap is the absence of any note about location-input requirements, though the schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description does not need to restate parameter meanings. The description does reinforce the relevance of system_capacity through 'size and estimate solar arrays', but it adds no parameter-specific detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific operation: estimating solar PV production using NREL's PVWatts v8 model, and enumerates the outputs (annual/monthly AC energy, solar resource, capacity factor). This distinguishes it from sibling tools like nrel_solar_resource and nrel_utility_rates by naming the model and the full production-estimation scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies target users and a broad use case ('size and estimate solar arrays'), which implies when the tool is appropriate. However, it does not explicitly cite alternative tools or conditions for choosing this tool over siblings such as nrel_solar_resource, leaving some selection ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_solar_resourceARead-onlyIdempotentInspect
Annual and monthly solar resource data (Direct Normal Irradiance, Global Horizontal Irradiance, Latitude-Tilt Irradiance) for a location. Useful for site evaluation before sizing a solar system.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Use with lon as alternative to address. | |
| lon | No | Longitude in decimal degrees. Use with lat as alternative to address. | |
| address | No | Street address, city/state, or place name. Either address OR lat+lon required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only, idempotent, and non-destructive. The description adds useful behavioral detail by specifying the time granularity (annual and monthly) and the three irradiance output types, which goes beyond what the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first delivers the resource and data content, and the second adds the intended use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only data lookup, the description covers what is returned, the granularity, and the practical context. It could be more complete by naming units or response shape, but none of the selection-critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with lat, lon, and address each already documented, including the either address OR lat+lon requirement. The description itself adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource: solar resource data for a location, and enumerates the exact irradiance metrics (DNI, GHI, latitude-tilt). It stops short of a 5 because it does not explicitly distinguish itself from the closely related nrel_pvwatts sibling or state a verb like 'retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case: 'site evaluation before sizing a solar system.' This tells an agent when the tool is relevant, but it doesn't explicitly discuss when to prefer nrel_pvwatts or another solar-related sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_utility_ratesARead-onlyIdempotentInspect
Average residential, commercial, and industrial electric utility rates (cents per kWh) for a location, plus the utility name. Used for ROI analysis on solar, EV charging, building electrification.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Use with lon as alternative to address. | |
| lon | No | Longitude in decimal degrees. Use with lat as alternative to address. | |
| address | No | Street address, city/state, or place name. Either address OR lat+lon required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful output context: rate units, sector breakdown, and utility name. It does not mention data vintage or geographic limitations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The first sentence defines the output precisely, and the second gives the intended use cases. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with no output schema, the description communicates the returned data, units, and use cases. It could be more explicit about geographic coverage, but the NREL name and context make the tool reasonably complete for an agent to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents lat, lon, and address including the either address OR lat+lon requirement. The description adds no parameter-level meaning beyond 'for a location,' 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool returns: average residential, commercial, and industrial electric utility rates in cents per kWh, plus the utility name. It identifies the resource and function well, though it does not explicitly distinguish itself from related energy/eia sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by saying it is 'Used for ROI analysis on solar, EV charging, building electrification.' This helps an agent know when to select it, though it provides no exclusions or explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nws_active_alertsARead-onlyIdempotentInspect
Currently-active National Weather Service alerts (tornado, flood, severe thunderstorm, winter, heat, fire) for a point, state, or NWS zone.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| zone | No | NWS zone id, e.g. 'TXZ123'. | |
| state | No | Two-letter state code (e.g. 'TX'). | |
| location | No | Address, zip, or city. Will be geocoded to a point. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that the tool is read-only, idempotent, and non-destructive, so the description does not need to re-state safety behavior. It adds useful context by specifying 'currently-active' and listing alert categories, but it does not disclose details like result limits, geocoding behavior, or alert priority semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one tightly packed sentence with no filler. It front-loads the core purpose and then efficiently lists alert types and input modes, which is exactly the information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with five optional parameters and no output schema, the description gives enough context to understand what the tool returns and how to scope it. It could be slightly more explicit about whether parameters can be combined, but the 'point, state, or NWS zone' phrasing makes the likely options clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 60% schema description coverage, the description partially compensates by mapping query modes to parameters: 'point' implies lat/lon, 'state' maps to the state code, and 'NWS zone' maps to the zone id. The schema already describes zone, state, and location, so the description's added value is mainly clarifying that these are alternative ways to scope the request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a concrete resource ('National Weather Service alerts') and a clear scope ('Currently-active'), then enumerates alert types and the three supported query modes. This makes the tool easy to distinguish from nearby siblings like weather_current, weather_forecast, and disaster_declarations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual guidance by stating that the tool covers active alerts for a point, state, or NWS zone. It does not explicitly name alternatives or state when not to use it, but the active-alert framing strongly implies its niche relative to forecast/current-condition tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ok_wells_searchARead-onlyIdempotentInspect
Search Oklahoma oil & gas wells by county, operator, API number, and/or well type using the Oklahoma Corporation Commission (OCC) RBDMS well database (keyless public record). Unlike a pure map layer, this returns the OPERATOR, well status, well type (OIL/GAS/DRY/etc.), well name, county, and location for each match, plus the total matching count and a by-operator/by-type breakdown. Use it for 'who operates wells in county X', 'how many wells does operator Y have', or an operator's well portfolio. Oklahoma covers the Anadarko Basin / SCOOP / STACK plays. At least one of county, operator, or api is recommended to narrow the search.
| Name | Required | Description | Default |
|---|---|---|---|
| api | No | API well number (digits; non-digits are ignored). | |
| limit | No | Max well records to return (default 25, max 100). The total matching count is always reported. | |
| county | No | Oklahoma county name (e.g. 'Canadian', 'Kingfisher', 'Grady'). Matched case-insensitively. | |
| operator | No | Operator name or fragment (e.g. 'Chesapeake', 'Devon'). Substring, case-insensitive. | |
| well_type | No | Filter by well type: OIL, GAS, DRY, SWD (saltwater disposal), etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, so the bar for additional disclosure is lower. The description usefully adds that this is a keyless public record, names the return payload fields including the total count and breakdowns, and clarifies the basin coverage. It does not discuss rate limits or response size limits beyond the schema's limit parameter, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than the minimum but every sentence carries information: resource, differentiator, return fields, use cases, geography, and filtering guidance. The basin mention (Anadarko/SCOOP/STACK) is slightly tangential to invocation but still helps the agent understand scope. It is efficiently structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values, and it does so thoroughly: operator, status, well type, well name, county, location, total count, and breakdowns. It also covers authentication (keyless), filter recommendations, and geographic scope. Nothing critical is missing for an agent to decide whether and how to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics baseline is 3. The description repeats the filter names and recommends using at least one of them, which is mildly useful, but it does not add meaningful meaning beyond what the schema already documents for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search Oklahoma oil & gas wells', then names the exact filters (county, operator, API, well type) and the data source (OCC RBDMS). It also differentiates itself from a pure map layer by enumerating the returned fields, making its purpose unmistakable even among many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases ('who operates wells in county X', 'how many wells does operator Y have') and recommends at least one of county, operator, or API to narrow results. It implicitly excludes map-layer use cases, but it does not name a specific sibling alternative or state an explicit when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_by_companyARead-onlyIdempotentInspect
Pre-aggregated payment summary grouped by reporting company across all years. Returns total dollars and payment count per manufacturer/GPO. Use this to rank companies by their pharma-influence spend.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of companies (default 20, max 50) |
TDQS
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 useful behavioral context by stating the data is pre-aggregated across all years and specifying the return contents: total dollars and payment count per manufacturer/GPO. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states what the tool returns, the second gives the output structure, and the third gives the intended use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the necessary ground: what is aggregated, how it is grouped, what is returned, and when to use it. The schema handles the limit parameter, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the limit parameter is already fully documented. The description does not add parameter-specific semantics, but with full schema coverage a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it returns a pre-aggregated payment summary grouped by reporting company, with total dollars and payment count per manufacturer/GPO. The grouping dimension clearly distinguishes it from siblings like open_payments_by_specialty and open_payments_state_totals. The stated use case of ranking companies by pharma-influence spend adds further clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: to rank companies by pharma-influence spend. It does not mention alternatives or provide when-not-to-use guidance, so it stops short of a 5, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_by_specialtyARead-onlyIdempotentInspect
Payment totals grouped by medical specialty. Reveals which specialties receive the most pharma money: orthopedic surgeons, cardiologists, psychiatrists, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max specialties (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description does not need to re-state safety. It adds semantic context about grouping and ranking by payment amount, but it does not disclose additional behavioral traits such as ordering direction, time period covered, or response shape. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, purposeful sentences. The core action is front-loaded, and the second sentence provides useful illustrative examples rather than filler or schema repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description conveys the output concept and intended use well. Minor gaps remain, such as whether results are sorted descending by total and what time period is covered, but these are not critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, limit, is fully described in the input schema with its default value, so schema coverage is 100%. The description adds no additional parameter-level guidance, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (Open Payments payment totals) and a specific grouping dimension (medical specialty), with concrete examples. It clearly differentiates from sibling tools like open_payments_by_company and open_payments_state_totals by the grouping variable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when an agent needs specialty-level payment totals or wants to compare which medical specialties receive the most pharma money. It does not explicitly name sibling alternatives 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.
open_payments_national_summaryARead-onlyIdempotentInspect
National-level Open Payments totals and averages across all years. Shows how much money flows from pharma to doctors nationally, broken down by payment-nature category.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 only needs to add value beyond that. It does so by disclosing what the output contains: national totals and averages, all years, and categorization by payment-nature type. This gives the agent a concrete expectation of the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the most important qualifier ('National-level') and immediately specifies the core value and breakdown. Every word contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only summary tool, the description is complete: it states the level of aggregation, the time coverage, the metric types (totals and averages), and the dimension (payment-nature category). No output schema exists, but the description sufficiently sets expectations for what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there are no parameter details to explain. Per the baseline for zero-parameter tools, this is handled well; the description focuses on the data scope instead of unnecessary parameter commentary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Open Payments national totals and averages), the scope (national-level, across all years), and the breakdown (by payment-nature category). It distinguishes itself from sibling tools like open_payments_by_company and open_payments_state_totals by its explicit national focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the context for use: a national-level overview of Open Payments data across all years. It does not explicitly name alternatives or state when not to use it, but the scope is clear enough for an agent to select it over more granular open_payments siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_ownershipARead-onlyIdempotentInspect
Search Open Payments OWNERSHIP / investment-interest data -- doctors with equity stakes in pharma/device companies. The deepest disclosure category and the strongest conflict-of-interest signal.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds context about the data category and its significance but does not disclose operational behavior such as response shape, pagination, or auto-discovery of the latest year (the latter is covered in the schema instead).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the tool's scope and adds a useful qualitative signal ('strongest conflict-of-interest signal'). There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six optional parameters fully documented in the schema, read-only annotations, and a clear domain statement, an agent has enough to select and invoke the tool correctly. The main gaps are the lack of return-value/output-shape guidance and no explicit routing among the many open_payments_* siblings, but these are partially mitigated by the ownership-specific naming and description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented with meaningful descriptions. The tool description adds no parameter-level detail beyond the schema; it only reframes the domain as ownership/investment-interest, which the schema's 'doctor' and 'company' fields already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Search') and a specific resource ('Open Payments OWNERSHIP / investment-interest data'), and it clarifies the target population: doctors with equity stakes in pharma/device companies. This distinguishes it from the many other open_payments_* siblings by focusing on ownership/investment interest rather than general payments or aggregated statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: when the agent needs ownership/investment-interest data or the strongest conflict-of-interest signal from Open Payments. It does not explicitly name sibling alternatives or exclusion conditions, so it stops short of a 5, but the use case is explicit rather than merely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_researchARead-onlyIdempotentInspect
Search Open Payments RESEARCH payments -- clinical research grants and study funding from pharma/device companies to doctors. Separate dataset from general payments.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the useful context that this dataset is separate from general payments, but it doesn't disclose return shape, pagination, or default behavior beyond what the schema already communicates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact, front-loaded sentence conveys the resource, a brief definition, and the critical dataset distinction. There is no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with six optional, fully documented filters and strong annotations, the description is nearly sufficient. It lacks an explicit statement about return format, but 'Search' plus the record-level filter fields make the output shape inferable, and no output schema exists to bear that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the input schema. The description adds no parameter-level detail, which matches the baseline of 3; it doesn't need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Search Open Payments RESEARCH payments' and immediately defines the resource as clinical research grants and study funding. It also says 'Separate dataset from general payments,' which differentiates it from sibling tools like open_payments_search/open_payments_by_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear selection context: use this when the request concerns research/study payments, not general Open Payments data. It states what makes the dataset distinct, though it doesn't explicitly name an alternative sibling or spell out a when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_searchBRead-onlyIdempotentInspect
Search CMS Open Payments general payments (Sunshine Act) -- pharmaceutical/device company payments to doctors and teaching hospitals. Filter by company, doctor surname, state, specialty, and year. Returns payment amount, type (food/travel/consulting/gift/royalty), drug/device name, and recipient details. 15M+ records per year.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
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 and the description does not contradict it. The description adds useful context like the 15M+ records per year and the type of data returned, but it does not disclose matching behavior, pagination, sorting, or rate limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no filler. It front-loads the core action and resource, then lists filters, return fields, and scale. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description's summary of return fields is valuable. Annotations cover the safety profile. However, in a large sibling set with many open_payments_* tools, the description does not clarify how this general search relates to the aggregate or specialized variants, leaving a meaningful selection gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented in the schema. The description restates the main filters (company, doctor surname, state, specialty, year) and adds a little semantic grouping, but it does not add significant meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (Search), a specific resource (CMS Open Payments general payments under the Sunshine Act), and the domain (pharma/device payments to doctors and teaching hospitals). It also narrows scope to 'general payments,' which helps distinguish it from research/ownership variants, though it does not explicitly name or contrast sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the numerous open_payments_* siblings, such as open_payments_by_company, open_payments_state_totals, or open_payments_research. The filtering language implies a general-purpose record search, but the agent must infer when this is the right choice and when an aggregate or specialty-specific sibling is better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_state_totalsARead-onlyIdempotentInspect
State-level Open Payments totals. Returns payment totals and average per recipient per state. Useful for state-level pharma-influence research.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max states (default 60) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the aggregation semantics (totals and averages per recipient per state), which is useful beyond the annotations. It does not disclose whether the tool returns only the top states by default or what happens when the optional limit is omitted, but the annotations carry the main behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the core function stated first and a practical use case added second. Every sentence contributes something: what it returns and why you would use it. It could arguably add a short caveat about interpretation, but there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter, full schema coverage, and no output schema, the description is complete enough. It explains the aggregation level, the returned metric type, and a realistic use case. It doesn't need to detail return values because there is no output schema and the description covers the essential output semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter 'limit' is 100%, so the schema already documents it as 'Max states (default 60)'. The description does not add further parameter-level detail, but with full schema coverage the baseline of 3 is appropriate; nothing important is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb and resource ('Returns payment totals and average per recipient per state') and states the domain ('State-level Open Payments totals'). It distinguishes itself from siblings like open_payments_national_summary and open_payments_by_company by naming the state-level aggregation. It doesn't explicitly name a sibling, but the scope is clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description signals the tool is for 'state-level pharma-influence research', which implies a use case context. It does not explicitly state when not to use it or which sibling alternative to choose instead (e.g., open_payments_national_summary for national totals, open_payments_by_company for company-level breakdowns). The context is helpful 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.
open_payments_topARead-onlyIdempotentInspect
Same filters as open_payments_search but sorted by payment amount descending. Use this to find the LARGEST individual pharma payments by company, state, or specialty.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
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 meaningful behavioral context beyond those annotations: ordering by payment amount, filter compatibility with open_payments_search, and a focus on individual records rather than totals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the key distinctions (sorting, filter compatibility, use case) with no filler. The most important information is front-loaded before the use-case sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, optional-parameter query with complete schema coverage, the description is sufficient: it explains what the tool returns (top individual payments), how results are ordered, and how filters relate to a known sibling. It omits only minor details like the default limit, which is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six optional parameters with examples. The description does not add new parameter-level detail; it only points to shared filters, which is fine given the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear resource (Open Payments individual payment records) and a specific behavior: same filters as open_payments_search but sorted by payment amount descending. It also states the intended use case (finding the largest payments), which distinguishes it from the aggregate sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly points to open_payments_search as the filter baseline and gives a use-case trigger: 'Use this to find the LARGEST individual pharma payments.' It does not enumerate when to prefer the aggregate siblings, but the 'individual' phrasing and sort focus provide enough direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opportunity_zones_compare_jurisdictionsARead-onlyIdempotentInspect
Which of 2-10 requested states or territories has more final 2018-cycle QOZ designations? Resolves exact jurisdiction selectors and compares total, Low-Income Community, Non-LIC Contiguous, and covered county counts, sorted by total. Includes complete-corpus provenance and tract-vintage/cycle warnings. It compares designation counts, not investment quality, land area, population, current eligibility, or the pending 2027 cycle.
| Name | Required | Description | Default |
|---|---|---|---|
| jurisdictions | Yes | Two to ten distinct state/territory selectors. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context beyond them: complete-corpus provenance and tract-vintage/cycle warnings in the output, plus the sorted-by-total ordering. It stops short of describing pagination or error behavior, which is acceptable for a read-only analytical tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core question, then layers metrics, provenance, and exclusions in three efficient sentences with no filler. Slightly dense in the metric enumeration, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned counts (total, Low-Income Community, Non-LIC Contiguous, covered counties), the sort order, and the provenance/warning caveats. Nothing material an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both the jurisdictions array and the response_format enum, and the description largely restates the 2-10 selector range. It adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific comparison verb and resource ('Which of 2-10 requested states or territories has more final 2018-cycle QOZ designations?') and enumerates the compared metrics. An agent can distinguish it from the lookup/search/summarize siblings without opening any schema, since the cross-jurisdiction comparison framing is unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context (2-10 jurisdictions, 2018 cycle designations) and explicit exclusions ('not investment quality, land area, population, current eligibility, or the pending 2027 cycle'), which helpfully rules out misuse. It does not, however, name the sibling tools to use instead when a single-jurisdiction or search need arises.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opportunity_zones_lookup_designationARead-onlyIdempotentInspect
Was this exact 2010 census tract GEOID listed in the final 2018-cycle Qualified Opportunity Zone corpus? Performs an exact lookup against all 8,764 CDFI Fund rows and returns listed/not-listed status, geography, tract type, ACS source, official notices, and provenance. tract_vintage is fixed to 2010: never submit a 2020 tract identifier as if it were equivalent. This is designation evidence, not parcel confirmation or tax/legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| tract_geoid | Yes | Exact 11-digit 2010 census tract GEOID: 2-digit state + 3-digit county + 6-digit tract. | |
| tract_vintage | No | Must be 2010. The designation boundaries and identifiers do not change with the 2020 Census. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds real behavioral value beyond them: the size and source of the corpus (all 8,764 CDFI Fund rows), the returned listed/not-listed status plus provenance fields, and the hard 2010 vintage constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the yes/no question, then supports it with corpus/return details, the vintage constraint, and a scope disclaimer. Every sentence earns its place and nothing is padded, though the paragraph is fairly dense for a single-lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns, and it does list them (status, geography, tract type, ACS source, official notices, provenance). Combined with the vintage constraint and scope disclaimer, it is largely complete for calling the tool correctly, missing only an explicit sibling-routing rule.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the GEOID format, the fixed-2010 vintage, and the markdown/json enum are all already documented in the schema. The description's 'never submit a 2020 tract identifier' warning restates the schema's own note, so it adds emphasis but little new semantics — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb+resource ('exact lookup' of a Qualified Opportunity Zone designation) and frames it as a yes/no question about one GEOID, which cleanly separates it from search/compare/summarize siblings by implication. It stops short of naming an alternative sibling explicitly, so the differentiation is inferable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening question establishes the exact use case, and the closing sentence draws scope exclusions ('not parcel confirmation or tax/legal advice'), effectively steering away from parcel_* siblings. It does not, however, name a sibling with its own selection condition (e.g., when to use search_designations instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opportunity_zones_search_designationsARead-onlyIdempotentInspect
Which final 2018-cycle Qualified Opportunity Zone designations match a tract, county, or jurisdiction? Searches the complete self-hosted CDFI Fund designation workbook with optional jurisdiction, county, and official tract-type filters. Returns bounded, paginated rows with 2010 GEOIDs, source hash, IRS authority, and a 2010-versus-2020 boundary warning. Use for discovery; do not use a 2020-vintage GEOID or treat this archived final cycle as the still-unfinalized 2027 cycle.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum designations. Default 20. | |
| query | No | Words matched against exact 2010 GEOID, state name/code, or county name. | |
| county | No | Exact county/county-equivalent name within the optional jurisdiction. | |
| offset | No | Designations to skip. Default 0. | |
| tract_type | No | Official tract type in the designation workbook. | |
| jurisdiction | No | Exact state/territory name, USPS abbreviation, or two-digit state FIPS in the 2018 designation corpus. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered; the description goes further by disclosing return characteristics (bounded, paginated rows with 2010 GEOIDs, source hash, IRS authority) and a 2010-versus-2020 boundary warning. This is genuinely useful behavioral context beyond the annotations, though pagination limits are not quantified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core question, then scope, return shape, and caveats; each sentence carries distinct information. It is dense with detail but no sentence is pure filler, though the vintage warning is repeated in two forms.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately covers the return shape and pagination, and it addresses the tool's main risk (vintage/GEOID confusion). It is essentially complete for an agent to call it correctly, missing only concrete pagination bounds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all seven parameters including enums and defaults. The description only gestures at the jurisdiction/county/tract-type filters without adding syntax or semantics beyond the schema, which is the expected baseline when structured fields do the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (searches designations) and resource (final 2018-cycle Qualified Opportunity Zone designations), and frames the tool's role as discovery, which cleanly separates it from the lookup/compare/summarize siblings. An agent can identify the resource and its cycle vintage without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit usage direction ('Use for discovery') plus two meaningful exclusions: don't use a 2020-vintage GEOID and don't confuse this with the still-unfinalized 2027 cycle. It does not explicitly name the alternative sibling tools (lookup/compare/summarize) the way a perfect routing statement would, so it falls just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opportunity_zones_summarize_designationsARead-onlyIdempotentInspect
How are final 2018-cycle QOZ designations distributed overall, by jurisdiction, county, official tract type, or ACS eligibility-data source? Returns bounded, paginated aggregate groups with LIC/non-LIC and county counts plus source evidence. Optional filters narrow to one jurisdiction or tract type. Use for coverage and market-screening summaries; counts do not measure investment attractiveness and do not include eligible/nominated tracts from the 2026-2027 redesignation cycle.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum groups. Default 50. | |
| offset | No | Groups to skip. Default 0. | |
| group_by | No | Aggregation dimension. Default jurisdiction. | |
| tract_type | No | Official tract type in the designation workbook. | |
| jurisdiction | No | Exact state/territory name, USPS abbreviation, or two-digit state FIPS in the 2018 designation corpus. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no output schema, the description carries the return burden and does so well: it discloses that results are bounded, paginated aggregate groups containing LIC/non-LIC and county counts plus source evidence. It also adds two genuine behavioral constraints beyond the readOnly/idempotent annotations - the counts' interpretive limits and the exclusion of 2026-2027 eligible/nominated tracts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded as a question, followed by returns, filters, then usage caveats - a logical ordering with little filler. It is dense across four clauses, but each sentence contributes distinct information rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter read-only aggregation tool with no output schema, the description supplies what's missing: the shape of the returned groups, the pagination behavior, the temporal scope, and the interpretation caveat. An agent has enough to invoke it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the meaning of limit, offset, group_by, tract_type, jurisdiction, and response_format is already documented. The description restates the filterable dimensions ('narrow to one jurisdiction or tract type') but adds no syntax or format detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (summarize) and resource (final 2018-cycle QOZ designations) and enumerates the exact aggregation dimensions (overall, jurisdiction, county, tract type, ACS data source). It clearly distinguishes this from the sibling search/lookup/compare tools, which return individual records or comparisons rather than aggregate distribution groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the intended use ('coverage and market-screening summaries') and gives an explicit exclusion ('counts do not measure investment attractiveness', excludes 2026-2027 redesignation tracts). It does not, however, explicitly route to the alternative siblings (e.g., search_designations for individual tracts), so it stops short of full when-to-use/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_chainARead-onlyIdempotentInspect
Get the options chain for a stock - calls and puts with strike prices, bid/ask spread, volume, open interest, implied volatility, and available expirations. Use this for "show me AAPL options", "what are the puts on Tesla?", "options expiring this Friday", "what's the implied volatility?", or any options trading question.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by option type (default: "both") | |
| symbol | Yes | Stock ticker symbol (e.g., "AAPL") | |
| expiration | No | Expiration date in YYYY-MM-DD format. Defaults to nearest expiration. |
TDQS
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 useful output content context and examples but does not disclose behavioral details such as data freshness, pagination, snapshot timing, or whether all expirations are returned at once. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the core action and return contents front-loaded, followed by concise example use cases. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple three-parameter schema, full parameter documentation, and safety annotations, the description is mostly complete: it states the resource, the data fields returned, and example queries. It does not explicitly address how this differs from the options_history_chain sibling, which is the main contextual gap, but the provided information is sufficient for an agent to invoke the tool correctly for a current options chain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented in the input schema. The description reinforces the meaning of type and expiration through examples but does not add substantial new semantic information beyond the schema. Baseline 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get the options chain for a stock' and enumerates returned data such as strike prices, bid/ask spread, volume, open interest, implied volatility, and expirations. It is clear but does not explicitly contrast itself with sibling tools like options_history_chain or stock_quote, so it lacks direct sibling differentiation for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit example user intents ('show me AAPL options', 'what are the puts on Tesla?', 'options expiring this Friday', 'what's the implied volatility?'), giving clear context for when to invoke the tool. It does not mention exclusions or alternative tools for historical options chains or other option-related tools, so it stops short of full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_atm_ivARead-onlyIdempotentInspect
Get the historical at-the-money implied volatility time series for a ticker. For each date, returns the strike closest to 50-delta and its IV. Default to call ATM IV but supports puts. Useful for VRP calculations, term structure, regime detection, and as a primary feature in directional/vol forecasting models.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker | |
| call_put | No | Call (default) or Put | |
| expiration | Yes | Expiration date YYYY-MM-DD (pick the same expiration across dates for consistency) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a read-only, idempotent, non-destructive operation. The description adds useful behavioral detail beyond that: the 50-delta strike selection rule, the default call option behavior, and support for puts. It does not deeply describe output formatting or data range, but the annotations lower the burden for safety-related behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: the core function is front-loaded in the first sentence, behavioral details follow, and use cases are listed last. Every sentence adds information without redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data retrieval tool with no output schema, the description covers the key inputs, the selection methodology, the default call/put behavior, and typical use cases. It could quantify historical depth or output format, but an agent has enough to decide when to invoke it and what to expect at a high level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some nuance—notably that call ATM IV is the default and puts are supported—but most parameter meaning is already supplied by the schema, including the expiration consistency guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a specific resource: the historical at-the-money implied volatility time series for a ticker. It further distinguishes itself by explaining that it returns the strike closest to 50-delta and its IV, which separates it from general options history or vol history tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by listing concrete applications: VRP calculations, term structure, regime detection, and vol/directional forecasting. It does not explicitly name alternative sibling tools or exclusion criteria, but the use cases are specific enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_chainARead-onlyIdempotentInspect
Get the full historical options chain for a ticker on a specific date (2019-2024). Returns every strike + expiration available that day with bid, ask, implied volatility, and all five Greeks (delta, gamma, theta, vega, rho). Use this for point-in-time backtesting, vol surface snapshots, or single-day analysis. Data source: DoltHub free options dataset, indexed in LiveDataLink's R2 storage.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. Coverage: 2019-02-09 to 2024-11-11. | |
| ticker | Yes | Stock ticker (uppercase) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds non-obvious context: data provenance ('DoltHub free options dataset, indexed in LiveDataLink's R2 storage'), the 2019-2024 coverage window, and the exact payload fields (bid, ask, implied volatility, all five Greeks). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, return contents, use cases, and data source. The core purpose is front-loaded in the first sentence, and there is no redundant language. Only minor tightening would be possible (e.g., folding the date range once instead of mentioning it in both schema and description).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read-only tool with no output schema, the description compensates well by enumerating return fields (bid, ask, IV, five Greeks). It covers what the tool returns, when to use it, and where the data comes from. Minor gaps remain: no explicit differentiation from the general options_chain tool or mention of response volume/pagination expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: date includes the YYYY-MM-DD format and exact coverage range (2019-02-09 to 2024-11-11), and ticker specifies uppercase. The description's mention of '2019-2024' reinforces the schema's date coverage but adds no new parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Get the full historical options chain for a ticker on a specific date (2019-2024).' The phrase 'Returns every strike + expiration available that day' distinguishes it from narrower siblings like options_history_atm_iv, options_history_contract, and options_history_volhist, which cover only subsets of the chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names three concrete use cases: 'point-in-time backtesting, vol surface snapshots, or single-day analysis.' This gives clear context for when to select this tool, though it stops short of explicitly naming sibling alternatives and stating when NOT to use them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_contractARead-onlyIdempotentInspect
Track a specific options contract (same ticker + strike + expiration) over time. Returns all daily observations of that contract with its evolving bid/ask, IV, and Greeks. Useful for studying single-contract behavior leading up to expiration, gamma squeezes around specific strikes, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| strike | Yes | Strike price (e.g. 450.00) | |
| ticker | Yes | Stock ticker | |
| call_put | Yes | Contract type | |
| expiration | Yes | Expiration date YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context: it returns all daily observations with specific data fields (bid/ask, IV, Greeks) and describes the temporal scope ('over time'). This goes beyond the annotations and clearly communicates the output nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The primary purpose is front-loaded, followed by the return payload and concrete use cases. Every sentence earns its place and there is no unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter tool with no output schema, the description is quite complete. It explains what the tool returns, the fields included, and provides context on why an agent would use it. It doesn't specify output format or date-sorting details, but these are not critical for a read-only historical data tool, especially with no date parameters to configure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a clear description. The description reinforces that ticker, strike, and expiration collectively identify the contract, but it doesn't add substantial new meaning beyond the schema. The baseline of 3 applies because the schema does the heavy lifting and the description only slightly reinforces the parameter grouping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool tracks a specific options contract (same ticker + strike + expiration) over time and returns daily observations with evolving bid/ask, IV, and Greeks. It uses a specific verb 'track' and names the resource. It distinguishes itself from sibling tools like options_chain or options_history_chain by emphasizing single-contract behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'useful for studying single-contract behavior leading up to expiration, gamma squeezes around specific strikes, etc.' This clearly indicates when to use this tool, though it doesn't explicitly name alternatives or state when not to use it. The single-contract focus implicitly differentiates it from chain-level or cross-contract tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_volhistARead-onlyIdempotentInspect
Get per-day implied volatility and historical volatility summary for a ticker. Returns iv_current, hv_current, plus year-high/year-low markers for each. Useful for IV rank/percentile signals, vol regime detection, and time-series feature engineering. Much smaller payload than full chain data.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker (uppercase) | |
| end_date | No | Optional YYYY-MM-DD upper bound | |
| start_date | No | Optional YYYY-MM-DD lower bound |
TDQS
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 structurally. The description adds meaningful behavioral context beyond those annotations by specifying the exact returned fields, the per-day granularity, and the payload-size tradeoff compared to full chain data. This is useful and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: the first states the core operation and outputs, the second gives concrete use cases, and the third explains the payload tradeoff. Every sentence earns its place, and 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.
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 adequately communicates what the tool returns and why it is useful. It covers core fields, granularity, and use context. It could be slightly more explicit about how the optional date range affects the returned summary and what 'year-high/year-low markers' mean, but the schema covers parameter bounds and the domain terms are reasonably self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage: ticker is described as 'Stock ticker (uppercase)' and start_date/end_date are described as optional YYYY-MM-DD bounds. The description does not need to repeat these. It adds mild context by framing the result as per-day summary, but it does not materially extend parameter semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('per-day implied volatility and historical volatility summary for a ticker') and names concrete return fields (iv_current, hv_current, year-high/year-low markers). It is clear on its own, and the 'smaller payload than full chain data' note helps separate it from chain-heavy tools, but it does not explicitly name or contrast a sibling tool, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use cases: 'IV rank/percentile signals, vol regime detection, and time-series feature engineering.' It also implies when not to use it by noting the payload is much smaller than full chain data. However, it does not explicitly name alternatives or state exclusion conditions, so the guidance is contextual rather than fully directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
org_funding_profileARead-onlyIdempotentInspect
One-call federal-money + nonprofit profile for an organization: USAspending contracts and grants recipient summaries (total dollars, award counts, top agencies), IRS 990 exempt-organization details (revenue/assets/income, NTEE, subsection, exempt status) by EIN or name+state, and optionally open Grants.gov OPPORTUNITIES (clearly labeled as available funding to apply for, NOT awards received). Sources degrade gracefully. Premium cross-source synthesis; federal dollars are name-matched and should be verified.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | No | Optional EIN for an exact IRS 990 match. | |
| state | No | Optional 2-letter state to disambiguate a nonprofit name search. | |
| organization | Yes | Organization / company / nonprofit name. | |
| include_opportunities | No | Also list open Grants.gov funding opportunities (available, not awarded). Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as read-only and idempotent, and the description adds significant behavioral context: sources degrade gracefully, federal dollars are name-matched and should be verified, and Grants.gov opportunities are clearly labeled as NOT awards. These are exactly the caveats an agent needs to interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but not bloated, and it front-loads the core purpose with 'One-call federal-money + nonprofit profile.' Each clause adds useful information, though the phrase 'premium cross-source synthesis' is a bit promotional and not strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-source aggregate tool with no output schema, the description covers the main content areas, lookup paths, optional behavior, and important caveats. It does not specify the exact response structure, but the logged data elements and degradation note provide enough contextual grounding for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters, including the optional EIN exact-match behavior, state disambiguation, and the include_opportunities default. The description mostly reinforces these details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces a combined profile of federal money and nonprofit data for an organization, naming the specific sources and data elements. It is distinct from narrower siblings like spending_recipient_summary or nonprofit_details, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when you want federal funding and nonprofit 990 data in one call, and optionally include Grants.gov opportunities. It also usefully clarifies that opportunities are available funding, not awarded funds. However, it does not explicitly state when to prefer a more specialized sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
package_trackARead-onlyIdempotentInspect
Identify the likely carrier for a package tracking number and return a direct tracking link. Supports common USPS, UPS, FedEx, DHL, and Amazon formats. Live delivery status, location, estimated arrival, and history are not fetched by this tool yet; open the returned carrier link for the current shipment record. Just paste the tracking number - the carrier is detected automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| tracking_number | Yes | Package tracking number from any carrier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already show readOnlyHint=true and idempotentHint=true, and the description adds meaningful behavioral detail: it returns a carrier link rather than live shipment data, and it relies on automatic carrier detection. The stated limitation about not fetching delivery status is particularly valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: it opens with the core function, then adds scope, limitations, and usage guidance in a natural order. Every sentence earns its place without repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with rich annotations, the description fully covers what the tool does, what it returns, and what it intentionally does not provide. Since there is no output schema, the explicit statement that it returns a direct tracking link is essential and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single tracking_number parameter with 100% coverage, so the baseline is 3. The description adds value by explaining that the carrier is detected automatically and listing supported carrier formats, which clarifies what kinds of input are valid beyond the schema's generic phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific purpose: identify the likely carrier for a tracking number and return a direct tracking link. It also scopes the tool to common USPS, UPS, FedEx, DHL, and Amazon formats, making its function unambiguous and distinct from broader package-lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: paste a tracking number and the tool auto-detects the carrier. It also explicitly warns that live delivery status, location, and history are not provided, so an agent knows not to use this tool for real-time shipment updates. It does not name an alternative tool, but no obvious sibling provides the same function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_detailsARead-onlyIdempotentInspect
Get full catalog metadata for a single scholarly work by OpenAlex id (e.g. 'W2741809807') or DOI (e.g. '10.1038/nature12373'). Returns title, authors, venue, year, citation count, open-access status, and a free full-text URL when available. For a bare arXiv id, use paper_get_text with paper_key 'arxiv:' to read indexed text, or paper_search by title for OpenAlex metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | OpenAlex id ('W...') or DOI ('10.x/...'). For arXiv ids, use paper_get_text or paper_search instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly/idempotent/non-destructive behavior. The description adds useful behavioral detail by enumerating the returned fields (title, authors, venue, year, citation count, open-access status, full-text URL when available), including a conditional. Only minor behaviors such as not-found handling are left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences each serve a distinct purpose: core operation, return content, and alternative-tool routing. No redundant or filler text; 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup tool with no output schema, the description covers accepted inputs, return fields, and the one likely misrouting case (bare arXiv IDs). An agent has enough to select and invoke the tool correctly without inspecting related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single id parameter is fully documented in the schema (OpenAlex ID or DOI, arXiv exclusion), and schema coverage is 100%. The description reinforces this with concrete examples and alternative routing, but does not add substantial new parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('full catalog metadata for a single scholarly work'), and accepted identifiers (OpenAlex ID or DOI). It also names alternatives for arXiv IDs, distinguishing paper_details from paper_get_text and paper_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when paper_details is appropriate (given an OpenAlex ID or DOI) and when to switch to paper_get_text or paper_search for bare arXiv IDs. This is clear routing guidance beyond the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_fulltext_searchARead-onlyIdempotentInspect
Search INSIDE the indexed open-access corpus (arXiv + PubMed Central OA full text) for a phrase or keywords and get back the matching passages, each with the paper title, authors, and a snippet around the match. This is the headline feature: agents can find where a finding or method is discussed across open-access papers. Optionally restrict to one paper by paper_key.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum passages to return (default 10, max 50). | |
| query | Yes | Phrase or keywords to find inside the papers, e.g. 'scaled dot-product attention', 'gradient checkpointing'. | |
| paper_key | No | Optional: restrict the search to a single indexed paper by its corpus key, e.g. 'arxiv:2310.12345'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, non-destructive, and open-world. The description adds useful behavioral context beyond that: the corpus composition, that results are passages rather than whole papers, and that the search can be narrowed to a single paper. It does not cover response edge cases, but the annotation coverage lowers the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the core capability and return shape, the second gives the headline use case, and the third notes the optional restriction. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with only 3 parameters, no output schema, and safety fully covered by annotations, the description is complete. It tells the agent what corpus is searched, what the results look like, and how to narrow by paper_key, while the schema covers limit and required query. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters at 100% and already documents query, limit, and paper_key with examples. The description's mention of 'phrase or keywords' and optional paper_key restriction largely restates the schema, adding little new semantic value. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Search INSIDE') and names the exact resource: an indexed open-access corpus of arXiv and PubMed Central OA full text. It also states the output form—matching passages with paper title, authors, and snippet—which clearly differentiates it from sibling tools like paper_search or paper_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains this is the headline feature for finding where a finding or method is discussed across open-access papers, which gives the agent a clear use case. It does not explicitly name alternatives or say when not to use this tool, but the 'search inside full text' framing and optional paper_key restriction imply the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_get_textARead-onlyIdempotentInspect
Return the full text of an indexed open-access paper by its corpus key (e.g. 'arxiv:2310.12345'), paginated by passage. Use from_seq + max_passages to page through it. For works not indexed locally, returns a pointer to find the open-access URL via paper_search / paper_details.
| Name | Required | Description | Default |
|---|---|---|---|
| from_seq | No | Passage index to start from (0-based, default 0). | |
| paper_key | Yes | Corpus key of an indexed paper, e.g. 'arxiv:2310.12345' or 'pmc:PMC1234567'. | |
| max_passages | No | Maximum passages to return per call (default 40, max 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses that results are paginated by passage and that non-indexed works yield a pointer to find the open-access URL elsewhere. This adds meaningful behavioral context, though the exact pointer format is not specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences cover purpose, pagination behavior, and the fallback path without redundancy. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple key-based retrieval tool with strong annotations and full schema coverage, the description is complete. It explains how to page, what happens for non-indexed papers, and where to go for alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explicitly linking from_seq and max_passages to the paging mechanism and by giving a realistic corpus key example, going slightly beyond the schema's individual parameter notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: returning the full text of an indexed open-access paper by corpus key. It clearly distinguishes this retrieval tool from search-oriented siblings by emphasizing key-based lookup and pagination by passage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical usage guidance: use from_seq and max_passages for paging, and explicitly routes the non-indexed case to paper_search / paper_details. It does not directly compare against paper_fulltext_search, leaving some sibling differentiation implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_searchARead-onlyIdempotentInspect
Search ~250M scholarly works (papers, preprints, datasets) live via OpenAlex by keyword across title, abstract, and full text, with optional author, year, and open-access-only filters. Ranked by relevance. Returns each work's OpenAlex id, DOI, title, authors, venue, year, citation count, and a free full-text URL when open access. Use paper_fulltext_search to search inside the locally indexed open-access corpus.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Optional exact publication year, e.g. 2023. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Keywords across title/abstract/fulltext, e.g. 'attention mechanism transformers', 'CRISPR off-target'. | |
| author | No | Optional author-name fragment, e.g. 'Hinton', 'Doudna'. | |
| open_access_only | No | If true, only return open-access works (default false). |
TDQS
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 valuable behavioral context beyond annotations: the live nature of the query, relevance-based ranking, the fields returned, and the conditional free full-text URL. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with zero filler: the core purpose leads off, followed by filters, return values, and the sibling alternative. Every sentence earns its place and the routing instruction is saved for the natural closing position.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description correctly shoulders the burden of explaining return values, and it does so explicitly (OpenAlex id, DOI, title, authors, venue, year, citation count, full-text URL). Search scope, source, ranking, and filters are all covered. Minor omissions like pagination/rate limits are not material for a read-only search tool whose limit parameter is already documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters fully. The description adds light confirmation by grouping 'optional author, year, and open-access-only filters' and noting the query spans title/abstract/fulltext, but it does not add meaning materially beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search'), a specific resource ('~250M scholarly works (papers, preprints, datasets) live via OpenAlex'), and a precise scope ('by keyword across title, abstract, and full text'). It also explicitly differentiates from the sibling paper_fulltext_search by naming it and describing its different scope, so an agent can distinguish the tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Ends with an explicit routing instruction: 'Use paper_fulltext_search to search inside the locally indexed open-access corpus.' This tells the agent when not to use this tool and points to the alternative. The live-vs-local distinction gives a clear selection condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_statusARead-onlyIdempotentInspect
Report the scholarly store status: the catalog is served live via OpenAlex (~250M works), plus the local D1 indexed-corpus counts (papers with full text indexed, total indexed passages, per-source breakdown, last refresh timestamp).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 useful behavioral context by clarifying that the catalog is served live via OpenAlex while corpus counts come from local D1, and it mentions the last refresh timestamp. This helps the agent understand data freshness and source boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose and then compactly lists the key data elements. Every phrase contributes meaningful information, and there is no fluff or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool, the description is complete: it names the data sources, the types of counts provided, the per-source breakdown, and the freshness indicator. Since there is no output schema, the description gives enough detail about the expected payload to guide correct use and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there is no parameter burden on the description. The baseline for 0 params is 4, and the description appropriately focuses on what the status report contains rather than any input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Report the scholarly store status.' It then enumerates exactly what the status covers (live OpenAlex catalog, local D1 corpus counts, per-source breakdown, refresh timestamp), which clearly distinguishes it from sibling search/detail tools like paper_search or paper_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose statement implies the right usage context: use this tool when the agent or user needs a status/health overview of the scholarly store, not when searching for specific papers or texts. It does not explicitly name alternatives or exclusion criteria, but the context is clear 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.
parcel_coverageARead-onlyIdempotentInspect
List which states/counties the parcel tools currently cover and how many parcels each holds. Coverage grows by state over time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 value by specifying the exact output content (states/counties and parcel counts) and the evolving nature of coverage, which is useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary output is stated first, and the dynamic coverage note provides important context without bloating the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless metadata tool with annotations covering safety and openness, this description is complete. It tells the agent what the tool returns and that the result may change over time, which is all an agent needs to decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so the schema is trivially complete. The description appropriately focuses on what the tool returns rather than parameter details, matching the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('states/counties the parcel tools currently cover' with parcel counts), which clearly identifies what the tool does. It is easily distinguished from sibling tools like parcel_search or parcel_details, which operate on individual parcels rather than describing coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for checking current coverage and parcel counts, and the note that coverage grows by state over time signals that this is a dynamic, approximate-status tool. It does not explicitly name alternatives or exclusion conditions, but the context is sufficient for an agent deciding between this and parcel data lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parcel_detailsARead-onlyIdempotentInspect
Get the full record for one parcel by its account id: address, current assessed value (total, land, improvement), land use, zoning, year built, structure square footage, lot size, coordinates, and most recent sale. Valuation and characteristics only, no owner name.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | 2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD. | |
| account_id | Yes | Parcel account id (from parcel_search). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as readOnly and idempotent, so the safety profile is clear. The description adds meaningful behavioral scope by listing exactly what data is included and explicitly excluding owner name. Minor gaps remain, such as not mentioning whether fields can be null or whether recent sales may be absent, but these are not critical given the readOnly annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that front-loads the core action and then lists the returned fields in a compact, scannable way. Every phrase adds value, and the 'no owner name' clarification is a useful boundary statement with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool with no output schema, the description is quite complete: it names the input, the source of the input, the full set of returned characteristics, and the notable exclusion. It could be slightly stronger by mentioning what happens when data is unavailable or by pointing explicitly to parcel_sales_history for more sale detail, but these are not required for basic correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters, including state coverage and the fact that account_id comes from parcel_search. The description reinforces that account_id is the lookup key but adds no additional parameter detail beyond the schema. This meets the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), the resource ('full record for one parcel'), and the key identifier ('account id'), and it enumerates the specific fields returned. It is easy to distinguish from sibling tools like parcel_search and parcel_sales_history in practice, though it does not explicitly name an alternative. The phrase 'Valuation and characteristics only, no owner name' helps set precise expectations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used after obtaining an account_id, and the schema notes the id comes from parcel_search. However, it does not explicitly state when to prefer this over siblings such as parcel_sales_history or parcel_search, nor does it list exclusion criteria beyond 'no owner name.' Usage context is present but mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parcel_sales_historyARead-onlyIdempotentInspect
Get the recorded sale history (price + date, no party names) for one parcel by account id. Useful for valuation, appreciation, and comp analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | 2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD. | |
| account_id | Yes | Parcel account id (from parcel_search). |
TDQS
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 meaningful behavioral context beyond annotations by disclosing what the result contains ('price + date') and what it deliberately omits ('no party names'). This is valuable transparency for an agent deciding whether the tool satisfies a user request.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first front-loads the operation, scope, and output shape; the second adds practical use cases. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-parameter tool with no output schema, the description adequately covers what is returned (price + date, no party names), the input source (account id), and the intended applications. The schema handles parameter coverage details, so nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The main description only restates the 'by account id' usage and does not add parameter-level details beyond what the schema already provides for state coverage and account_id sourcing. No extra semantic value is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clearly defined resource ('recorded sale history') with explicit scope ('for one parcel by account id'). It further specifies the content ('price + date, no party names'), which distinguishes it from parcel details or value-history tools. The use-case clause adds clarity without blurring 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool ('Useful for valuation, appreciation, and comp analysis') and the schema parameter description instructs that account_id comes from parcel_search, implying a precursor step. However, it does not explicitly state when not to use this tool or name alternatives, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parcel_searchARead-onlyIdempotentInspect
Search property parcels by street address and get assessed value, land use, and most recent sale for each match. Coverage: Maryland statewide (all 24 jurisdictions, includes sale prices) and Harris County, TX / Houston (appraised value only, no sale prices since Texas is a non-disclosure state). Returns valuation and characteristics only, not owner names. Use parcel_details for the full record.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 10, max 50). | |
| query | Yes | Street address fragment, e.g. '100 Main St' or 'Charles St'. | |
| state | No | 2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD. | |
| county | No | Optional county name to narrow results, e.g. 'Baltimore', 'Montgomery'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal a safe read-only, idempotent operation, so the bar is lower, but the description still adds meaningful behavior: coverage boundaries, the Texas non-disclosure impact on sale prices, the exclusion of owner names, and the fact that results include only valuation and characteristics. This exceeds what the schema or annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action and return fields appear first, followed by coverage caveats and a pointer to the sibling tool. Every sentence earns its place, with no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema search tool, the description covers the important return content, jurisdictional limitations, and the alternative for fuller data. It does not describe pagination behavior or default ordering, but those are partially documented in the limit parameter and are not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds value by framing query as a 'street address fragment' and explaining the MD/TX state coverage and county narrowing behavior. It does not need to repeat the schema's per-parameter descriptions because those are already complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search property parcels by street address'), a clear object (parcels), and the exact fields returned ('assessed value, land use, and most recent sale'). It also distinguishes itself from parcel_details by directing users there for the full record, and it disambiguates from owner-name tools by stating owner names are not returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage context: statewide Maryland coverage with sale prices, Harris County/TX with appraised value only, and no owner names. It explicitly names parcel_details as the alternative for the full record. It does not mention other related siblings like parcel_coverage or parcel_sales_history, so some routing guidance is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_assignee_searchARead-onlyIdempotentInspect
Find patent assignees (companies / organizations) by name fragment. Returns assignee id, organization name, location, and total patents owned. Ranked by patent count.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| organization | Yes | Company or organization name fragment (e.g. 'Apple', 'Genentech'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds useful context beyond annotations: the ordering behavior ('Ranked by patent count') and the returned fields (assignee id, organization name, location, total patents owned). However, it doesn't disclose matching semantics (partial/fuzzy behavior), pagination, or behavior on zero matches. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the action, the return payload, and the ordering. The main verb and resource are front-loaded in the first sentence, and there is zero filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only search with fully documented parameters and safety annotations, the description covers the essential operating contract: what is searched, what is returned, and how results are sorted. Minor gaps: rank direction is only implied (descending by patent count), and exact name-matching behavior isn't specified. Since there is no output schema, listing the returned fields is a meaningful contribution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'organization' (name fragment with examples) and 'limit' (default 25, max 100) are fully documented in the schema. The description's 'by name fragment' merely echoes the schema's own wording and adds no new parameter meaning. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+method: 'Find patent assignees (companies / organizations) by name fragment.' It explicitly scopes the tool to organizations serving as assignees, which distinguishes it from the patent siblings (patent_search, patent_inventor_search, patent_details, patent_recent) without needing to open any of them. An agent can tell this is not a general patent search or inventor search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no named alternatives, and no exclusions. Among 200+ siblings, the only differentiator is the implicit resource type ('patent assignees'), and the description never tells the agent to prefer this over patent_search or patent_inventor_search for related queries. The agent must infer usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_detailsARead-onlyIdempotentInspect
Fetch full details for a single patent by its USPTO patent_id (e.g. '10757852'). Returns title, grant date, type, abstract, assignees, inventors, and citation count.
| Name | Required | Description | Default |
|---|---|---|---|
| patent_id | Yes | USPTO patent id, e.g. '10757852'. |
TDQS
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 well covered. The description adds value by enumerating the returned fields, which is especially useful given there is no output schema. It does not discuss error behavior or rate limits, but for a simple read-only lookup this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The first sentence front-loads the action and key parameter; the second efficiently lists the return payload. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool, the description is nearly complete: it states the identifier format, what the tool returns, and the read-only nature via annotations. It does not specify behavior when a patent_id is invalid or not found, but this is a minor gap for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter patent_id is already documented in the schema with the same example ('10757852'). The description reinforces that the parameter is a single USPTO patent identifier but adds no new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch full details') and resource ('single patent by its USPTO patent_id'), explicitly distinguished from sibling search tools. It also lists the concrete return fields (title, grant date, type, abstract, assignees, inventors, citation count), leaving no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the use case: retrieving complete details for one patent when the patent_id is already known. It does not explicitly name alternatives like patent_search for discovery, but the single-patent-by-ID framing provides clear context that this is not a search or listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_inventor_searchARead-onlyIdempotentInspect
Find inventors by last name (and optional first name). Returns inventor id, name, location, and total patent count. Use the inventor name in patent_search to find their patents.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| last_name | Yes | Inventor last name (required). | |
| first_name | No | Optional inventor first name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar for additional behavioral disclosure is lower. The description adds useful return-field information and a follow-up workflow, but does not explain match behavior, result ordering, or what happens when no inventor is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core action is front-loaded, the return fields are listed compactly, and the cross-reference to patent_search is a single useful clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only inventor lookup with three fully documented parameters, the description gives the essential search criteria, return fields, and a downstream usage step. It is slightly incomplete in not addressing the sibling patent_assignee_search or matching semantics, but it is sufficient for correct invocation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents last_name, first_name, and limit. The description adds little beyond what the schema already provides, but it does confirm the optionality of first_name. This fits the baseline-3 expectation for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds inventors by last name and optional first name, identifies the resource, and reports the returned fields. It does not explicitly distinguish itself from the sibling patent_assignee_search, though the inventor-focused wording implicitly separates it from patent_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete workflow: search for an inventor, then use the inventor name in patent_search to find their patents. This gives clear usage context, but it does not mention when to prefer patent_assignee_search or other inventor-related alternatives, 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.
patent_recentARead-onlyIdempotentInspect
List the most recently granted US patents since a start date (defaults to 30 days ago), newest first. Useful for monitoring newly issued patents.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| start_date | No | Grant-date lower bound (YYYY-MM-DD). Defaults to 30 days ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations by disclosing the default start date (30 days ago) and ordering (newest first). The annotations already establish read-only, idempotent, non-destructive behavior, so the extra ordering/default detail is a meaningful addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and every sentence earns its place. The second sentence adds a concrete, actionable use case without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional, fully documented parameters and no output schema, the description is complete. It covers scope, ordering, default behavior, and a distinct use case, making it 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for both parameters (limit and start_date), including defaults and format. The description mostly restates the start date default, so it adds only marginal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a precise resource ('most recently granted US patents'), and key constraints (since a start date, newest first). This clearly distinguishes it from sibling tools like patent_search or patent_details, which focus on querying or individual patent details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Useful for monitoring newly issued patents.' This tells the agent when to select this tool, though it does not explicitly name alternatives or state 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.
patent_searchARead-onlyIdempotentInspect
Search granted US patents by keyword (matched against title and abstract), title, and/or grant date range. Provide at least one of query, title, start_date, end_date. Returns title, grant date, assignee, and inventors.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Keyword(s) matched across patent title and abstract (e.g. 'lithium battery anode'). | |
| title | No | Keyword(s) matched against the patent title only. | |
| end_date | No | Grant-date upper bound (YYYY-MM-DD). | |
| start_date | No | Grant-date lower bound (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive behavior, so the description adds value by specifying matching semantics and the returned fields ('title, grant date, assignee, and inventors'). It does not go into pagination or edge cases, but the read-only disclosure lowers the burden and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with a clear order: function and matching scope, invocation constraint, returned fields. Every sentence contributes information and none of it is padded or redundant with the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description covers what results look like and what inputs are required. It could be slightly more complete by pointing to patent_details for full records or explaining default limits, but the limit is already documented in the schema, 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.
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 an important constraint that the schema's zero required fields do not convey: at least one of query, title, start_date, or end_date must be supplied. It also clarifies that 'query' matches title and abstract whereas 'title' matches title only, reinforcing schema semantics without repeating them verbatim.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('granted US patents'), and names the search dimensions (keyword in title/abstract, title, grant date range). It is unambiguous on its own, but it does not explicitly differentiate itself from sibling tools such as patent_assignee_search, patent_inventor_search, or patent_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states an explicit invocation condition ('Provide at least one of query, title, start_date, end_date'), which is useful guidance. However, it never tells an agent when to choose this tool over the nearby patent siblings, leaving that to inference from sibling names and parameter differences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prescriber_ties_profileARead-onlyIdempotentInspect
One-call identity + industry-financial-ties transparency profile for a US healthcare prescriber. Joins two keyless federal sources: the NPPES NPI Registry (identity - NPI, specialty, city/state, active status) and CMS Open Payments / Sunshine Act (industry payments disclosed to that prescriber - total dollars, payment count, top paying manufacturers, and associated drugs/products for the most recent program year with data). Provide a last_name (ideally with first_name + state) or an exact 10-digit npi. The name resolver picks the NPPES record that genuinely matches the requested name (never a blind top hit), and payments are pinned to that exact NPI across recent program years. This is a TRANSPARENCY profile drawn from public records, NOT a judgment: industry payments to physicians are lawful and publicly disclosed, and their presence is not evidence of wrongdoing. A source that fails is noted, not fatal. Premium cross-source synthesis; verify against the primary sources.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | No | Optional exact 10-digit NPI; overrides name search. | |
| year | No | Optional 4-digit CMS program year (e.g. '2023'); defaults to the most recent year with disclosed payments. | |
| state | No | Optional 2-letter state to disambiguate the NPPES match (e.g. 'OH'). | |
| last_name | No | Prescriber last name (e.g. 'Nissen'). Provide this or an npi. | |
| first_name | No | Optional prescriber first name to disambiguate (e.g. 'Steven'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/idempotent annotations by disclosing key behavioral traits: the name resolver picks a genuine NPPES match rather than a blind top hit, payments are pinned to that exact NPI, a failing source is noted rather than fatal, and the result is a transparency profile rather than a judgment. The 'verify against primary sources' caveat also sets appropriate expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but front-loaded and largely information-dense. It covers purpose, inputs, matching behavior, source-failure handling, and interpretation caveats. Minor promotional or redundant phrasing such as 'Premium cross-source synthesis' could be trimmed, but the content earns its place overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by enumerating the key returned data points for both identity and payments. It also addresses the most recent program year default, disambiguation needs, failure behavior, and the appropriate interpretation of industry payments. The tool is complex enough that this level of detail is necessary and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter coverage, so the baseline is 3. The description adds meaningful context beyond the schema: it explains that last_name should ideally be combined with first_name and state, that an exact NPI overrides the name search, and that the resolver matches genuinely rather than picking a top hit. This elevates the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a one-call profile combining prescriber identity from NPPES with industry payment data from CMS Open Payments. It specifies concrete output elements (NPI, specialty, city/state, active status, payment totals, top manufacturers) and differentiates itself from single-source tools like npi_lookup or open_payments_search by emphasizing the cross-source synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear caller guidance: provide last_name, ideally with first_name and state, or an exact 10-digit npi. It also explains that the npi overrides name search. It does not explicitly name sibling alternatives or state when not to use this tool, but the input guidance and source combination make usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_to_rent_ratioARead-onlyIdempotentInspect
Compute the buy-vs-rent price-to-rent ratio for a US metro or state: Zillow home value (ZHVI) divided by annualized rent (ZORI x 12). Returns the ratio plus a rule-of-thumb signal (below ~15 favors buying, above ~20 favors renting). Premium synthesis over the real-estate market store. Rule-of-thumb only, not financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name/id (e.g. 'Austin, TX', 'California', or a Zillow region id). | |
| region_type | No | Optional region type filter: 'metro' or 'state'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the bar is lower. The description adds meaningful behavioral context: it returns both a numeric ratio and a rule-of-thumb signal, includes interpretative thresholds, and explicitly labels itself as not financial advice. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the main computation and scope appear first, followed by the output shape and an important caveat. The phrase 'premium synthesis' is somewhat vague filler, but it does not undermine overall efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only computation tool with full schema coverage, the description is complete. It explains the formula, the input scope, the returned values, and the interpretive signal. The absence of an output schema is adequately compensated by describing what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well with examples. The description reinforces that 'region' is a US metro or state and contributes formula context, but it does not need to add parameter-level detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific operation: computing the price-to-rent ratio for a US metro or state via a named formula (ZHVI / (ZORI x 12)). It distinguishes itself from sibling real-estate tools like realestate_home_values and realestate_rents by framing it as a synthesized buy-vs-rent metric, not raw data retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when this tool is appropriate: when a combined buy-vs-rent ratio and signal is needed rather than raw home values or rents. It doesn't explicitly name alternatives or exclusions, but the formula and 'synthesis' wording make the intended use clear relative to the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_liability_screenARead-onlyIdempotentInspect
One-call product-safety + liability read for a MANUFACTURER or brand. Joins three public-record legs: product recalls (CPSC consumer products + openFDA drug/device/food enforcement, keyed by manufacturer), federal-court litigation (CourtListener dockets whose caption actually names the brand), and CFPB consumer-complaint volume. Returns a rolled-up read (CLEAN / WATCH / ELEVATED LIABILITY SIGNALS) with recall count and severity (FDA Class I / death-related = high), litigation hits (total + last-3-years), and complaint volume, plus an itemized interpretation. A leg that fails is noted, not fatal. NHTSA vehicle recalls need a specific year+make+model so are out of scope here (use recall_screen for a vehicle). Premium cross-source synthesis; informational public-record synthesis, NOT legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Optional lower-bound date (YYYY-MM-DD) for FDA recalls. | |
| state | No | Optional 2-letter state to scope the CFPB complaint leg (e.g. 'CA'). | |
| company | No | Alias for manufacturer; either may be supplied. | |
| manufacturer | Yes | Manufacturer or brand name to screen (e.g. 'Peloton', 'Fisher-Price'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only, idempotent, and non-destructive behavior, so the description adds value by disclosing that partial leg failures are noted rather than fatal, describing the classification output, and flagging that it is informational synthesis rather than legal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than minimal but every sentence contributes functional information: sources, output shape, failure handling, scope exclusion, and disclaimer. It is front-loaded with the one-call purpose, though the closing 'Premium cross-source synthesis' phrase is mildly promotional and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates well by specifying the returned classification levels, recall severity logic, litigation metrics, complaint volume, and itemized interpretation. It also covers failure behavior, out-of-scope cases, and an explicit alternative, making it nearly self-sufficient for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents manufacturer, since, state, and company alias. The description reinforces that the tool keys on manufacturer/brand and mentions FDA severity and litigation time windows, but it adds little parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific resource and action: product-safety + liability read for a manufacturer/brand. It enumerates the three data sources (CPSC/openFDA recalls, CourtListener litigation, CFPB complaints) and the rolled-up output, which clearly differentiates it from single-source siblings like cpsc_recall_search or cfpb_complaint_aggregations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description positions the tool as a one-call cross-source synthesis and explicitly routes vehicle recall needs to recall_screen. It does not exhaustively enumerate when to prefer this over each single-source sibling, but the scope and alternative guidance are clear enough for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_lookupARead-onlyIdempotentInspect
Look up real estate property data by street address or account number. Returns assessed value, market value, land value, improvement value, year built, square footage, lot size, acreage, exemptions (homestead, over 65, disabled veteran), and legal description. Use this for questions like "how much is this property worth?", "what's the tax value of this address?", "what are the property details?", or any real estate lookup. Owner names, heirs, deed opinions, and title conclusions are not returned. Coverage note: currently demo dataset for Montgomery County, TX (sample properties only). Broader live county coverage is not enabled by default and must be confirmed before purchase. Email support@livedatalink.ai to discuss a source-verified coverage requirement.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Street address or appraisal district account number | |
| county | No | County name (default: montgomery) | montgomery |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds important behavioral context beyond annotations: it discloses that the dataset is a demo covering only Montgomery County, TX, that sample properties only are included, and that broader county coverage must be confirmed before purchase. This is valuable, non-obvious information that shapes agent expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence contributes: the core lookup purpose, returned fields, example questions, exclusions, and the demo coverage limitation. It is front-loaded with the main purpose and avoids vague filler, though the support email sentence is slightly tangential to agent invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately enumerates the returned fields and clearly states what is not returned, covering agent expectations well. It also communicates the coverage limitation and required confirmation for broader use. Missing details like response format or error behavior are minor gaps for a simple read-only lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters, so the description does not need to add much here. It does restate that queries can be street addresses or account numbers, but that is already in the schema, and no additional syntax, format, or county behavior details are provided beyond the schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up real estate property data by street address or account number and lists the exact fields returned, which makes the purpose immediately understandable. It does not explicitly name sibling tools like property_search_owner or property_value_history to draw a contrast, so it falls short of a 5, but the scope is specific enough to distinguish the primary use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit example questions and says to use the tool for real estate lookups, which provides clear context on when to invoke it. It also notes that owner names, heirs, deed opinions, and title conclusions are not returned, which is a useful exclusion, but it does not name alternative tools that should be used for those needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_search_areaARead-onlyIdempotentInspect
Search for real estate properties in a geographic area. Filter by zip code, subdivision, neighborhood, or street name. Use this for questions like "what homes are in this zip code?", "show me properties in this neighborhood", "find houses on Main Street", "what's the average home value in this area?", or any area-based property search. Returns a list of matching records with addresses, values, and property types; owner names are not returned. Coverage note: the current Montgomery County, TX connector returns demo/sample records only.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit ZIP code to search within | |
| county | No | County name (default: montgomery) | montgomery |
| street | No | Street name to search (e.g., 'Main St') | |
| subdivision | No | Subdivision or neighborhood name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond those hints: it discloses that owner names are omitted from results, that the output is a list of addresses/values/property types, and that the current connector only returns demo/sample records. This is valuable and goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then filters, then usage examples, then return contents and a data caveat. It is somewhat long with four example questions, but each sentence adds useful routing or expectation-setting information without significant waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, four-optional-parameter search tool with no output schema, the description is complete: it states what is returned, what is not returned, and the critical caveat that current results are demo/sample records. An agent can select and call this tool with accurate expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters. The description mentions zip, subdivision, neighborhood, and street, but adds little beyond what the schema already provides. It reinforces intent and example phrasings but does not materially deepen parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search for real estate properties in a geographic area.' It also distinguishes itself from owner-based searches by explicitly noting that owner names are not returned, and it frames itself as the area-based property search tool among many real-estate siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear, explicit use cases: 'Use this for questions like...' with concrete examples for zip, neighborhood, street, and average value queries. It does not explicitly name an alternative tool or state when not to use it, but the examples provide sufficient context for an agent to route area-based questions here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_search_ownerARead-onlyIdempotentInspect
Filter the bounded Montgomery County, TX demo property records by a supplied owner-name query. Partial matching is supported, but owner names are not returned. Matching results include addresses, values, property types, and account numbers for the sample records. This is not an owner-verification or people-finder service. Coverage note: the current Montgomery County, TX connector returns demo/sample records only.
| Name | Required | Description | Default |
|---|---|---|---|
| county | No | County name (default: montgomery) | montgomery |
| owner_name | Yes | Full or partial owner name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive, but the description adds substantial behavioral context: partial matching is supported, owner names are not returned, and the data source is demo/sample only. This prevents unrealistic expectations and gives an agent a much clearer picture of the call's outcome. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary action and input. Each subsequent sentence adds distinct value: output fields, non-goals, and coverage limitations. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with full schema coverage and strong annotations, the description covers everything needed for correct invocation: the query target, matching behavior, returned fields, and the demo-data caveat. There is no output schema, so the explicit list of returned fields is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents owner_name and county adequately. The description reinforces that partial matching is supported, but this largely mirrors the schema's 'Full or partial owner name' phrasing. With the schema doing the heavy lifting, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Filter the bounded Montgomery County, TX demo property records by a supplied owner-name query.' It also clarifies what the tool is not ('not an owner-verification or people-finder service'), which helps an agent distinguish it from lookup tools. The output fields are enumerated, leaving little ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use context: use it when searching the Montgomery County demo property set by owner name. It explicitly warns against using it for owner verification or people finding, and it discloses the demo-only data limitation. However, it does not name specific sibling tools as alternatives, which would have made routing fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_value_historyARead-onlyIdempotentInspect
Get property value history and tax assessment trends over multiple years. Shows year-by-year market value, land value, improvement value, and percentage change. Use this for questions like "how has this property's value changed?", "what's the appreciation rate?", "show me the tax assessment history", "has this home gone up in value?", or any property valuation trend question. Requires account number (use property_lookup first to find it). Coverage note: the current Montgomery County, TX connector returns demo/sample records only.
| Name | Required | Description | Default |
|---|---|---|---|
| county | No | County name (default: montgomery) | montgomery |
| account_number | Yes | County appraisal district account number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description adds the critical caveat that the current Montgomery County, TX connector returns demo/sample records only. It also discloses the exact value components returned, giving the agent behavioral expectations beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, followed by concrete usage examples, a prerequisite, and an important data caveat. Every sentence contributes actionable information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only tool with full schema coverage and safety annotations, the description is complete. It covers what data is returned, when to use it, the prerequisite lookup step, and the demo-data limitation, leaving no critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful context by explaining that account_number comes from property_lookup and that the county parameter currently maps to demo/sample data for Montgomery County. This procedural guidance goes beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get property value history and tax assessment trends over multiple years.' It enumerates the exact data shown (market value, land value, improvement value, percentage change) and explicitly ties it to valuation trend questions, distinguishing it from lookup tools like property_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit example questions and a clear prerequisite: 'Requires account number (use property_lookup first to find it).' This tells an agent when and how to invoke the tool, though it does not explicitly state 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.
pypi_packageARead-onlyIdempotentInspect
Look up a Python (PyPI) package: latest version, summary, license, author, homepage, and required Python version. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | PyPI package name, e.g. 'requests'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description adds value by specifying the output fields (latest version, summary, license, author, homepage, Python version) and the Keyless authentication requirement, which are useful beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact, front-loaded sentence states the tool's purpose, lists the key returned fields, and ends with the essential auth note. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple single-parameter lookup with no output schema, and the description adequately conveys both the input concept and the expected return fields. Combined with annotations covering the read-only, idempotent, non-destructive profile, nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single 'name' parameter already documented as 'PyPI package name, e.g. 'requests'." The description adds no additional parameter meaning beyond reinforcing that it is a Python package lookup, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('look up') and resource ('Python (PyPI) package'), and enumerates the exact fields returned. The PyPI naming clearly distinguishes it from sibling tools like npm_package and cargo_crate without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for looking up Python package metadata from PyPI, and the 'Keyless' note clarifies there is no auth setup required. It does not explicitly name alternatives or state when not to use it, so it misses the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_domainARead-onlyIdempotentInspect
Registration record for a domain via RDAP (the modern WHOIS): registrar, creation/update/expiration dates, status flags, nameservers, and DNSSEC. Useful for due diligence and OSINT on a company's web presence. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. 'example.com'. |
TDQS
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 'Keyless' (no authentication required) and lists the record fields returned, which helps the agent set expectations beyond the annotation booleans.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The key information is front-loaded, the field list is compact, and the 'Keyless' note earns its place as a practical usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with rich annotations and no output schema, the description is complete: it names the input type, enumerates the expected output contents, gives a use case, and notes authentication. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'domain' is already described clearly in the schema. The description does not add substantial parameter-level meaning beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (domain) and the exact kind of data returned via RDAP, with a concrete field list. The domain focus clearly distinguishes it from sibling rdap_ip, so an agent can tell them 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear context of use: 'due diligence and OSINT on a company's web presence.' It does not explicitly name alternatives or state when not to use it, but the domain/RDAP framing makes the primary use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_ipARead-onlyIdempotentInspect
Ownership record for an IP address or block via RDAP: the network name, owning organization, ASN, CIDR range, and country. Pairs with ip_reputation and entity lookups. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 or IPv6 address, e.g. '8.8.8.8'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, non-destructive, idempotent behavior, so the description's main added value is the 'Keyless' note, which is useful auth context. It also explains what data the lookup surfaces, adding meaningful behavioral context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The main purpose is front-loaded, followed by useful output fields, related tools, and auth requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter read-only lookup with no output schema, the description adequately covers what the tool returns, how it relates to neighboring tools, and that no key is required. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the single 'ip' parameter as an IPv4 or IPv6 address with an example. The description adds the phrase 'or block,' which provides some extra nuance, but does not clarify accepted block formats or otherwise significantly enrich parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns an RDAP ownership record for an IP address or block, and enumerates the specific fields returned (network name, owner, ASN, CIDR range, country). It differentiates from sibling rdap_domain by targeting IPs rather than domains, and from ip_reputation by focusing on ownership rather than reputation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context by saying it 'pairs with ip_reputation and entity lookups,' implying complementary use. However, it does not explicitly state when to use this tool versus alternatives, nor does it give exclusions or conditions that would steer an agent toward a different tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_home_valuesARead-onlyIdempotentInspect
Get the typical home value for a metro or state (Zillow Home Value Index): the latest value plus 1-year and 5-year-ago values and percent change. Pass a region name or id.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive profile. The description adds useful output and aggregation context but does not disclose caveats such as data vintage/revisions or how ambiguous region names are resolved, which would be more valuable in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence packs in the data source, scope, output fields, and invocation hint with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with rich annotations, the description covers what will be returned and what input to provide. It could be slightly stronger with an explicit 'not for individual addresses' exclusion or output-shape note, but nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the region parameter already carries descriptive examples and the id fallback. The description's 'Pass a region name or id' reinforces but does not add meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get ... typical home value ... Zillow Home Value Index') plus the exact fields returned (latest, 1-year and 5-year-ago values, percent change). This clearly distinguishes it from sibling real-estate tools like realestate_rents or realestate_trend by data source and aggregation scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly establishes the use case: aggregate home values for a metro or state, not property-level or rental data. It tells the caller to pass a region name or id, but does not explicitly name sibling alternatives or state 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.
realestate_market_screenARead-onlyIdempotentInspect
Get a read-only market screen for a metro or state: latest Zillow typical home value (ZHVI) and asking rent (ZORI), with 1-year and 5-year changes where available. Returns market context only, not a parcel record, comparable sale, owner/title result, appraisal, score, or investment decision.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces and adds context: it returns only market context, and historical changes are included only 'where available.' 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first delivers the operation, scope, and data payload; the second delivers a compact exclusion list that prevents misuse. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with safety covered by annotations, the description explains the input scope, the exact returned metrics, the availability caveat, and what type of answer this is not. That is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the sole parameter completely, including allowed forms ('Austin, TX', 'Houston', 'Texas') and Zillow region id. The description's 'metro or state' phrasing adds no semantic value beyond the schema, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get a read-only market screen for a metro or state,' then names the exact metrics returned (ZHVI, ZORI, 1/5-year changes). The exclusion list ('not a parcel record, comparable sale, owner/title result, appraisal, score, or investment decision') clearly separates it from the many property/real-estate siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the appropriate scope (metro/state market context) and gives explicit when-not guidance by listing what the tool does not return. It does not name the specific sibling tools to use for parcel, comparable, or appraisal needs, which would make the routing guidance fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_rentsARead-onlyIdempotentInspect
Get the typical asking rent for a metro or state (Zillow Observed Rent Index): the latest value plus 1-year and 5-year-ago values and percent change. Pass a region name or id.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive. The description adds useful transparency by specifying exactly what the response contains: the latest value, 1-year and 5-year-ago values, and percent change. This is valuable because there is no output schema to convey that information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence with no filler. It front-loads the core operation, states the geographic scope and data source, enumerates the returned values, and ends with the input instruction. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool with no output schema, the description is largely complete: it defines the input, geographic scope, metric, and response contents. Minor absences like currency units or data freshness are not critical given the tool's simplicity and strong annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, region, and schema description coverage is 100%. The description repeats that a region name or id can be passed, but adds no meaning beyond the schema, which already provides concrete examples like 'Austin, TX' and 'Texas.' Baseline 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the typical asking rent for a metro or state.' It names the underlying Zillow Observed Rent Index and the exact time-frame values returned, which clearly distinguishes it from sibling tools like realestate_home_values or realestate_trend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for use—rent data for metros/states—and instructs the caller to 'Pass a region name or id.' However, it does not explicitly contrast with alternative real-estate tools or state when not to use it, so the routing guidance is mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_searchARead-onlyIdempotentInspect
Find real-estate markets (metro areas or states) by name and get each one's latest typical home value (Zillow Home Value Index). Use this to discover the region name/id before calling realestate_home_values, realestate_rents, or realestate_trend.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional filter: 'metro' or 'state'. | |
| limit | No | Max rows (default 10, max 50). | |
| query | Yes | Name fragment, e.g. 'Austin', 'Bay Area', 'Texas'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only/idempotent/non-destructive behavior. The description adds that the tool returns ZHVI values and serves as a name resolver, but it does not disclose output shape, matching behavior, or search edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core capability is stated first and the downstream relationship is given in one clear sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool it states what it returns, how querying works, and where it fits in the real-estate workflow. Without an output schema, a bit more detail on the response fields could help, but the behavioral guidance is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions including examples and defaults, so the description need not add much. It reinforces that query is a name fragment and type filters to metro/state but does not add new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific action (find real-estate markets by name), defines the output (latest typical home value via ZHVI), and names sibling tools it feeds, so an agent can distinguish it from realestate_trend, realestate_rents, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use this before realestate_home_values, realestate_rents, or realestate_trend to discover the region name/id. It lacks an explicit when-not-to-use statement or mention of alternatives like realestate_market_screen, but the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_statusARead-onlyIdempotentInspect
Report real-estate store coverage: number of regions, total monthly data points, the latest month available, and last refresh. Data is Zillow Research (ZHVI + ZORI), metro and state level.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so no safety contradiction exists. The description adds useful context about the underlying dataset (Zillow Research ZHVI + ZORI, metro/state level) and the presence of a refresh timestamp, but it does not discuss behavior such as staleness interpretation, update frequency, or any operational caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first front-loads the purpose and the exact metrics returned, and the second scopes the dataset and geographic granularity. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless status tool with no output schema, the description is complete: it names all reported metrics, the data source, and the geographic levels. An agent can decide whether this tool covers its need and can interpret the response without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and schema description coverage is effectively 100%, so there are no parameter meanings the description must supply. Baseline for a zero-parameter tool is 4; the description staying silent on parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the verb 'Report' and a specific resource ('real-estate store coverage'), then enumerates four concrete metrics. This unambiguously distinguishes it from sibling data-query tools such as realestate_home_values, realestate_rents, and realestate_trend: they deliver values, while this one reports dataset coverage and freshness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for checking data-store coverage, total data points, latest month, and refresh status rather than querying actual property values. However, it never explicitly states when to prefer this over the realestate_* siblings or mentions any exclusions, so the agent must infer the use case from the status-oriented phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_trendARead-onlyIdempotentInspect
Get the monthly time series of home values (ZHVI) or rents (ZORI) for a metro or state, to chart or analyze the trend.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | No | 'home_value' (ZHVI, default) or 'rent' (ZORI). | |
| months | No | How many recent months to return (default 24, max 360). | |
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
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 meaningful behavior beyond annotations by disclosing that the tool returns monthly time-series data, which is the key behavioral trait an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states what the tool returns and for what purpose. It contains no filler or redundant information and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent data-retrieval tool with simple parameters, the description covers the essential return shape (monthly time series) and the scope (metro or state). It does not detail the exact output structure, but without an output schema the description still gives enough context for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents metric, months, and region. The description adds domain context by naming ZHVI and ZORI, but this largely repeats what the schema already states, so the added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource: monthly time series of home values (ZHVI) or rents (ZORI) for a metro or state. This distinguishes it from broader tools like realestate_search or realestate_market_screen, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to chart or analyze the trend' implies the tool is for trend analysis over time, which gives some usage context. However, it does not explicitly state when to use this tool versus alternatives like realestate_home_values, realestate_rents, or realestate_status, 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.
recall_screenARead-onlyIdempotentInspect
One-call product-safety recall sweep across CPSC (consumer products), openFDA (drug/device/food enforcement), and NHTSA (vehicles). Provide a product/keyword/manufacturer query and/or a full vehicle (year+make+model). Results are normalized, deduped within and across sources, severity-rolled (FDA Class I or death-related = high), and summarized with a by-classification breakdown. A source that fails is noted, not fatal. Premium cross-source synthesis. Verify against the official sources before acting.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Product, keyword, or manufacturer to screen (e.g. 'infant formula', 'Acme Corp'). | |
| since | No | Optional lower-bound date (YYYY-MM-DD) for FDA recalls. | |
| domains | No | Optional subset of sources to check; default checks all applicable. | |
| vehicle_make | No | Vehicle make (e.g. 'Toyota'). | |
| vehicle_year | No | Vehicle model year (required with make+model for NHTSA). | |
| vehicle_model | No | Vehicle model (e.g. 'Camry'). |
TDQS
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 operational context: results are normalized, deduped, severity-rolled, summarized, and source failures are non-fatal. It also includes an important verification caveat. This goes well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and each sentence contributes behavioral or safety guidance. Phrases like 'Premium cross-source synthesis' and 'one-call' add some promotional tone, but the overall structure is compact and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity of six optional parameters and no output schema, the description covers the key invocation requirements: input choices, normalization, severity classification, failure handling, and the need to verify against official sources. It does not detail exact response fields, but that is not critical for selecting and calling this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented. The description reinforces that a product/keyword/manufacturer query and/or full vehicle identifiers are expected, but it does not add significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a strong, specific verb ('sweep') and names the exact resources covered (CPSC, openFDA, NHTSA). It clearly differentiates itself from single-source siblings like cpsc_recall_search and fda_drug_recalls by emphasizing cross-source aggregation and one-call coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when a multi-source recall sweep is needed. It tells the agent what inputs to provide ('query and/or a full vehicle'), but it does not explicitly name alternatives or state when a single-source tool should be preferred over this aggregate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_facility_detailARead-onlyIdempotentInspect
Full record for a single federal recreation facility by its RIDB FacilityID: contact, GPS, reservation URL, accessibility, agency.
| Name | Required | Description | Default |
|---|---|---|---|
| facility_id | Yes | RIDB FacilityID, e.g. '234064'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful context about the data source (RIDB) and the fields included, but it does not disclose behaviors such as error handling for invalid FacilityIDs, response size, or pagination. With the annotations covering 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that leads with the core purpose, then provides a compact list of return categories. Every word contributes value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-ID lookup with comprehensive annotations and only one parameter, the description sufficiently covers what the agent needs: the identifier type, the scope (federal recreation facility), and the payload contents. It does not specify behavior for missing or invalid IDs, but given the tool's low complexity and the field list, this is a minor gap rather than a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains facility_id as a RIDB FacilityID with an example. The description repeats this identifier concept but adds no new semantic depth beyond reaffirming that the returned record is for that facility. The baseline of 3 applies because the schema carries the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Full record for a single federal recreation facility.' It clearly distinguishes this from sibling search tools (recreation_search_facilities, recreation_nearby) by emphasizing a single record retrieved by RIDB FacilityID, and it enumerates the content categories returned. This is unambiguous and differentiates the tool well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for fetching a complete record when a FacilityID is already known, which is useful context. However, it does not explicitly say when not to use it or mention alternatives like recreation_search_facilities for discovering facilities by criteria. Usage guidance is present only by implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_nearbyARead-onlyIdempotentInspect
List federal recreation facilities within a radius of a coordinate. Useful for proximity searches (e.g. campgrounds near a property, fishing spots near a city). Radius is in kilometers.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Center latitude. | |
| lon | Yes | Center longitude. | |
| limit | No | Max rows (1-50, default 10). | |
| activity | No | Optional activity filter. | |
| radius_km | No | Radius in kilometers (default 30, max ~320). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the description needs only light additional context. It adds federal/proximity-list behavior but no deeper caveats like default limits or result set characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main verb and resource are front-loaded, and the examples and unit clarification earn their place without duplicating the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list-by-coordinates tool with complete schema descriptions and safety annotations, the description is sufficient for selection and invocation. It could mention that non-proximity facility searches belong in recreation_search_facilities, but that is more routing guidance than missing invocation detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'Radius is in kilometers' reinforces the radius_km parameter note but does not add meaning beyond the schema. Lat/lon as center coordinates is also already documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('list') and resource ('federal recreation facilities') with a clear geospatial scope (radius around a coordinate). It does not explicitly distinguish itself from sibling tools like recreation_search_facilities or recreation_search_campsites, so it falls just 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases ('campgrounds near a property', 'fishing spots near a city') that clearly signal the intended proximity-search scenario. It does not explicitly state when not to use it or name alternatives, so it is a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_search_campsitesARead-onlyIdempotentInspect
Search individual campsites (sites within a campground): loop, accessibility, type, reservable. Provide facility_id to list sites within a known campground, or query to free-text search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-50, default 10). | |
| query | No | Free-text match on campsite name. Optional. | |
| facility_id | No | RIDB FacilityID to list campsites within. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive, so the description doesn't need to repeat safety. It adds the two search modes and the campsite attributes, but no additional behavioral traits such as result limits, pagination, or data source caveats. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and attributes, then the key input modes. Every sentence contributes, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search with three optional parameters, the description gives enough to call it correctly: the resource, the two input modes, and available attributes. It doesn't mention whether facility_id and query can be combined, but the schema's 'optional' allows it, leaving a minor ambiguity. With no output schema, the return fields are partially implied by 'loop, accessibility, type, reservable.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all three parameters, so the baseline is 3. The description adds value by clarifying the intended relationship between facility_id and query ('or') and explaining the use case for each, which the schema alone doesn't fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Search' with a precise resource, 'individual campsites (sites within a campground)', and enumerates the key attributes (loop, accessibility, type, reservable). This clearly distinguishes it from sibling tools like recreation_search_facilities and recreation_search_recareas without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains two call patterns: provide facility_id for a known campground, or use query for free-text search. This gives clear operational context, but it stops short of explicitly naming alternative tools or stating when not to use this one, so it doesn't fully route the agent away from recreation_search_facilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_search_facilitiesARead-onlyIdempotentInspect
Search US federal recreation facilities (campgrounds, picnic areas, trailheads, marinas, visitor centers) across NPS, USFS, BLM, USACE, BOR, FWS. Filter by name, state, or activity (e.g. 'CAMPING', 'FISHING', 'HIKING').
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-50, default 10). | |
| query | No | Free-text match on facility name. | |
| state | No | Two-letter state code, e.g. 'CA'. | |
| activity | No | Activity name (CAMPING, FISHING, HIKING, etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation, so the description does not need to restate that. It adds useful scope context (multiple federal agencies and facility types), but no behavioral specifics such as result ordering, pagination, or data-source caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the main purpose and then list filters and examples. There is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter search tool with read-only annotations and fully described schema parameters, the description covers the resource scope, agency coverage, and filter options. Nothing critical is missing for an agent to decide whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters, but the description adds value by naming the filter dimensions and giving concrete activity examples ('CAMPING', 'FISHING', 'HIKING') that the schema does not enumerate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('US federal recreation facilities'), and expands the scope with example facility types and agencies. It is clear enough to be distinguished from narrower siblings like recreation_search_campsites, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool searches and the available filters (name, state, activity), giving clear context for when an agent would use it. It does not explicitly exclude alternatives such as recreation_search_recareas or recreation_facility_detail, so it falls just 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.
recreation_search_recareasARead-onlyIdempotentInspect
Search federal recreation AREAS (broader units: a whole national forest, a national park unit, a BLM management area) by name, state, or activity. For higher-level place search use this; for specific facilities (campgrounds, trailheads) use recreation_search_facilities.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-50, default 10). | |
| query | No | Free-text match on recreation-area name. | |
| state | No | Two-letter state code. | |
| activity | No | Activity name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered and the bar is lower. The description adds one useful behavioral nuance beyond annotations: the granularity distinction that results are broad area units rather than facility-level records. It does not describe response shape or result-count behavior, so a 3 is appropriate given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both substantive and correctly front-loaded: the first scopes the tool with a verb, resource, and concrete examples, the second routes the agent to the sibling alternative. There is zero filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter search tool with full schema coverage and safety annotations, the description covers the essential decisions: what can be searched and when to select this tool over the facilities sibling. The notable gap is that no output schema exists and the description does not hint at the result shape or behavior (e.g., what fields appear, how limit applies), which would help an agent set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (limit, query, state, activity) already documented in the input schema. The description's 'by name, state, or activity' loosely maps to query/state/activity but adds no semantic detail beyond what the schema provides. Baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and a clearly scoped resource: federal recreation AREAS defined as broader units with concrete examples (whole national forest, national park unit, BLM management area). It also names the search dimensions (name, state, activity) and explicitly contrasts itself with recreation_search_facilities, enabling sibling differentiation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing guidance: 'For higher-level place search use this; for specific facilities (campgrounds, trailheads) use recreation_search_facilities.' This names the alternative and the exact condition that selects between the two tools, leaving nothing to inference. The only minor omission is not addressing other recreation siblings like recreation_search_campsites or recreation_nearby.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_cfr_searchARead-onlyIdempotentInspect
Full-text search the current Code of Federal Regulations (eCFR, all 50 titles) for a phrase or keywords. Returns matching sections with their citation (e.g. '40 CFR 98.411'), hierarchy heading, a text snippet, effective date, and the official eCFR URL, plus the total match count. Use reg_cfr_section to read a full section's text.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max sections to return (default 20, max 100). | |
| query | Yes | Phrase or keywords to find in the CFR, e.g. 'greenhouse gas reporting'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds meaningful behavioral detail beyond the annotations: it searches all 50 titles of the current CFR and enumerates the exact return fields (citation, hierarchy heading, snippet, effective date, URL, total count). This gives the agent a clear model of what the tool will do and return.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the action and scope, and the second sentence enumerates return fields and points to the relevant alternative. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool with strong annotations and full schema coverage, the description is complete. It tells the agent what is searched, what is returned, and when to use a different tool. Although there is no output schema, the description enumerates the return fields, so the agent knows what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters (query and limit) with descriptions and defaults. The tool description adds no additional parameter-level meaning beyond restating that the query is a phrase or keywords. Baseline 3 is appropriate because the schema carries the parameter documentation fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Full-text search the current Code of Federal Regulations (eCFR, all 50 titles)'. It clearly defines what the tool does, including the kind of output it returns (matching sections with citations, hierarchy heading, snippet, effective date, URL, total match count), and it explicitly distinguishes itself from reg_cfr_section by directing full-section reads there.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit routing instruction: 'Use reg_cfr_section to read a full section's text.' This tells the agent when to prefer the sibling tool instead of reg_cfr_search. It clearly positions reg_cfr_search as the tool for finding relevant sections, not for retrieving complete regulatory text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_cfr_sectionARead-onlyIdempotentInspect
Get the current text of a specific Code of Federal Regulations section. Provide the title number, part, and section (e.g. title 40, part '98', section '98.411'). Returns the section's plain text, the date it is current as of, and the official eCFR URL.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Optional point-in-time ISO date yyyy-mm-dd; defaults to current. | |
| part | Yes | CFR part, e.g. '98'. | |
| title | Yes | CFR title number 1-50, e.g. 40. | |
| section | Yes | CFR section, e.g. '98.411'. |
TDQS
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 repeat that. It adds useful behavioral context by specifying the return payload: plain text, the date current as of, and the official eCFR URL. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly structured sentences with no filler. It front-loads the core purpose, includes a concrete example, and lists return values efficiently. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with fully documented parameters and no output schema, the description sufficiently explains what the tool returns and how to call it. The example clarifies the citation format, and no critical operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds a helpful example mapping title 40, part '98', and section '98.411', but does not substantially extend the schema's parameter explanations. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource: the current text of a Code of Federal Regulations section. It also gives exact required identifiers (title, part, section) with a concrete example, making it easy to distinguish from sibling search tools like reg_cfr_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by requiring a specific section and providing an example format, which signals the agent should use a search tool when the exact citation is unknown. It does not explicitly name alternatives or conditions, but the context is clear enough for correct tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_cfr_titlesARead-onlyIdempotentInspect
List the 50 Code of Federal Regulations titles with their name and the date each title's text is current as of. Useful for discovering title numbers (e.g. Title 26 = Internal Revenue, Title 40 = Protection of Environment) before calling reg_cfr_section.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 fully covered. The description adds the output scope—50 titles with names and current-as-of dates—but no further behavioral caveats are necessary for a zero-parameter read-only listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences: the first states exactly what is returned, and the second gives a concrete use case with useful examples (Title 26, Title 40). No filler, no repetition, and the core information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool, the description is complete. It states what is listed, what fields are included, and why the agent would call it. Although there is no output schema, the return values are described in plain language, and annotations cover behavioral expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is effectively 100%, so there are no parameter semantics to document. The baseline for a zero-parameter tool is 4, and the description does not need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'List', and clearly identifies the resource: the 50 Code of Federal Regulations titles with their name and current-as-of date. It also distinguishes itself from reg_cfr_section by positioning this tool as the discovery step for title numbers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says this is useful for discovering title numbers before calling reg_cfr_section, which gives clear when-to-use guidance. It does not state when not to use it or mention alternatives like reg_cfr_search, but the main routing cue is present and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_documentARead-onlyIdempotentInspect
Get full metadata and a plain-text body excerpt for a single Federal Register document by its document number (e.g. '2026-09905'). Returns title, type, agencies, abstract, affected CFR parts, a leading excerpt of the full rule text, and the URL for the complete document.
| Name | Required | Description | Default |
|---|---|---|---|
| document_number | Yes | Federal Register document number, e.g. '2026-09905'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral context by stating it returns only a 'leading excerpt' rather than the full rule text, and that a URL is provided for the complete document, setting accurate expectations about response scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states the action and input, the second lists the outputs. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool with no output schema, the description sufficiently covers the input, the retrieval scope, and the expected return content. An agent has enough information to invoke the tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents document_number with a clear example, so schema coverage is 100%. The description repeats the document-number lookup concept but adds no new semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: retrieving full metadata and a plain-text body excerpt for a single Federal Register document by document number. It clearly distinguishes itself from related search/CFR tools by emphasizing 'single' document lookup and enumerating the returned fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this when you already have a specific Federal Register document number and need that document's metadata and excerpt. It does not explicitly name alternatives like reg_search for finding documents, so it stops short of a full when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_searchARead-onlyIdempotentInspect
Search the Federal Register (the daily journal of the US government) for rules, proposed rules, notices, and presidential documents by keyword, with optional agency, document type, and publication-date filters. Returns each document's number, title, type, publishing agency, abstract, and URL. Use reg_document to get the full text of one document.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | Keyword(s), e.g. 'methane emissions', 'overtime rule'. | |
| type | No | Optional document type: 'rule', 'proposed-rule', 'notice', or 'presidential-document'. | |
| limit | No | Max rows (default 20, max 100). | |
| agency | No | Optional agency slug, e.g. 'environmental-protection-agency', 'securities-and-exchange-commission'. | |
| published_to | No | Published on/before, ISO date yyyy-mm-dd. | |
| published_from | No | Published on/after, ISO date yyyy-mm-dd. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so no contradiction exists. The description adds useful behavioral context by specifying the exact return fields and scope, though it does not disclose search semantics or potential edge cases like empty queries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no wasted words. The core action and scope are front-loaded, followed by return fields and a clear pointer to the full-text sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by listing the returned fields and document types. The optional filters are summarized, and the alternative for full-text retrieval is identified. Nothing essential for selecting or invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds a useful grouping of filters (agency, document type, publication date) but does not materially extend the parameter-level meaning already present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search'), a clear resource ('the Federal Register'), the document types covered, and the fields returned. It also differentiates itself from the sibling reg_document by explicitly directing full-text retrieval elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states both what this tool is for and when a sibling should be used: 'Use reg_document to get the full text of one document.' This makes the choice between reg_search and reg_document explicit and leaves little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_entityARead-onlyIdempotentInspect
Canonical cross-source entity resolution - the join-key primitive to run before other combos. Given a company/organization name (plus optional ticker/CIK/EIN/state hints), fans out across the LiveDataLink sources that carry a strong identifier and returns the best-matched canonical identity plus the IDs it resolves to: SEC EDGAR (CIK, ticker), GLEIF (LEI plus the ownership chain - direct and ultimate parent LEI and the reported subsidiary count), NPPES (organizational NPI for healthcare entities), IRS 990 (EIN), USAspending (federal recipient name), EPA ECHO (facility registry id), and an OFAC/EU/UN/BIS sanctions screen (match/no-match flag). Returns a compact canonical-IDs block with per-source confidence, an entity-type guess, an ownership summary, and an overall match confidence - distinct from entity_dossier's full narrative. A source that fails is noted, not fatal. UEI/SAM.gov and RDAP domain-owner ids are omitted (not wired sources). Premium cross-source synthesis; verify identifiers before relying on a join.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Optional SEC CIK hint. | |
| ein | No | Optional EIN for an exact IRS 990 nonprofit match. | |
| name | Yes | Company or organization name to resolve (e.g. 'Apple', 'Lockheed Martin', 'Red Cross'). | |
| state | No | Optional 2-letter state to disambiguate nonprofit/EPA name searches. | |
| ticker | No | Optional stock ticker hint to pin the SEC EDGAR match (e.g. 'AAPL'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only, idempotent, and non-destructive, so the description adds significant behavioral value beyond them: it discloses fan-out across multiple LiveDataLink sources, per-source confidence, the non-fatal handling of source failures, omitted source classes (UEI/SAM.gov, RDAP), and the caveat to verify identifiers before relying on a join.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with its core role and value proposition. Every major element—sources, outputs, failure behavior, exclusions, verification caveat—earns its place. It is longer than minimal, but the length is justified by the tool's breadth; only minor phrasing like 'Premium cross-source synthesis' adds limited signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining return values, and it does so thoroughly: compact canonical-IDs block, per-source confidence, entity-type guess, ownership summary, sanctions flag, and overall confidence. It also covers edge behavior ('A source that fails is noted, not fatal'), source exclusions, and verification guidance, making it complete for a high-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the input schema already explains each parameter's role—CIK hints, EIN for exact nonprofit match, state for disambiguation, ticker to pin SEC EDGAR. The description restates these hints at a high level but adds no meaningful semantic details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific role—'Canonical cross-source entity resolution' and 'join-key primitive'—and enumerates exactly what the tool returns: canonical identity, source-specific IDs, confidence, entity-type guess, ownership summary, and sanctions flag. It explicitly distinguishes itself from entity_dossier's full narrative, so the agent can differentiate this tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong contextual guidance: 'run before other combos' signals when to use it as a key-resolution step, and 'distinct from entity_dossier's full narrative' points to an alternative. However, it does not explicitly name near-sibling tools like entity_resolve or state when NOT to use this tool, 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.
sanctions_get_changesARead-onlyIdempotentInspect
Return entities added or updated since a given ISO date for a chosen source list. The four official lists do not all expose a public delta feed, so this filters the cached snapshot by listedOn.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| since | Yes | ISO date string (e.g. 2026-01-01) to compute the delta from. | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a non-obvious behavioral trait: because not all official lists expose a public delta feed, results are derived by filtering the cached snapshot by listedOn. This adds real context beyond the readOnlyHint and idempotentHint annotations and helps the agent understand possible data limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The operation is front-loaded, and the second sentence earns its place by explaining an important implementation caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple read-only delta query, the description plus schema covers the key details: since, source, and the cached-snapshot behavior. It is slightly incomplete because there is no output schema and the description does not describe response shape or pagination behavior, leaving some inference to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents since and limit reasonably well, and source is constrained by an enum. The description adds some context by calling the sources the 'four official lists,' but it does not clarify limit behavior or explain the source enum values beyond that. Overall the description provides only modest extra parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: returning entities added or updated since an ISO date for a selected source list. This clearly distinguishes it from sibling sanctions tools like sanctions_get_entity or sanctions_screen_entity, which fetch or screen rather than compute deltas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the intended use case: get a delta of entities added or updated since a date for one of four official lists. It does not explicitly name alternatives or exclusions, but the cache caveat gives useful context about feasibility and behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_get_entityARead-onlyIdempotentInspect
Fetch a full record by entity ID (e.g. "OFAC_SDN-44705"). The ID is self-describing and includes the source; obtain it from a screening result.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Entity ID from a screening result, e.g. "OFAC_SDN-44705". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety. The description adds useful context about the ID's self-describing nature and source, but does not disclose the return structure or any error/edge-case behavior. This is acceptable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the main action front-loaded and an illustrative example. Every clause adds value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description sufficiently tells the agent what to pass and where to get the ID. It doesn't enumerate response fields, but 'full record' combined with the annotations is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single 'id' parameter with full coverage. The description adds meaning by explaining that the ID is self-describing and embeds its source, helping the agent understand format variations and where to obtain valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a full record by entity ID, using a specific verb and resource. The example ID and the note that IDs are self-describing and come from screening results effectively distinguish this lookup from sibling search/screen tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says the ID must be obtained from a screening result, which establishes the correct precondition and workflow. It does not name sibling alternatives or state when not to use it, but the intended usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_screen_addressARead-onlyIdempotentInspect
Match a physical address against listed addresses. Useful for KYC / supplier vetting when the counterparty's name is generic but the address is distinctive.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| address | Yes | Free-form address string. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
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 well covered. The description adds only the matching action and use case, not deeper behavioral context such as match semantics or list behavior; 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The core action is front-loaded, and the second sentence provides valuable selection context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For correct invocation, the required address parameter and all optional parameters are fully documented in the schema, and annotations cover the operational safety profile. The description could explicitly contrast with sanctions_screen_entity or describe result semantics, but these are not necessary for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents address, limit, sources, and threshold. The description adds no parameter-level meaning beyond the schema, which is acceptable given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'match', and a specific resource, 'a physical address against listed addresses.' This clearly differentiates it from entity-based screening tools like sanctions_screen_entity, and the use-case sentence reinforces the address-focused purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: KYC and supplier vetting when the counterparty's name is generic but the address is distinctive. It does not explicitly name alternatives or state when not to use it, but the guidance is specific 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.
sanctions_screen_batchARead-onlyIdempotentInspect
Screen up to 50 names in a single call. Returns one result block per input, in input order. Each name counts as one screen for billing purposes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| names | Yes | Array of names to screen. Max 50. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the description adds meaningful context beyond them: one result block per input, input-order preservation, and per-name billing. It does not fully describe the result block structure, but nothing contradicts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences deliver the core batch capability, output ordering, and billing implication with no filler. The most decision-relevant fact, the 50-name cap, is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers invocation scope, result ordering, and billing, while annotations cover safety. However, with no output schema, 'result block' is under-specified; an agent cannot tell what fields a block contains, and there is no guidance for exceeding 50 names or selecting among closely related screening tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents names, limit, sources, and threshold. The description reinforces the 50-name maximum and result ordering, but adds little semantic value beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Screen') and resource ('up to 50 names') and makes the batch nature explicit. This clearly differentiates it from the sibling tools sanctions_screen_entity and sanctions_screen_address, which operate on a single entity or address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies batch use by stating the 50-name cap and per-input result blocks, but it never explicitly says when to choose this over single-screen siblings or what to do for more than 50 names. There is no exclusion guidance or naming of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_screen_entityARead-onlyIdempotentInspect
Screen a single name or entity against the four major sanctions / denied-party lists (OFAC SDN, EU consolidated, UN consolidated, BIS DPL). Returns matches with confidence scores. This call uses the standard hosted query allowance; the free tier includes 1,000 queries/month and paid plans use the published plan pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or entity string to screen. | |
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, open-world, idempotent, and non-destructive behavior. The description adds genuinely useful context beyond those annotations, including that matches include confidence scores and that the call consumes a hosted query allowance with free-tier and paid-plan pricing implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with the core purpose front-loaded, followed by return semantics and cost/quota context. It is concise and every sentence contributes useful information, though the billing sentence is slightly tangential to invocation behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the fully documented input schema and rich annotations, the description is largely complete for a single-entity screening tool. It could be stronger by explicitly routing users to sanctions_screen_address or sanctions_screen_batch when an address or multiple names are involved, but the core behavior is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents name, limit, sources, and threshold. The description adds little parameter-specific meaning beyond reinforcing that a single name or entity is screened and that matches carry confidence scores, so it does not rise above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action — screening a single name or entity — and names the exact target resources (OFAC SDN, EU consolidated, UN consolidated, BIS DPL). It also says the tool returns matches with confidence scores. This differentiates it from sibling tools like sanctions_screen_address and sanctions_screen_batch via the word 'single'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this when you need to screen a single name or entity against the four major sanctions lists. It does not explicitly name alternatives such as sanctions_screen_batch for multiple names or sanctions_screen_address for physical addresses, but the 'single name or entity' phrasing makes the primary use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_search_aliasARead-onlyIdempotentInspect
Search aliases / AKAs across selected lists. Distinct from screen_entity in that only the alias fields are matched, which is helpful when the primary listed name differs sharply from the popular spelling.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| query | Yes | Alias / AKA to search for. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful behavior context — that only alias fields are matched — but does not describe return shape, pagination, or other runtime 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action and scope are front-loaded, and the second sentence earns its place by preventing confusion with the closely related screen_entity tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, fully schema-documented search tool, the description covers what it does, how it differs from its closest sibling, and when it is best used. It does not describe output shape, but with no output schema and a straightforward search use case, this is a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents query, limit, sources, and threshold. The description's alias-focused wording adds semantic framing for query but no additional parameter-level detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Search aliases / AKAs across selected lists') and explicitly distinguishes the tool from screen_entity by noting that only alias fields are matched. This makes the tool's purpose and scope immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternative (screen_entity) and explains when this tool is helpful: when the primary listed name differs sharply from the popular spelling. That is an explicit routing signal for an agent deciding between related sanctions tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_status_summaryARead-onlyIdempotentInspect
Counts and last-update timestamps for all four lists in the cache. No screening is performed; this call is free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive traits. The description adds genuine behavioral context: it reads cached data, performs no screening, and is free. These details help agents understand cost and side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry all necessary information with no filler. The core purpose is front-loaded, followed by the exclusion and cost note. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only status tool, the description fully covers what the call returns, what it does not do, and that it is free. No output schema exists, but the described return value (counts and timestamps for four lists) is sufficient for an agent to invoke and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to explain about inputs. The empty input schema plus 100% schema coverage means no parameter documentation is needed; a baseline score of 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific function: 'Counts and last-update timestamps for all four lists in the cache.' It explicitly distinguishes itself from screening tools with 'No screening is performed,' separating it clearly from sanctions_screen_* and other sanctions lookup siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly signals when not to use this tool ('No screening is performed'), which is a valuable exclusion for agents considering sanctions tools. However, it does not name a specific alternative to use when screening is needed, so it stops short of explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_available_datasetsARead-onlyIdempotentInspect
Your guide to LiveDataLink's entire data catalog. Call this FIRST when you're unsure which tool to use, or when the user asks about data availability. LiveDataLink has 377 tools across 81 data domains: finance (stocks, options, SEC fund holdings), crypto, transportation/FMCSA carriers, property records, weather/air quality, vehicle VIN/recalls, package tracking, local business search, sanctions screening (OFAC SDN, EU, UN, BIS), FEMA disasters and flood data, federal courts (CourtListener), cybersecurity (CVE/CWE/EPSS/CISA KEV), US college metrics (IPEDS), EIA energy data (gasoline, natural gas, electricity, oil supply, renewables), FRED Federal Reserve macroeconomic series (GDP, CPI, fed funds, unemployment, yields), SEC EDGAR filings (10-K, 10-Q, 8-K, insider transactions), and NREL renewable energy (PVWatts solar, utility rates, EV charging stations), US Census demographics, EPA environmental compliance, FEC campaign finance, USPTO patents, IRS nonprofits (Form 990/EO BMF), US caselaw, public-domain books (full-text search), open-access scholarly papers (OpenAlex catalog + arXiv/PMC full-text search), federal regulations (Federal Register rules/notices + the Code of Federal Regulations), US Census geocoding (address to coordinates + Census geographies), Washington contractor licenses, EU tenders, federal grants (Grants.gov funding opportunities), and product recalls (CPSC / SaferProducts.gov). New domains are reviewed regularly based on observed requests. Returns exact tool names for matched domains AND logs every search to a roadmap database. High-frequency unmet queries jump the build queue. Use this freely; it costs no credits. Call for: 'what data do you have?', 'can you look up X?', 'do you have Y data?', 'what tools are available?', or any data coverage question. After you find a tool, call get_free_api_key with the user's real email for 1,000 monthly calls, or see https://livedatalink.ai/pricing for paid plans.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What data the user is looking for (e.g., 'trucking safety', 'stock prices', 'property records', 'VIN lookup') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/open-world safety, but the description adds non-obvious behavior beyond them: searches are logged to a roadmap database, high-frequency unmet queries jump the build queue, and the call costs no credits. These side-effect and cost disclosures are exactly the kind of context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The actionable instruction is front-loaded and clear, but the bulk of the text is an 81-domain enumeration that is largely redundant for a tool whose purpose is to find those domains. It conveys coverage credibility, so it earns its place somewhat, but it is longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a discovery tool with no output schema, the description covers everything an agent needs: what it returns ('exact tool names for matched domains'), when to call it, and the follow-up to obtain an API key. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'query' parameter is fully documented in the schema (100% coverage, including examples), so the schema does the heavy lifting. The description reinforces intent with example phrases but adds no syntax or format detail beyond the schema, which is the correct baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific role ('guide to LiveDataLink's entire data catalog') and distinguishes itself from the 377 sibling tools by being the discovery/meta entry point. An agent immediately understands this is the catalog-search tool, not a data-fetching tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call it FIRST when unsure which tool to use or when the user asks about data availability, then lists concrete trigger phrases ('what data do you have?', 'can you look up X?'). It also directs the follow-up step (get_free_api_key or pricing), giving complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_ftd_compareARead-onlyIdempotentInspect
Compare two to eight ticker symbols on the same SEC fails-to-deliver settlement date from the self-hosted official snapshot. Returns published quantities, explicit missing-row status, issuer labels, ranking, coverage, and provenance; a missing row is never converted to zero. Use this for 'compare GME, AMC, and TSLA FTD balances' or 'which selected symbol had the largest published balance on 2026-08-14?'. Point-in-time balances are not daily flows, wrongdoing evidence, or investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Two to eight unique exact ticker symbols. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| settlement_date | No | Settlement date in YYYY-MM-DD format, within the hosted hot window. |
TDQS
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 by stating that a missing row is never converted to zero, listing the return contents, and clarifying that balances are not daily flows, wrongdoing evidence, or investment 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff: purpose and source, return contents and missing-row behavior, then usage examples and a disclaimer. The key purpose is front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, no output schema, and annotations covering safety, the description is quite complete: it states purpose, return fields, missing-row handling, and interpretation caveats. It could mention error handling or what happens with invalid symbols, but overall it provides enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing a baseline of 3. The description adds the 'two to eight' constraint on symbols, clarifies that settlement_date must be a single date within the hot window, and gives examples that use the parameters. This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares two to eight ticker symbols on a single SEC fails-to-deliver settlement date from a self-hosted snapshot, and lists what it returns. It distinguishes from sibling tools by the 'compare' verb and the same-date constraint, and provides concrete usage examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage examples ('compare GME, AMC, and TSLA FTD balances' or 'which selected symbol had the largest published balance on 2026-08-14?') and cautions that point-in-time balances are not daily flows. However, it does not explicitly name alternative tools or state when not to use this tool, so no exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_ftd_historyARead-onlyIdempotentInspect
Return a bounded, paginated history of published nonzero SEC fails-to-deliver balance records for one ticker in the self-hosted hot window. Includes settlement dates, quantities, SEC price fields, source-row counts, pagination, and provenance. Use this for 'show GME FTD balances over time', 'chart TSLA published fail balances this quarter', or to inspect point-in-time changes. Do not sum the observations as daily flow; omitted dates are not filled with inferred zeros.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum published dates. Default 30. | |
| offset | No | Published dates to skip. Default 0. | |
| symbol | Yes | Exact ticker symbol as published by the SEC. Use sec_ftd_search_securities for issuer-name searches. | |
| end_date | No | Settlement date in YYYY-MM-DD format, within the hosted hot window. | |
| start_date | No | Settlement date in YYYY-MM-DD format, within the hosted hot window. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly, openWorld, idempotent, and non-destructive annotations, the description discloses that only nonzero published records are returned, that omitted dates are not filled with inferred zeros, and that observations should not be summed as daily flow. It also adds context about the bounded hot window and provenance fields, which materially shapes the caller's expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the essential action and result, then gives concrete use examples, and then adds one important interpretational caveat. Every sentence earns its place and there is no filler or repetition of the schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully enumerates the shape of the response as settlement dates, quantities, SEC price fields, source-row counts, pagination, and provenance. It is still slightly incomplete because it does not state output ordering, the exact behavior when a date has no nonzero records, or how the hot window is defined, which an agent may need to know without a JSON output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to restate parameters and the baseline is 3. It reinforces the meaning of pagination and date-bounded behavior but does not add meaningful per-parameter details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a very specific verb-and-resource pair: returning a bounded, paginated history of published nonzero SEC fails-to-deliver records for one ticker in the self-hosted hot window. It also scopes the tool away from sibling sec_ftd_* tools by emphasizing a single-symbol, time-series history rather than latest, comparison, search, or top-level aggregates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use-case examples such as 'show GME FTD balances over time' and 'chart TSLA published fail balances this quarter', which is strong usage guidance. It does not explicitly name sibling tools like sec_ftd_latest or sec_ftd_compare as alternatives, nor does it explain when not to use this tool in favor of them, so it stops one level short of a fully explicit routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_ftd_latestARead-onlyIdempotentInspect
Return the latest published official SEC fails-to-deliver balance for one exact ticker, optionally as of a date, from the hosted hot window. Includes settlement date, aggregate outstanding quantity, issuer label, SEC price field, source file, snapshot hash, and provenance. Use this for 'latest reported FTD balance for GME' or 'what was the most recent AMC fail balance by June 30?'. A fail can arise from long or short sales and is not evidence of abusive or naked short selling.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Settlement date in YYYY-MM-DD format, within the hosted hot window. | |
| symbol | Yes | Exact ticker symbol as published by the SEC. Use sec_ftd_search_securities for issuer-name searches. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 behavioral context: the 'hosted hot window', the list of returned fields, and the interpretive caveat that a fail is not evidence of naked short selling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The primary action is front-loaded, followed by return-field detail, example queries, and a necessary interpretive caveat. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-ticker lookup with only one required parameter, the description covers the tool's scope, data sources, included fields, and an interpretive caveat. There is no output schema, but the description lists the key return fields. Edge cases like no data or an invalid as_of date are not addressed, but the 'hot window' constraint and schema descriptions mitigate this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces that symbol must be exact and that as_of is a settlement date, but it does not add meaning beyond the schema for any of the three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Return the latest published official SEC fails-to-deliver balance for one exact ticker.' It differentiates from sibling tools like sec_ftd_history, sec_ftd_compare, and sec_ftd_search_securities through 'latest' and 'one exact ticker' language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use-case phrasing: 'Use this for "latest reported FTD balance for GME" or "what was the most recent AMC fail balance by June 30?".' It clearly signals when to call this tool, though it does not explicitly state when to prefer sec_ftd_history or sec_ftd_compare instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_ftd_search_securitiesARead-onlyIdempotentInspect
Search ticker symbols and issuer names in LiveDataLink's bounded, self-hosted mirror of official SEC fails-to-deliver files. Returns symbols, names, hosted coverage, reported-observation counts, maximum published balance, pagination, snapshot hash, and provenance. Use this for 'find the FTD ticker for GameStop', 'which SEC fail records mention Tesla?', or to resolve a symbol before a lookup. It does not expose licensed CUSIP identifiers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches. Default 20. | |
| query | Yes | Ticker fragment or issuer-name phrase. | |
| offset | No | Matches to skip for pagination. Default 0. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 correctly aligns with these. Beyond annotations, it adds valuable behavioral context: the data is a 'bounded, self-hosted mirror' (suggesting limited scope or coverage) and explicitly states that licensed CUSIP identifiers are not exposed. It also mentions 'snapshot hash and provenance' in returns, giving insight into data integrity. This goes beyond the annotation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it opens with the core purpose, follows with the return value summary, provides concrete usage examples, and ends with a limitation. Every sentence earns its place; there is no fluff or redundancy. The front-loading of purpose and the clear examples make it easy for an agent to process quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, 100% schema coverage, and no output schema, the description provides sufficient context: it explains what the tool returns (list of fields), clarifies usage, and notes a key limitation (CUSIP exclusion). It does not specify the exact response structure or error handling, but that is not strictly necessary for a read-only search tool with well-documented parameters. The description is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (query, limit, offset, response_format) already has a clear explanation in the schema. The description adds minimal additional meaning beyond what the schema provides—it repeats the query semantics ('Ticker fragment or issuer-name phrase') and mentions pagination indirectly via 'pagination' in the return list. Since the schema carries the heavy lifting, a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search ticker symbols and issuer names') and identifies the resource ('LiveDataLink's bounded, self-hosted mirror of official SEC fails-to-deliver files'), clearly differentiating it from sibling tools like sec_ftd_compare, sec_ftd_history, sec_ftd_latest, and sec_ftd_top, which handle other aspects of FTD data. It also lists the returned fields (symbols, names, hosted coverage, counts, etc.), making the tool's function unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage examples ('find the FTD ticker for GameStop', 'which SEC fail records mention Tesla?') and explicitly states a primary use case ('resolve a symbol before a lookup'), which guides the agent on when to invoke this tool. It also gives a clear exclusion ('It does not expose licensed CUSIP identifiers'), preventing misuse. However, it does not explicitly mention sibling tools or when to prefer them, though the context is implied by the search-focused examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_ftd_topARead-onlyIdempotentInspect
Rank the largest ticker-level aggregate fails-to-deliver balances published by the SEC for one settlement date. Defaults to the latest date in the hosted snapshot and returns exact quantities, issuer labels, SEC price fields, total reported-symbol count, and provenance. Use this for 'largest SEC fail balances today', 'top FTD securities on 2026-08-14', or a market-structure screen. This is not a misconduct list or short-squeeze signal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum ranked symbols. Default 20. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| settlement_date | No | Settlement date in YYYY-MM-DD format, within the hosted hot window. |
TDQS
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 valuable behavioral context beyond annotations: it defaults to the latest settlement date, lists exactly what is returned (quantities, issuer labels, SEC price fields, total count, provenance), and clarifies that it is not a misconduct list or short-squeeze signal. This gives the agent a clear model of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. The action and resource lead the first sentence, followed by output details and default behavior, then usage examples and a caveat. Every sentence earns its place and the structure is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three optional parameters and strong safety annotations, the description is complete. It explains the ranking scope, the default date behavior, the exact output components, and provides user-facing example queries. There is no missing information an agent would need to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds a small but useful note that settlement_date defaults to the latest date in the hosted snapshot, which supplements the schema. No deeper parameter semantics are needed given the simple optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Rank') and a precise resource ('largest ticker-level aggregate fails-to-deliver balances published by the SEC for one settlement date'), which clearly defines the tool's scope. It also includes example queries that anchor the intended use, making it easy to distinguish from related FTD tools like sec_ftd_history or sec_ftd_search_securities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('Use this for 'largest SEC fail balances today', 'top FTD securities on 2026-08-14', or a market-structure screen') and a clear when-not ('This is not a misconduct list or short-squeeze signal'). It does not explicitly name alternative sibling tools, but the guidance is concrete enough to route an agent appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security_exposureARead-onlyIdempotentInspect
One-call known-vulnerability exposure for a vendor/product/package, built on the LiveDataLink cyber domain. Fans out to NVD (CVE search by vendor+product or keyword), the CISA KEV catalog (actively-exploited flag - the highest signal), FIRST EPSS (exploit-probability scores for the most-severe CVEs), and aggregates MITRE CWE weakness types from the matched CVEs. Returns total CVEs, counts by CVSS severity band, KEV membership with the actively-exploited CVEs listed, the highest EPSS score, the critical CVEs, top CWE weakness types, an overall exposure rollup (KEV present -> high), and an evidence list. No matches returns a friendly 0-exposure result; if the cyber source is unavailable that is noted per-source. Exactly one NVD call per invocation. INFORMATIONAL security research, not advice. Package-registry maintenance/staleness signals are out of scope for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor | No | Optional vendor to narrow the NVD CPE match (e.g. 'apache', 'openbsd'). | |
| product | Yes | Product or package name to assess (e.g. 'log4j', 'openssl', 'struts'). | |
| version | No | Optional version string (informational; shown in the report). | |
| max_cves | No | Max CVEs to pull from NVD for analysis (default 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses the exact fan-out to NVD, KEV, EPSS, and CWE; the detailed return fields including the 'KEV present -> high' rollup; no-match behavior returning 'a friendly 0-exposure result'; per-source unavailability notes; and 'Exactly one NVD call per invocation'. This gives the agent strong behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but dense and non-redundant, front-loading the core purpose before enumerating sources, outputs, and edge cases. Every sentence adds useful information, and the structure compensates for the lack of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining return values, and it does so thoroughly: counts, severity bands, KEV membership, EPSS, CWEs, exposure rollup, evidence list, no-match behavior, and source-unavailability handling. The multi-source aggregation is complex, and nothing critical to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents vendor, product, version, and max_cves with examples and defaults. The description adds little new parameter-level meaning beyond the 'Exactly one NVD call' hint, which clarifies max_cves does not multiply calls. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'One-call known-vulnerability exposure for a vendor/product/package' states a specific verb, resource, and scope. Its 'fans out to NVD... CISA KEV... FIRST EPSS... MITRE CWE' clearly distinguishes it from narrower siblings like cve_lookup, epss_score, or kev_status_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear context: use this aggregate tool when you need consolidated exposure for a vendor/product/package, reinforced by 'One-call' and the list of aggregated sources. It also states one exclusion ('Package-registry maintenance/staleness signals are out of scope'), though it does not explicitly name sibling alternatives such as kev_status_check or cve_search_by_keyword.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shipper_receiver_counterparty_packARead-onlyIdempotentInspect
Create an evidence-backed counterparty pack for a shipper, receiver, or both. Resolves canonical identifiers, SEC/GLEIF/USAspending/EPA identity signals, sanctions status, and public-record standing, then returns a review checklist for credit terms and load release. Name matches are candidates to verify; this is not a credit report or endorsement.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate either party. | |
| format | No | Report format. Defaults to markdown. | |
| shipper | No | Shipper legal or trading name. | |
| receiver | No | Receiver legal or trading name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds meaningful behavioral context: it resolves identity signals from specific sources (SEC/GLEIF/USAspending/EPA), checks sanctions and public-record standing, and returns a review checklist. It also transparently warns that name matches are candidates to verify, which is important uncertainty disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the core purpose, then adds sources, output, and caveats in a logical order. Every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity tool with no output schema, the description covers the main inputs, data sources, output type, and caveats. A minor gap is that both shipper and receiver are optional in the schema, and the description does not explicitly state that at least one should be provided, though 'a shipper, receiver, or both' implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add much parameter-level meaning beyond the schema, which is acceptable given the high coverage. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create an evidence-backed counterparty pack') for a specific scope ('a shipper, receiver, or both'), and it differentiates itself from related tools by focusing on shipper/receiver counterparty review rather than carrier vetting or generic company lookup. It also clarifies what the tool is not ('not a credit report or endorsement'), which strengthens the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: when credit terms and load release decisions need an evidence-backed counterparty review. It does not explicitly name alternative tools or state when-not-to-use conditions, so it falls short of a 5, but the context is clear 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.
source_snapshot_listARead-onlyIdempotentInspect
List the source ids that currently have versioned raw snapshots in LiveDataLink's private R2 evidence store. This reports hosted ingestion coverage; it does not imply that every catalog source already has a normalized query tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 cover safety. It adds context about the private R2 evidence store and the 'currently have' state, but does not describe pagination, output size limits, or other behavioral traits. This is adequate for a simple list but adds only modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence immediately states the verb, resource, and scope. The second sentence adds a clarifying caveat that prevents misinterpretation. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list operation, the description is nearly complete: it states what is listed, where the data lives, and what it does and doesn't mean. It does not specify the exact output format (e.g., array vs. object wrapper), but 'List the source ids' strongly implies a flat list. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters)Skip, so schema coverage is trivially 100%. Baseline for zero parameters is 4. The description adds semantic context about what the output represents (which sources have versioned raw snapshots), which is valuable since there is no output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a specific resource ('source ids that currently have versioned raw snapshots in LiveDataLink's private R2 evidence store'), and distinguishes its scope by noting what it does not imply (normalized query tool availability). An agent can clearly understand what this tool does and how it differs from other source-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states its purpose: 'reports hosted ingestion coverage.' It gives context for when this would be relevant (checking which sources have raw snapshots). It does not explicitly name alternative tools or exclusion conditions, but for a zero-parameter list tool, the guidance is sufficient and not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_snapshot_statusARead-onlyIdempotentInspect
Return the current immutable ingestion manifest for one self-hosted LiveDataLink source. Includes official source URL, retrieval time, rights class, byte counts, SHA-256 evidence, record counts when the transformer has computed them, and whether the raw artifact is stored as one object or reconstructable chunks. This is provenance/status, not a raw-data export.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | Catalog source id, for example cisa-kev, leie, fda-orange-book, ntsb-aviation, or cfpb-complaints. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description goes further by adding semantic guarantees: the manifest is 'immutable' and 'current', describes security evidence (SHA-256) and storage mode (one object vs reconstructable chunks), and clarifies that this is provenance/status data. This outweighs the annotation baseline with genuinely informative behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action and scope, followed by a compact bullet-style inventory of returned fields and a closing exclusion. Every clause carries signal and none repeat schema or annotation content. The format is easy to scan and mentally parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description fully covers what an agent needs: what status data is returned (explicit field list), how it relates to source_id, and the critical distinction that it is not a raw-data export. No essential behavioral or return-value information is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage and a single parameter whose description includes concrete catalog id examples, the schema already explains source_id well. The tool description adds only a contextual phrase that this is for 'one' source, which is helpful but not substantive beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') and a precise resource ('current immutable ingestion manifest for one self-hosted LiveDataLink source'), then enumerates the manifest's contents (URL, retrieval time, rights class, byte counts, SHA-256, record counts, chunking). The explicit clause 'This is provenance/status, not a raw-data export' further differentiates it from data-fetching tools and sibling source_snapshot_list visually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly narrows usage to one source ('for one self-hosted LiveDataLink source') and explicitly states what it is not ('not a raw-data export'), which helps an agent avoid invoking it for raw data retrieval. However, it stops short of naming a sibling alternative like source_snapshot_list or providing an explicit when-to-use vs when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spending_award_detailsARead-onlyIdempotentInspect
Get full detail for one federal award by its award id (the generated id from spending_search_awards): recipient, amount, type, awarding and funding agencies, period of performance, NAICS/PSC, place of performance, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| award_id | Yes | Generated award id from spending_search_awards. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate safety. The description adds the one-award scope and the field list, which is useful, but it does not disclose response shape, error behavior, or any other operational details. This matches the lower bar set by 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that front-loads the action and resource, then lists all relevant output fields with no filler. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool, the description is complete: it gives the input source, the scope, and the expected content of the response. With rich annotations and no output schema, this level of detail 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes award_id as 'Generated award id from spending_search_awards.' The description repeats that same provenance rather than adding new meaning, so it adds no value beyond the schema for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get full detail for one federal award by its award id.' It enumerates the exact information returned (recipient, amount, type, agencies, period, NAICS/PSC, place of performance, description), and the explicit link to spending_search_awards distinguishes it from the search/summary siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the intended workflow: first use spending_search_awards to get a generated award_id, then call this tool with that id for full details. It does not explicitly name alternatives such as spending_recipient_summary or state when not to use this tool, but the context strongly implies the correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spending_recipient_summaryARead-onlyIdempotentInspect
Summarize a company's federal awards: total dollars and top awards for a recipient name in a category (contracts by default). Useful for due diligence and to see who the government pays.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Top awards to list (default 5, max 25). | |
| category | No | Award category: 'contracts' (default), 'grants', 'loans', or 'other'. | |
| recipient | Yes | Recipient company/org name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the description's safety burden is lower. The description adds useful behavioral detail by specifying the output shape (total dollars and top awards), the category default, and the recipient-based aggregation, but it does not disclose data sources, time periods, or potential result limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence front-loads the core purpose and output, while the second adds a brief use-case rationale. Every clause contributes to agent understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with no output schema, the description gives a reasonable sense of what will be returned (total dollars and top awards) and the default category. However, it leaves ambiguity about the time period, whether totals are across all federal spending or a specific year, and what fields the 'top awards' include, which an agent might need to set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented with meaningful descriptions. The tool description adds little beyond reinforcing the recipient-name focus and the contracts default, which the schema already covers. A baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('a company's federal awards'), and clearly identifies the output: total dollars and top awards by recipient within a category. It implicitly distinguishes itself from sibling tools like spending_award_details and spending_search_awards by framing this as a summary view, though it does not name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers use-case context ('useful for due diligence and to see who the government pays') and notes the contracts default, which gives some guidance on when to invoke it. However, it does not explicitly compare against sibling tools such as spending_award_details or spending_search_awards, nor state when this tool should be preferred over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spending_search_awardsARead-onlyIdempotentInspect
Search federal awards (contracts, grants, loans) from USAspending.gov by recipient company, keyword, and/or awarding agency, with optional fiscal year and minimum amount. Returns each award's id, recipient, amount, awarding agency, type, start date, and description, sorted by amount.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 10, max 50). | |
| agency | No | Awarding agency name, e.g. 'Department of Defense'. | |
| keyword | No | Free-text keyword across the award. | |
| category | No | Award category: 'contracts' (default), 'grants', 'loans', or 'other'. | |
| recipient | No | Recipient company/org name, e.g. 'Lockheed Martin'. | |
| min_amount | No | Minimum award amount in USD. | |
| fiscal_year | No | Federal fiscal year, e.g. 2024. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive, so the description is not burdened with explaining safety. It adds useful behavioral context beyond annotations by specifying the data source, the returned fields per award, and the sort order by amount. This exceeds the baseline while remaining 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence that front-loads the tool's core purpose before listing filters and output fields. Every clause contributes useful information, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description explicitly lists the returned award fields and sort order. Combined with the fully documented input schema and safety-bearing annotations, an agent has enough information to select and invoke the tool correctly. Nothing essential for using this search tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description adds some semantic value by grouping the primary filters as 'by recipient company, keyword, and/or awarding agency' and labeling fiscal year and minimum amount as optional. However, it does not substantially enrich parameter meaning beyond what the schema already provides, 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.
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: 'Search federal awards (contracts, grants, loans) from USAspending.gov'. It enumerates the available filters and the exact returned fields, making the tool's purpose immediately clear. It also differentiates itself from sibling spending tools by emphasizing plural award search and per-award returned rows rather than a single award detail or recipient summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: when you need to find federal awards by recipient, keyword, agency, fiscal year, or minimum amount. It does not explicitly mention alternatives such as spending_award_details or spending_recipient_summary, and it provides no exclusion criteria, but the search-oriented framing and filter list give adequate contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_compareARead-onlyIdempotentInspect
Compare 2 to 5 stocks side by side. Returns price, daily change, market cap, P/E ratio, dividend yield, volume, 52-week range, sector, revenue, profit margin, EPS, and beta. Use this for "compare Apple and Microsoft", "which is a better investment, NVDA or AMD?", "tech stock comparison", or any stock-vs-stock analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Ticker symbols, 2-5 stocks. Accept either CSV string ("AAPL,MSFT,GOOGL") or array (["AAPL","MSFT","GOOGL"]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile, so the bar for the description is lower. The description adds meaningful behavioral context beyond annotations: the 2-5 stock input constraint and the complete list of 12 returned metrics, giving the agent a concrete expectation of output content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what it does, what it returns, and when to use it. The purpose is front-loaded in the first sentence, and although the field list is long, it is information-dense and directly useful to the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by explicitly listing all returned metrics. Input constraints, parameter formats, and usage examples are all present; only minor gaps remain, such as behavior for invalid or non-existent ticker symbols and data freshness, which are relatively unimportant for a single-parameter read-only comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the symbols parameter fully documented for both CSV string and array formats, so the schema carries the semantic burden. The description only restates the 2-5 range already in the schema and adds illustrative query examples, which is baseline value rather than new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Compare 2 to 5 stocks side by side' — a specific verb, resource, and range constraint. The enumerated return fields (price, P/E ratio, dividend yield, beta, etc.) go beyond what a single-stock quote tool would offer, making the purpose unambiguous and distinguishing it from siblings like stock_quote and stock_quote_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit example queries ('compare Apple and Microsoft', 'which is a better investment, NVDA or AMD?') and closes with 'any stock-vs-stock analysis', which gives clear context for when to use it. However, it never names alternative tools or states when not to use it (e.g., for a single stock quote or price history), stopping short of a full when/when-not treatment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_historyARead-onlyIdempotentInspect
Get historical stock price data - open, high, low, close, and volume (OHLCV). Supports intraday (1-minute) through multi-year (5-year, max) ranges. Use this for "how has AAPL performed this year?", "show me the price chart for Tesla", "what was the stock price last month?", "historical performance", or any stock price history question.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time range (default: "1mo") | |
| symbol | Yes | Stock ticker symbol (e.g., "AAPL") | |
| interval | No | Data interval (default: "1d") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavioral context on the data shape (OHLCV) and supported time ranges. It does not disclose the response format, behavior for invalid tickers, or whether prices are adjusted for splits/dividends, but with annotations carrying the safety burden, the added context is sufficient for a baseline 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, followed by a concise range statement and then example queries. The example list is slightly long (four examples plus a catch-all), but each example is short and adds practical routing value for an agent. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with three parameters and annotations covering the safety profile, the description is largely complete: it names the returned data concept (OHLCV), the supported ranges, and typical query phrasings. The main gap is the lack of an output schema combined with no mention of the exact response structure, but naming the OHLCV fields partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — symbol, period, and interval each have documented descriptions and period/interval have enums. The description adds light value by linking period concepts to real queries (e.g., 'what was the stock price last month?' maps to period=1mo, '1-minute' maps to interval=1m), but the schema already does the heavy lifting, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get historical stock price data') and enumerates the data fields (open, high, low, close, volume). It conveys the temporal scope (intraday through multi-year). It distinguishes from siblings like stock_quote and stock_compare implicitly through the word 'historical' and the example queries, but it never names an alternative explicitly, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete example queries ('how has AAPL performed this year?', 'show me the price chart for Tesla', 'what was the stock price last month?') that clearly signal when to invoke this tool versus stock_quote or stock_compare. However, it does not state when NOT to use it or name alternative tools for current pricing, 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.
stock_quoteARead-onlyIdempotentInspect
Get the latest available stock price and market data. Returns current price, daily change, volume, market cap, P/E ratio, dividend yield, 52-week high/low, open, and previous close. Use this for "what's the stock price of X?", "how is AAPL doing?", "check the market", "what's Apple trading at?", or any stock/equity price question.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol (e.g., "AAPL", "MSFT", "TSLA") |
TDQS
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 safe read-only nature is covered. The description adds useful behavioral detail about what market data fields are returned (volume, market cap, P/E ratio, etc.) but does not discuss data latency, market hours, symbol validity, or error behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and includes both return fields and representative user queries. It is reasonably concise, though the long field list could be slightly trimmed without losing critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with no output schema, the description is largely complete: it states what the tool does, what data it returns, and when to use it. It does not cover edge cases such as invalid symbols, market closure behavior, or data delay, but those are not critical for selecting and invoking a basic stock quote tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter, symbol, is already described with examples in the input schema. The description does not add additional semantic meaning beyond restating that this handles stock price questions, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the latest available stock price and market data for a single symbol, which is a specific verb+resource. It differentiates from siblings like stock_history and stock_quote_batch by emphasizing 'latest available' and singular stock/equity price questions, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete example queries ('what's the stock price of X?', 'how is AAPL doing?') and says to use it for any stock/equity price question. This provides clear context for when the tool is appropriate, but it does not mention exclusions or direct users to alternatives for history, comparison, or batch quotes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_quote_batchARead-onlyIdempotentInspect
Get the latest available stock prices for multiple stocks at once (up to 10). Returns a comparison table with price, daily change, volume, market cap, and P/E. Use this for "show me FAANG stocks", "compare tech stock prices", "how are energy stocks doing?", or any multi-stock price check.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Ticker symbols, max 10. Accept either CSV string ("AAPL,MSFT,GOOGL") or array (["AAPL","MSFT","GOOGL"]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior, so the description's additional context is useful rather than required. It adds the 'latest available' freshness qualifier, the 10-symbol cap, and the output shape (comparison table with specific fields). It does not discuss possible data delays, invalid ticker handling, or response ordering, but these are minor for a safe read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action and limit come first, followed by output details and concrete example queries. Every sentence contributes value, and the structure is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, full schema coverage, and strong safety annotations, the description is largely complete for selection and invocation. It covers scope, the symbol limit, and return fields, which compensates for the absence of an output schema. A brief note on using stock_quote for a single symbol or on invalid symbol behavior would improve it further, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter, symbols, including accepted formats (CSV string or array) and the maximum of 10. Since schema description coverage is 100%, the description does not need to add much. It restates 'up to 10' and 'multiple stocks', but adds no substantive semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and scope: 'Get the latest available stock prices for multiple stocks at once (up to 10)' and enumerates the returned comparison fields (price, daily change, volume, market cap, P/E). This distinguishes it from a single-stock quote tool, though it does not explicitly disambiguate from the sibling stock_compare, and its example 'compare tech stock prices' could overlap with that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit example use cases ('show me FAANG stocks', 'compare tech stock prices', 'how are energy stocks doing?') and a general rule ('any multi-stock price check'). It gives clear context for when to use the tool, but it does not explicitly state when not to use it or name single-stock alternatives like stock_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sun_timesARead-onlyIdempotentInspect
Compute sunrise, sunset, solar noon, and civil twilight for any latitude/longitude on a given date. Times are computed in code from the standard NOAA solar-position equations (no third-party API is called, so the result is dependency-free and resale-safe). Times are returned in UTC by default; pass tz_offset (hours from UTC, e.g. -7 for US Pacific Daylight Time) to shift the output to local clock time. Polar day and polar night are reported when the sun does not rise or set. Use it for daylight planning, photography golden-hour timing, or agriculture and energy calculations.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees (positive north). | |
| lon | Yes | Longitude in decimal degrees (negative west). | |
| date | No | Date, 'YYYY-MM-DD'. Defaults to today (UTC). | |
| tz_offset | No | Hours from UTC applied to output times, e.g. -7 for US Pacific Daylight Time. Default 0 (UTC). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only/idempotent, and the description adds useful non-obvious behavior: computation is local via NOAA equations (no third-party API), outputs default to UTC with a tz_offset shift option, and polar day/night are represented explicitly. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, implementation detail, timezone behavior, edge cases, and use cases. The main action is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateless calculation with a complete schema, it covers inputs, defaults, timezone behavior, edge cases, and use cases. It stops short of specifying the exact return object/field names, which would matter more if an output schema were absent; still, enough information is present for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter with defaults and examples. The description restates the tz_offset behavior rather than adding new parameter semantics; the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Compute') and exact resource ('sunrise, sunset, solar noon, and civil twilight') plus the required scope (latitude/longitude/date). This clearly differentiates it from geospatial or weather siblings such as tide_predictions or nrel_solar_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit application contexts: daylight planning, photography golden-hour timing, agriculture, and energy calculations. It does not name alternatives or exclusions, but among the sibling list there is no direct equivalent, so the use-case guidance is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supplier_esg_scorecardARead-onlyIdempotentInspect
One-call, source-linked ESG / supplier-risk signal read for a company. Joins three public-record governance-signal legs: EPA ECHO/FRS environmental compliance (significant-non-compliance flags, non-compliant quarters, penalties, and formal enforcement actions across the company's facilities, with correct filtering so clean 'No Violation Identified' statuses are never flagged), product recalls (CPSC consumer products + openFDA drug/device/food, keyed by the company), and federal-court litigation (CourtListener v4 dockets whose caption actually names the company). Returns a readable scorecard across Environmental / Product-safety / Litigation dimensions with a rolled-up read (LOW / MODERATE / ELEVATED ESG risk signals) and the evidence behind each. A leg that fails is noted, not fatal. This is informational public-record synthesis of ESG/supplier-risk signals, not an ESG rating, credit/background report, or investment advice. Review source terms before redistributing results.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate the EPA facility search (e.g. 'PA'). | |
| company | Yes | Company / supplier name to score (e.g. 'US Steel', 'Tyson Foods'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, openWorld, idempotent, non-destructive), the description discloses important behavioral details: the filtering nuance so clean 'No Violation Identified' statuses are never flagged, the fact that a failed leg is noted but not fatal, the returned risk levels (LOW/MODERATE/ELEVATED), and the informational limitations with a redistribution caveat. This is excellent transparency for a composite tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: scope, data sources, filtering nuance, output format, failure handling, and usage caveats are all covered without repetition. It is appropriately front-loaded with the core purpose and then adds necessary detail for a multi-source tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description fully explains what the agent can expect: a scorecard across Environmental, Product-safety, and Litigation dimensions with a rolled-up risk read and supporting evidence. It also covers edge behavior (failed leg handling) and legal/informational boundaries, making it complete for invocation and result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds mild context by explaining the state parameter disambiguates the EPA facility search and the company parameter names the entity to score, but it does not add substantial meaning beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it returns a one-call, source-linked ESG/supplier-risk scorecard for a company. It explicitly names the three data legs (EPA ECHO/FRS compliance, product recalls, federal-court litigation) and distinguishes itself from single-source sibling tools like epa_facility_compliance or cpsc_recall_search by being a composite synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: use this when you want a rolled-up ESG/supplier-risk signal across environmental, product-safety, and litigation evidence in one call. However, it never explicitly states when not to use it or names alternatives such as epa_enforcement_search or court_case_search for deeper single-source investigation, so routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
support_resistance_levelsARead-onlyIdempotentInspect
Return key support/resistance price levels for a US ticker from recent daily pivots (swing highs/lows) plus nearby round-number levels, with the latest close for context. HEURISTIC levels for research, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | US ticker (e.g. 'TSLA'). | |
| lookback_days | No | Trailing daily bars to derive levels from (default 180). |
TDQS
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 meaningful behavioral context beyond those flags: the levels are 'HEURISTIC,' derived from recent daily pivots with round-number levels, and the latest close is included for context. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The main function comes first, followed by methodology and a caveat. Every clause contributes meaning, and the most important caveat ('not investment advice') is placed at the end without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, two-parameter, read-only tool, this description covers the output type, calculation source, and heuristic nature; the schema covers parameters, and there is no output schema to explain. The only notable omission is explicit differentiation from alternative technical-analysis tools, but nothing critical to correctly invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already documents symbol with an example and lookback_days with a default value. The tool description does not add any extra parameter nuance 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Return') and names the exact resource ('key support/resistance price levels for a US ticker'), then details the method ('recent daily pivots (swing highs/lows) plus nearby round-number levels'). It also mentions the latest close and adds a clear heuristic/research caveat, making the tool instantly distinguishable from siblings like stock_quote or candlestick_signals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'HEURISTIC levels for research, not investment advice' supplies clear context about when and how to use the output, and the overall scope implies a technical-analysis use case. However, it does not explicitly name alternatives (e.g., bounce_scanner, stock_history) or state exclusions, 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.
talent_market_briefARead-onlyIdempotentInspect
One-call 'can I hire this role here, and at what cost' read for an occupation in a US geography. Joins two independent federal sources: BLS OEWS (Occupational Employment and Wage Statistics, keyless) for the occupation's employment LEVEL and wage distribution (mean plus 10th / 50th-median / 90th annual percentiles) in the area, and US Census ACS labor-force context (civilian labor force and local unemployment rate - needs a Census API key) to band how TIGHT / BALANCED / SLACK the local hiring market is. Pass an 'occupation' (e.g. 'registered nurses', 'software developers') or an explicit 'soc_code' (e.g. '29-1141'), and an optional 'state' or 'metro' (defaults to national). Returns a readable brief with a headline (employment, median/mean wage, market tightness), the wage percentiles, and per-source evidence. The BLS OEWS leg is the core signal and is keyless; the Census leg degrades gracefully if no key is set. Informational, NOT a guarantee that a role can be filled at any given wage.
| Name | Required | Description | Default |
|---|---|---|---|
| metro | No | Optional 5-digit CBSA/metro code (e.g. '12420' Austin, TX). OEWS metro coverage varies; an unmatched metro is noted, not fatal. | |
| state | No | Optional 2-letter state code or 2-digit FIPS (e.g. 'TX', '48'). Omit for a national read. | |
| soc_code | No | Explicit 6-digit SOC occupation code, with or without a dash (e.g. '29-1141' registered nurses, '15-1252' software developers). Overrides 'occupation'. | |
| occupation | Yes | Free-text occupation to map to a SOC code (e.g. 'registered nurses', 'software developers', 'electricians'). Provide this or 'soc_code'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal read-only, idempotent, non-destructive behavior. The description goes well beyond that by disclosing the two-source composition, that the BLS leg is keyless, that the Census leg requires an API key and degrades gracefully, and that the output is informational and not a hiring guarantee. It also notes that unmatched metros are flagged rather than fatal. This is exemplary behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then moves logically through data sources, input options, output format, and key caveats. Though long, every sentence carries meaningful information; there is no fluff or repetition. The structure makes the complexity easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description correctly takes responsibility for explaining what the caller receives: a readable brief with a headline, wage percentiles, and per-source evidence. Combined with parameter guidance, data-source requirements, and failure-mode notes, the description gives an agent everything needed to invoke the tool correctly and interpret its response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all four parameters at 100% coverage, so the baseline is 3. The description adds meaning beyond the schema by stating national defaults, the occupation-or-soc_code usage pattern, and the metro coverage caveat. That lifts it above the baseline, though much of the schema already covers the override and example details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific, memorable framing: one-call 'can I hire this role here, and at what cost' read. It clearly names the resource (occupation in a US geography), the core behavior (joins BLS OEWS and Census ACS), and even differentiates itself from raw sibling data tools by emphasizing the joined, brief-producing nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states exactly what kind of query this answers and how to invoke it: pass an occupation or soc_code, plus optional state or metro. It does not explicitly name sibling alternatives or say when NOT to use this tool, but the context strongly implies it is the composite choice versus single-source tools like bls_series or census_demographics. That is clear enough but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ted_opportunity_radarARead-onlyIdempotentInspect
Find traceable EU procurement opportunities from official TED notices using one of two explainable signals: contracts with reported end dates in a chosen window (renewal) or award results reporting zero received submissions (zero_bid). Filters by buyer country and CPV code. This does not predict awards or allege fraud.
| Name | Required | Description | Default |
|---|---|---|---|
| cpv | No | Optional 8-digit CPV code; TED's hierarchy may include child codes. | |
| page | No | 1-based result page; default 1. | |
| limit | No | Maximum notices; default 20. | |
| signal | Yes | Opportunity signal to retrieve. | |
| country | No | Optional ISO alpha-3 buyer country, e.g. DEU, FRA, NLD. | |
| end_date | No | YYYY-MM-DD upper bound. Defaults to 180 days after start_date. | |
| start_date | No | YYYY-MM-DD. For renewal, contract-end lower bound; for zero_bid, notice publication lower bound. Defaults to today (renewal) or 180 days ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds meaningful context beyond the annotations by explaining that the tool uses 'two explainable signals' and that it 'does not predict awards or allege fraud,' which sets honest expectations about the tool's analytical scope. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states the core function and signals, the second lists filters, and the third bounds expectations. The most important information is front-loaded, and there is no verbose or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The combination of a well-described schema, safe annotations, and a clear description covers most of what an agent needs to select and invoke the tool. The main gap is that with no output schema, the description does not preview what a result entry contains, but for an opportunity-finding read tool this is not a blocking omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is strong. The description adds value beyond the schema by defining the two signal enum values in plain terms: 'contracts with reported end dates in a chosen window' for renewal and 'award results reporting zero received submissions' for zero_bid. It also highlights the CPV and buyer-country filters that directly map to the cpv and country parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Find traceable EU procurement opportunities from official TED notices.' It further narrows the tool by naming its two concrete signals, renewal and zero_bid, and states the relevant filters (buyer country, CPV code). This clearly distinguishes it from the sibling ted_search_notices, which would handle broader TED notice searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear when-to-use context: when the agent needs traceable procurement opportunities based on renewal or zero-bid signals rather than generic TED notice search. It adds a useful boundary with 'This does not predict awards or allege fraud,' which tells the agent this tool is not for award forecasting or fraud claims. However, it does not explicitly name an alternative tool or specify when to prefer a sibling tool such as ted_search_notices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ted_search_noticesARead-onlyIdempotentInspect
Search the official EU Tenders Electronic Daily (TED) corpus with a bounded expert query. Returns latest notice versions with English-preferred titles, buyers, countries, CPV codes, lot signals, official URLs, pagination metadata, and source caveats. Anonymous and read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based result page; default 1. | |
| limit | No | Maximum notices; default 20 and maximum 50. | |
| query | Yes | TED Expert Search query, e.g. 'publication-date >= 20260901 AND buyer-country = DEU'. Maximum 500 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds 'Anonymous and read-only,' which is redundant with the annotations. It also lists the kinds of data returned (e.g., 'English-preferred titles, buyers, countries, CPV codes'), which is helpful but does not disclose any additional behavioral traits such as pagination behavior, rate limits, or state changes. Since the annotations cover the core safety attributes, the description provides modest extra context but not substantial behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, then enumerates return fields and caveats. Every clause adds information—there is no fluff. It avoids redundant restatement of the tool name and is appropriately sized for a search tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description does a good job: it states the query nature, enumerates returned fields (titles, buyers, countries, CPV codes, lot signals, URLs, pagination metadata, source caveats), and notes it is anonymous/read-only. It could be more explicit about pagination usage (e.g., that results are paginated and how page/limit control navigation), but the schema already provides parameter descriptions and the example clarifies the query syntax. The lack of a deep explanation of the 'bounded expert query' syntax is partially mitigated by the schema example. Overall, it is fairly complete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes all three parameters: query includes a concise example and maximum length, page and limit have clear descriptions. Schema description coverage is 100%, so per the rubric the baseline is 3. The tool description itself does not add any parameter-level semantics beyond the schema; it only mentions pagination metadata in the return list, not how to use the parameters. Thus the schema carries the burden and is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search the official EU Tenders Electronic Daily (TED) corpus with a bounded expert query.' It identifies the specific resource (TED corpus), the verb (search), and the distinguishing characteristic ('bounded expert query'). It also lists the returned data fields, making the purpose unmistakable. While it does not explicitly contrast with sibling tools like ted_opportunity_radar, the specificity is sufficient for an agent to understand 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives. The phrase 'bounded expert query' hints at a specialized use case, but it does not state conditions for choosing this tool over others (e.g., ted_opportunity_radar) or mention any exclusions, prerequisites, or alternative scenarios. The description only notes that it is 'Anonymous and read-only,' which is a trait, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tide_predictionsARead-onlyIdempotentInspect
Return high and low tide predictions (times and heights) from the keyless NOAA Tides & Currents (CO-OPS) public API - U.S. Government public-domain data. Give either a NOAA station id (e.g. '9414290' for San Francisco) or a lat/lon (the nearest tide-prediction station is chosen automatically). Returns each high and low tide over the requested inclusive date range, in local station time, relative to the chosen tidal datum (default MLLW). Use it for tide tables, beach and boating planning, or coastal scheduling.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Used with lon to pick the nearest station when no station id is given. | |
| lon | No | Longitude in decimal degrees (negative west). | |
| datum | No | Tidal datum: MLLW, MSL, MHW, etc. Default MLLW. | |
| units | No | 'english' (feet) or 'metric' (meters). Default english. | |
| station | No | NOAA CO-OPS station id, e.g. '9414290'. Optional if lat and lon are given. | |
| end_date | No | End date (inclusive), 'YYYY-MM-DD'. Defaults to begin_date + 1 day. | |
| begin_date | No | Start date (inclusive), 'YYYY-MM-DD'. Defaults to today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, openWorldHint, non-destructive), the description discloses several non-obvious behaviors: no API key is required, lat/lon input silently selects the nearest prediction station, results are in local station time, and values are relative to a tidal datum (default MLLW). These are operationally important traits the annotations do not cover. No contradiction with the annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with the core function front-loaded in sentence one. Each sentence earns its place: function and data source, input modes (station vs lat/lon), output characteristics (times, heights, local time, datum), and use cases. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description carries the output burden and does so well: it characterizes the return as high/low tide times and heights per day over an inclusive range, in local time, datum-relative. It also covers input alternatives and defaults. Minor gaps remain — failure modes for invalid station IDs or date ranges and any limits on range length — but nothing that would block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — all 7 parameters have descriptions, so the baseline is 3. The description largely restates schema content (the '9414290' station example, MLLW default, inclusive date ranges). It adds only marginal interpretive value, such as flagging that results are in local station time, which affects how begin_date/end_date should be interpreted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource: 'Return high and low tide predictions (times and heights) from the keyless NOAA Tides & Currents (CO-OPS) public API'. The data source (NOAA CO-OPS) and output type (high/low tides) make it easy to distinguish from environmental siblings like weather_current, weather_forecast, sun_times, and water_levels without 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence gives explicit use-case routing: 'Use it for tide tables, beach and boating planning, or coastal scheduling.' This tells an agent when to select this tool. However, it does not name alternatives or state when NOT to use it (e.g., real-time observed water levels would belong to the water_levels sibling), leaving exclusions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_auctionsARead-onlyIdempotentInspect
Recent US Treasury securities auction results: term, CUSIP, issue/maturity dates, high yield, interest rate, bid-to-cover ratio, and amounts. Optionally filter by security type (Bill, Note, Bond, TIPS, FRN).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| security_type | No | Filter by security type: 'Bill', 'Note', 'Bond', 'TIPS', 'FRN'. |
TDQS
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 data scope and the filtering option, but does not disclose behavioral details such as the recency window behind 'Recent', default row count, or sort order. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the first names the resource and its return fields, the second covers the optional filter. The main purpose is front-loaded ahead of the filtering detail, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters, full schema coverage, and strong annotations, the description is nearly complete. The listed fields compensate for the absence of an output schema. The only gap is the vague 'Recent' qualifier — no recency window is specified — and no mention of default limit behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit and security_type) are already documented in the schema. The description adds the security type filter and its enum values (Bill, Note, Bond, TIPS, FRN), which slightly reinforces but does not meaningfully exceed what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('recent results') and a precise resource (US Treasury securities auction results), then enumerates the exact fields returned (term, CUSIP, dates, high yield, rate, bid-to-cover, amounts). This is easily distinguished from the treasury_* siblings like treasury_interest_rates, treasury_debt, and treasury_cash_balance, which cover different data domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it — whenever auction results are needed — and states the optional filter by security type. However, it does not explicitly name alternatives or exclusion conditions (e.g., 'for current market rates use treasury_interest_rates instead'), leaving sibling differentiation to inference from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_cash_balanceBRead-onlyIdempotentInspect
Daily operating cash balance of the US Treasury (the Treasury General Account, the government's checking account at the Fed), from the Daily Treasury Statement. Values are in millions of dollars.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. |
TDQS
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 needs to add context beyond that. It adds the data source and unit, but does not disclose other operational traits such as default time range, ordering, or whether results are latest-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the key resource and scope front-loaded and the unit clarification placed immediately. No filler or redundant phrasing is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter read-only tool, the description provides the data source, the specific account, and the unit of measurement. It does not document the response shape or date-range behavior, but the daily-series implication and available annotations make the tool callable without major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'limit' is already fully documented in the schema as 'Max rows to return,' giving 100% schema description coverage. The description adds no extra meaning about default behavior or maximum allowed values, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as the US Treasury's daily operating cash balance (Treasury General Account) and scopes it to data from the Daily Treasury Statement with values in millions of dollars. It is distinguishable from treasury_debt, treasury_auctions, and treasury_interest_rates, though it lacks an explicit action verb such as 'list' or 'get.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool versus treasury_debt, treasury_auctions, treasury_exchange_rates, or treasury_interest_rates, nor does it describe exclusions or alternatives. The intended use must be inferred entirely from the resource name and noun-phrase description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_debtARead-onlyIdempotentInspect
US total public debt outstanding (the 'Debt to the Penny' series from the US Treasury). Returns the most recent figure plus history, split into debt held by the public and intragovernmental holdings. Keyless, official Treasury data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| end_date | No | Latest record date (YYYY-MM-DD). | |
| start_date | No | Earliest record date (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds meaningful context beyond the annotations: the data source, the fact that both the most recent figure and history are returned, the split between public debt and intragovernmental holdings, and the keyless access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences convey the subject, source, return content, breakdown, authentication need, and data authority. There is no filler, and 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only data tool with fully documented optional parameters and strong annotations, the description is nearly complete. It tells the agent what data is returned and that no key is needed, though it could have briefly noted date-range/limit behavior or explicitly distinguished itself from the other treasury_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meanings are already documented. The description adds only a generic sense that history and a latest figure are available, but it does not clarify how limit/start_date/end_date interact or what defaults apply. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('US total public debt outstanding', the 'Debt to the Penny' series), a clear action ('Returns...'), and the data breakdown (public versus intragovernmental holdings). This is enough to distinguish it from sibling treasury tools like treasury_cash_balance or treasury_interest_rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the explicit resource description, and the 'Keyless, official Treasury data' note is a useful usage affordance. However, there is no explicit guidance on when to choose this tool over related Treasury siblings, nor any exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_exchange_ratesARead-onlyIdempotentInspect
Official US Treasury Reporting Rates of Exchange (the rates US government agencies use to convert foreign currency balances to dollars). Published quarterly. Provide a country or currency to filter, e.g. 'Canada', 'Euro', 'Yen'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| query | No | Country or currency name to match, e.g. 'Canada', 'Euro Zone', 'Japan'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and openWorld traits. The description adds useful context about the source, quarterly cadence, and filtering, but does not disclose details like the shape of returned rows or what happens when no query is supplied. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with the resource definition front-loaded, followed immediately by a usage example. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, optional-parameter read-only lookup with no output schema, the source, cadence, and filter examples give an agent enough to select and invoke the tool. It could add a sentence on what the returned rate rows contain, but this is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both query and limit are documented there. The description restates the query semantics and provides examples, but does not add meaning beyond the schema aside from illustrating acceptable inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (US Treasury Reporting Rates of Exchange), its purpose (converting foreign currency balances to dollars), and a concrete filtering action. This distinguishes it from treasury siblings such as treasury_interest_rates, treasury_auctions, and treasury_cash_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: the tool serves official government exchange-rate data published quarterly, and tells the agent to provide a country or currency filter with examples. It does not explicitly name alternatives or state when not to use it, 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.
treasury_interest_ratesBRead-onlyIdempotentInspect
Average interest rates the US Treasury pays on its marketable and non-marketable securities (Treasury Bills, Notes, Bonds, TIPS, etc.), by month. Optionally filter by security description.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| security | No | Filter by security type/description, e.g. 'Treasury Notes', 'Bills', 'TIPS'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive, so the description only needs to add behavioral context. It does add useful context by stating the data is monthly and optionally filterable by security description, but it does not disclose default limits, date-range behavior, or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The core subject is front-loaded, the optional filter is stated plainly, and every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two optional parameters and full schema coverage, the description allows a basic call to be made correctly. However, with no output schema, it does not clarify the return format, default row count, or how far back the monthly history goes, which leaves some practical ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'limit' and 'security'. The description reinforces the security parameter by naming Treasury Bills, Notes, Bonds, and TIPS, but it adds nothing about the 'limit' parameter beyond what the schema provides. This matches the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: average interest rates on US Treasury marketable and non-marketable securities, broken down by month. It is distinct enough from siblings like treasury_exchange_rates, though it lacks an explicit verb such as 'Returns' and does not directly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over related siblings such as treasury_auctions, treasury_exchange_rates, or treasury_debt. There is no conditional context, no exclusions, and no mention of alternatives, leaving the selection decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_tic_compare_holdersARead-onlyIdempotentInspect
Which of two to eight MFH holders changed Treasury holdings most between two exact months? Resolves stable ids, requires primary observations at both endpoints, and ranks by absolute USD-million change. Returns endpoint values, absolute/percent change, raw source line references, provenance, and custodial/methodology caveats. Comparisons across pre-2011 benchmark breaks describe published estimates and are not beneficial-owner flows.
| Name | Required | Description | Default |
|---|---|---|---|
| holders | Yes | Two to eight distinct exact holder ids or unambiguous published labels. | |
| end_month | Yes | Exact calendar month in YYYY-MM format. | |
| start_month | Yes | Exact calendar month in YYYY-MM format. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the readOnly/idempotent annotations by disclosing that results carry provenance, raw source line references, and custodial/methodology caveats, and by flagging that pre-2011 comparisons describe published estimates rather than beneficial-owner flows. That is meaningful methodological context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core question, then constraints, then output contents, then the caveat. Nothing is filler, though the final caveat sentence is long and could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully enumerates returned fields (endpoint values, absolute/percent change, sources, provenance, caveats), so an agent knows what to expect. Coverage is strong for a read-only analysis tool; only explicit sibling routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the 2-8 holder bound and the exact-month requirement, but adds no format or resolution detail (e.g. how 'unambiguous published labels' are matched) beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare) and resource (MFH Treasury holders), with the exact scope: two to eight holders, two exact months, ranked by absolute change. It clearly distinguishes itself from siblings like treasury_tic_rank_holders and treasury_tic_holder_history by framing the operation as an endpoint-to-endpoint comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real precondition: primary observations are required at both endpoints, so the agent knows the input assumptions. However, it never explicitly names the sibling alternatives (find_holders, rank_holders, holder_history) or says when this comparison is preferable to them, leaving that routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_tic_find_holdersARead-onlyIdempotentInspect
Which holder names and stable ids are available in the hosted Treasury International Capital Major Foreign Holders archive? Searches publisher-listed holders, historical aggregates, totals, residuals, and foreign-official memorandum rows. Returns primary-series coverage, latest value, pagination, immutable source hashes, run id, and caveats. Use this before history or comparison when a label is uncertain; this is not the complete TIC country universe.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches. Default 20. | |
| query | No | Optional case-insensitive fragment of a holder label or id. | |
| offset | No | Matches to skip. Default 0. | |
| entity_type | No | Optional exact normalized row class. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavior: what the response carries (primary-series coverage, latest value, pagination, source hashes, run id, caveats) and the incomplete-universe caveat, which is important for an open-world lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences with no filler, opening with the framing question and then moving to scope, output, and usage. Slightly less front-loaded than ideal because the usage cue arrives last, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry return-value information, and it does (coverage, latest value, pagination, hashes, run id, caveats). Combined with the explicit scope exclusion, an agent has enough to call it correctly, though the exact shape of a match record is still unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, query, entity_type and response_format are already documented. The description's list of row classes loosely echoes the entity_type enum values but adds no syntax or filtering detail beyond the schema; a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (find/search) and resource (holder names and stable ids in the hosted TIC Major Foreign Holders archive), and it enumerates the row classes it scans. It is clearly distinguishable from siblings such as treasury_tic_holder_history, treasury_tic_compare_holders, and treasury_tic_rank_holders, which operate on already-identified holders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this before history or comparison when a label is uncertain" gives an explicit trigger condition plus the sequencing relative to other tools. It also bounds scope ("not the complete TIC country universe"), but the sibling tools are not named outright, so the routing is inferred rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_tic_holder_historyARead-onlyIdempotentInspect
How did one publisher-listed major foreign holder's U.S. Treasury holdings change over a fixed monthly window? Returns bounded/paginated holdings in integer USD millions, exact month, primary/comparison-series identity, raw-asset line references, snapshot vintage, hashes, and methodology caveats. Primary values are returned by default; set include_comparison_series only to inspect duplicate benchmark-break comparison columns.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum observations. Default 24. | |
| holder | Yes | Exact MFH holder id or unambiguous published label. Use treasury_tic_find_holders first if unsure. | |
| offset | No | Observations to skip. Default 0. | |
| end_month | No | Exact calendar month in YYYY-MM format. | |
| start_month | No | Exact calendar month in YYYY-MM format. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| include_comparison_series | No | Include separately preserved prior-series comparison values at historical breaks. Default false. |
TDQS
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 covered. The description adds real behavioral context beyond that: bounded/paginated output, integer USD millions, exact-month alignment, snapshot vintage, hashes, and methodology caveats, plus a clear default-vs-opt-in rule for comparison series.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening question front-loads the scope, followed by a compact list of returned fields and a clear default-behavior sentence. The middle sentence is dense with a comma list but every item earns its place by describing the return payload; only the question framing is mildly indirect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return values and does so (holdings units, month, series identity, line references, vintage, hashes, caveats). Combined with full schema coverage and rich annotations, an agent has enough to invoke it correctly, though the absence of explicit sibling routing keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters including the enum and the include_comparison_series default. The description reinforces the comparison-series semantics ('duplicate benchmark-break comparison columns') but adds little to the pagination or date parameters beyond what the schema states, so this sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('holder's U.S. Treasury holdings change over a fixed monthly window') and scopes it to 'one publisher-listed major foreign holder,' which implicitly separates it from the sibling tools that compare or rank multiple holders. It stops just short of explicitly naming those alternatives, so sibling differentiation is inferable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the 'one holder' framing and the guidance on include_comparison_series, but the description never states when to pick this tool over treasury_tic_compare_holders or treasury_tic_rank_holders. The helpful 'Use treasury_tic_find_holders first if unsure' hint lives in the holder parameter's schema, not the description, so tool-selection guidance is only partially present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_tic_rank_holdersARead-onlyIdempotentInspect
Which named major foreign holders had the largest Treasury holdings in a specified month? Ranks only the named holder rows published in Treasury's MFH table, excluding Grand Total, All Other, and foreign-official memo rows. Historical publisher aggregates are excluded unless requested. Returns bounded pagination, integer USD millions, exact source lines, hashes, vintage, and the custodial-attribution caveat. If month is omitted, uses the hosted snapshot vintage.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum ranked rows. Default 20. | |
| month | No | Exact calendar month in YYYY-MM format. | |
| offset | No | Ranked rows to skip. Default 0. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. | |
| include_historical_aggregates | No | Include discontinued publisher aggregates such as Oil Exporters in older rankings. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds genuine behavioral context beyond them: bounded pagination, integer USD millions, exact source lines, hashes, vintage, and a custodial-attribution caveat, plus the default to the hosted snapshot vintage when month is omitted. It does not discuss auth or rate limits, but given the lower bar set by annotations this is a strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening question front-loads the core purpose and the following sentences are information-dense with little waste. It is slightly run-on and the aggregates-exclusion clause partially duplicates the schema's include_historical_aggregates description, which keeps it out of the top tier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of return-value context and does so by listing pagination bounds, units, source lines, hashes, vintage, and the caveat. All five parameters are documented in schema and partly contextualized here. It is complete enough to call correctly, with only minor gaps around offset/limit semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage the baseline is 3, and the description earns credit by adding behavior the schema does not state: month defaults to the hosted snapshot vintage, and historical aggregates are opt-in via include_historical_aggregates. Pagination and unit expectations are reinforced. It still doesn't clarify limit/offset interactions, so it does not reach the top.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (rank) and resource (named major foreign holders of Treasury securities) and frames it as a question that pins down the scope. It clearly distinguishes a ranking tool from discovery/comparison siblings by naming the excluded row types (Grand Total, All Other, foreign-official memo rows). It stops short of explicitly contrasting with treasury_tic_find_holders, treasury_tic_compare_holders, or treasury_tic_official_share, so it is clear but not sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the reader can infer you call this to get a ranked list and set include_historical_aggregates to opt in to legacy rows. No explicit when-to-use vs alternatives guidance names a sibling such as find_holders or compare_holders. The exclusion rules describe scope rather than routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trials_detailsARead-onlyIdempotentInspect
Get full detail for one clinical trial by its NCT id (e.g. 'NCT02562313'): title, status, conditions, sponsor, phase, interventions, brief summary, enrollment, start/completion dates, number of sites, and the study URL.
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | ClinicalTrials.gov NCT id, e.g. 'NCT02562313'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive operation, so the safety profile is covered. The description adds value by specifying exactly what the response contains, including study status, sponsor, phase, enrollment, dates, site count, and URL. No behavioral contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence conveys the operation, the identifier format, and a full list of returned fields. There is no filler, redundancy, or unnecessary qualification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool, the description is complete: it states how to call it, what input is expected, and what output fields to expect. No output schema exists, so the enumerated field list effectively fills that gap. Error handling or rate limits are not essential for this simple, safe operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single required parameter nct_id and provides the same example ('NCT02562313') found in the description. The description adds no new parameter semantics beyond what the schema supplies, so the baseline of 3 applies per the rubric.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get full detail') and resource ('one clinical trial by its NCT id'), with a concrete example. It enumerates the returned fields, making it unmistakable what this tool does. It is clearly differentiated from its sibling trials_search, which is for finding trials rather than retrieving details for one known trial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this tool when you have a specific NCT id and need comprehensive details for one clinical trial. It does not explicitly mention that trials_search should be used when only keywords or filters are available, nor does it give explicit exclusions, 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.
trials_searchARead-onlyIdempotentInspect
Search ClinicalTrials.gov for clinical studies by condition, intervention/drug, sponsor, recruitment status, and/or location. Returns each trial's NCT id, title, status, conditions, lead sponsor, phase, and study type.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | General search term. | |
| limit | No | Max rows (default 10, max 50). | |
| status | No | Recruitment status, e.g. 'RECRUITING', 'COMPLETED', 'TERMINATED'. | |
| sponsor | No | Sponsor/organization, e.g. 'Pfizer'. | |
| location | No | Location, e.g. 'Houston' or 'Texas'. | |
| condition | No | Disease/condition, e.g. 'breast cancer'. | |
| intervention | No | Drug/intervention, e.g. 'semaglutide'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive. The description adds behavioral value by naming the external source and specifying the summary fields returned per trial, so the agent knows the shape of the result set without 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states what the tool searches and by which criteria, the second states what it returns. Every clause earns its place and the key info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter read-only search tool with no required fields and no output schema, the description covers both query dimensions and return fields, which is sufficient to select and invoke it. It could add combination semantics (AND vs OR) or pagination details, but those are minor gaps given the schema annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a useful description. The tool description largely restates those dimensions rather than adding new meaning, so it earns the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') with a clear resource (ClinicalTrials.gov) and enumerates search dimensions as well as the exact returned fields (NCT id, title, status, etc.). This clearly distinguishes it from the sibling trials_details, which presumably fetches detailed protocol data for a specific trial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear use case: querying clinical studies by condition, intervention, sponsor, status, and/or location. It does not explicitly name alternatives or state when not to use it, but the search-and-summary framing is enough to route an agent to this tool for filtering trials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_wells_nearARead-onlyIdempotentInspect
Find Texas oil & gas wells near a location using the Texas Railroad Commission (RRC) public well map (keyless public record). Given a longitude/latitude and a radius, returns the wells within it, each with its API well number, well number, and type/status (e.g. 'Oil Well', 'Gas Well', 'Permitted Location', 'Dry Hole', 'Injection/Disposal'), plus a breakdown by type. Use geocode_address first to turn a street address into coordinates. Texas covers the Permian and Eagle Ford basins. This is well LOCATION + type data; operator, production volumes, and permit dates are not in this layer.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the center point (WGS84), e.g. 31.9974. | |
| lon | Yes | Longitude of the center point (WGS84), e.g. -102.0779. | |
| limit | No | Max wells to return (default 25, max 100). | |
| radius_km | No | Search radius in kilometers (default 1.5, max 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only/idempotent, and the description adds meaningful non-obvious behavior: it is a keyless public RRC record, it returns location+type only, and it excludes operator/production/permit-date data. This gives an agent a clear accuracy boundary without contradicting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded and the return payload is specified efficiently. A little extra domain color (Permian/Eagle Ford) is useful but not strictly needed for invocation, keeping it slightly above average but not maximal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the key returned fields and the type breakdown. It also covers the address-to-coordinates prerequisite and data limitations. A more exact response shape or empty-result behavior would push it to 5, but nothing essential for a basic call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and schema entries already explain lat/lon, limit, radius with defaults and max values. The description's 'longitude/latitude and a radius' does not add information beyond what the schema provides, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource—'Find Texas oil & gas wells near a location'—and enumerates the returned fields (API number, well number, type/status, type breakdown). It is unmistakably distinct from geocoding and Oklahoma-well siblings by naming Texas and the RRC public map.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete workflow instruction: 'Use geocode_address first to turn a street address into coordinates.' It also lists what the layer does not contain (operator, production, permit dates), implicitly steering agents away when those are needed, though it does not name a specific alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlhaus_lookup_hostARead-onlyIdempotentInspect
Look up an IPv4 address, hostname, or domain in URLhaus and return a bounded list of associated malware URLs. The host is sent only to URLhaus; LiveDataLink never connects to it.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | IPv4 address, hostname, or domain name; no scheme, port, or path. | |
| limit | No | Maximum records to return (default 20, max 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, establishing the safety profile. The description adds valuable context beyond annotations: 'The host is sent only to URLhaus; LiveDataLink never connects to it,' which discloses data flow privacy. It also mentions 'bounded list,' hinting at result limits, but doesn't elaborate on return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The first sentence states the core purpose and output; the second adds a relevant privacy note. Information is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with full schema coverage and annotations covering safety, the description covers the essential aspects: host types, output nature (bounded list), and data flow. It doesn't mention error handling or rate limits, but these are not critical for a read-only, idempotent lookup. The only minor gap is lack of explicit sibling differentiation, but that is partly addressed by the name and the description's specificity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both host and limit are documented in the schema. The description adds minimal extra meaning: it reinforces the accepted formats for host ('IPv4 address, hostname, or domain') which partially overlaps with the schema's description. Since the schema already covers parameters, the description's contribution is marginal – hence the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Look up'), the resource ('IPv4 address, hostname, or domain in URLhaus'), and the outcome ('return a bounded list of associated malware URLs'). It distinguishes from siblings by focusing on 'host' lookups, which is unique among the urlhaus_lookup_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (looking up a host) but does not explicitly mention alternatives or exclusions. While siblings like urlhaus_lookup_url exist, the description doesn't say 'use this instead when you have a host' – the guidance is left to inference from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlhaus_lookup_payloadARead-onlyIdempotentInspect
Look up URLhaus metadata for an MD5 or SHA-256 malware-payload hash and return a bounded set of associated URLs. This tool does not download the payload.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | Exactly 32 hexadecimal MD5 characters or 64 hexadecimal SHA-256 characters. | |
| limit | No | Maximum records to return (default 20, max 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive hints. The description adds meaningful context beyond annotations: it specifies the result is a 'bounded set' (respecting the limit parameter) and explicitly states 'This tool does not download the payload' – a safety-relevant behavior not derivable from annotations alone. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. The core purpose is front-loaded, and the safety note ('does not download') is efficiently included without extra verbiage. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with full schema coverage and rich annotations, the description covers the essential: purpose, input type, result scope, and a key behavioral caveat. It does not describe output format in detail (no output schema), but the phrase 'bounded set of associated URLs' is adequate. No missing prerequisites or critical constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (hash, limit) are well-documented in the schema with precise format and constraint details. The description does not add new semantic value beyond the schema, so baseline 3 applies per calibration rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states a specific verb ('Look up'), resource ('URLhaus metadata'), and input type (hash). It distinguishes from sibling tools by emphasizing hash-based lookup and bounded URL results, making it distinct from urlhaus_lookup_host, urlhaus_lookup_url, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for hash-based payload lookups without explicitly comparing to alternatives. It states the input type (MD5/SHA-256) and result scope (associated URLs), giving clear context. However, it does not explicitly say 'use this when you have a hash' or exclude other lookup types, so slightly shy of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlhaus_lookup_signatureARead-onlyIdempotentInspect
Look up a URLhaus malware-family signature and return counts plus a bounded list of associated URL and payload observations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return (default 20, max 50). | |
| signature | Yes | Malware-family signature, 1-64 safe text characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, destructiveHint=false, idempotentHint=true), so the description doesn't need to repeat that. It adds useful behavioral context by specifying the tool returns 'counts plus a bounded list of associated URL and payload observations,' which informs the agent that the output is not an unbounded set and that both counts and observations are included. This goes beyond annotations but still leaves minor details like pagination or default not mentioned, though the limit parameter covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, around 15 words, that captures the main action (lookup), the resource (signature), and output characteristics (counts plus bounded observations). It is front-loaded and contains no redundant filler or repeating the title. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small, focused tool with two parameters and a read-only/ anonymous annotations, the description covers enough for an agent to correctly invoke it. It states what is looked up and what is returned. It does not list return field names (no matter output schema is given), but the core behavior is well covered. The main gap is that it does not explicitly steer to sibling tools for other search keys, but the description is still complete enough given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself describes both parameters: 'signature' as a malware-family signature with safe characters and limit as maximum records (default 20, max 50). Since schema description coverage is 100%, the description doesn't need to add much. It adds slight contextual reinforcement, such as saying 'signature' for URLhaus, but does not meaningfully go beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Look up a URLhaus malware-family signature' and explicitly states the tool returns 'counts plus a bounded list of associated URL and payload observations.' This clearly distinguishes it from sibling tools like urlhaus_lookup_host, urlhaus_lookup_url, and urlhaus_lookup_payload, which focus on other identifiers. There's no tautology; the description fully describes the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear that this tool is for signatures, so when an agent holds a malware-family signature it is obvious to use this tool. However, it does not explicitly mention sibling alternatives (e.g., 'for host-based lookups use urlhaus_lookup_host') or state when not to use it. The context implies usage but does not provide there are exclusions or alternate path guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlhaus_lookup_tagARead-onlyIdempotentInspect
Look up a URLhaus classification tag and return observation dates plus a bounded list of associated malware URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | URLhaus tag, 1-64 letters, digits, spaces, periods, plus signs, underscores, or hyphens. | |
| limit | No | Maximum records to return (default 20, max 50). |
TDQS
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 useful behavioral context by specifying that results include observation dates and a bounded list of associated malware URLs, which helps set expectations about response scope. It does not mention edge cases like empty results or exact-match behavior, but the added value over annotations is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence communicates the operation, the input, and the return shape without any wasted words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with two parameters and a schema that covers both parameters, the description is largely complete. It gives the core contract and return contents, though it does not explicitly route among the many URLhaus sibling tools or detail the exact structure of the returned malware URL list. This is a minor gap rather than a fatal one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters and their constraints. The description roughly maps to the 'tag' and 'limit' parameters, but it does not add much meaning beyond what the schema provides. A baseline of 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Look up'), a specific resource ('URLhaus classification tag'), and the expected return content ('observation dates plus a bounded list of associated malware URLs'). This differentiates it clearly from the other urlhaus_lookup_* siblings, which target host, payload, signature, or URL resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is appropriate when you have a URLhaus classification tag, but it does not explicitly contrast it with urlhaus_lookup_host, urlhaus_lookup_url, or the other related siblings. The usage context is inferable from the resource name but not directly stated as a when-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlhaus_lookup_urlARead-onlyIdempotentInspect
Look up URLhaus threat intelligence for exactly one HTTP(S) URL or numeric URLhaus record ID. Returns status, tags, blacklist metadata, and a bounded payload summary without contacting the reported URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | HTTP(S) URL to query as an indicator, max 2048 characters. | |
| limit | No | Maximum records to return (default 20, max 50). | |
| url_id | No | Numeric URLhaus record ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds an important behavioral disclosure not captured by the annotations: it does not contact the reported URL during the lookup. Combined with the readOnlyHint and idempotentHint, this is transparent about the non-interactive, read-only nature of the call, going beyond what structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler, leading with the action verb and target, then listing the key returns and safety behavior. Every component—resource type, accepted inputs, return types, and the explicit 'without contacting the reported URL' caveat—earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with 100% schema coverage, zero required parameters, no output schema, and strong annotations, the description provides enough context: what inputs to pass, what data comes back, and its non-contact safety behavior. It does not discuss pagination or response formats, but those are not critical for correct invocation at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already covers the parameters, the description adds semantic meaning by clarifying that the tool accepts exactly one URL or one numeric record ID. This implies mutual exclusivity between url and url_id, which the schema alone does not state, and also reinforces that the input is a single indicator rather than a host or payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('threat intelligence for exactly one HTTP(S) or numeric URLhaus record ID'), which is specific enough to distinguish it from sibling tools that search by host, payload, tag, or signature. The mention of exact input types and return fields makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when the tool applies: a single HTTP(S) URL or numeric URLhaus record ID, not bulk or list-style lookup. However, it does not explicitly mention alternatives like urlhaus_lookup_host or urlhaus_lookup_payload, nor state when to avoid this tool, so it falls 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.
urlhaus_recent_payloadsARead-onlyIdempotentInspect
List metadata and cryptographic hashes for payloads recently observed by URLhaus. This tool does not download malware samples.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return (default 20, max 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable context beyond annotations by explicitly stating it does not download malware samples, a critical behavioral trait users must know. It also hints at recent temporal scoping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence states the core function and output type; the second clarifies a key boundary. Every word earns its place and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter fully documented in the schema, the description is complete. Annotations cover the read-only, non-destructive nature. The description adds the crucial 'no download' caveat, leaving nothing an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'limit' parameter, so the schema already fully documents it. The description adds no additional parameter semantics, which is acceptable given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('list'), resource ('payloads'), and scope ('recently observed by URLhaus'), plus the type of data returned ('metadata and cryptographic hashes'). This clearly distinguishes it from sibling tools like urlhaus_recent_urls (which lists URLs) and urlhaus_lookup_payload (which likely looks up a specific payload).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: this is for recent payloads and returns metadata/hashes. Explicitly states what it does not do ('does not download malware samples'), which is an important exclusion. It does not name specific alternatives, but the scope is unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urlhaus_recent_urlsARead-onlyIdempotentInspect
List recent malware-distribution URLs added to URLhaus in its rolling three-day window. Returns bounded metadata and indicators only; it never visits the reported URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return (default 20, max 100). |
TDQS
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 goes further by disclosing that results are limited to metadata and indicators, and, importantly, that the tool 'never visits the reported URLs' — a safety-relevant behavioral trait not present in the annotations. This additional context gives the agent confidence about side-effect-free execution and output scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place: the first states the primary action and time window, the second clarifies output scope and a safety property. The description is compact, front-loaded, and contains no filler. Every clause adds value for an agent evaluating whether to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter list tool with rich safety annotations, the description is nearly complete. It explains the time window, output class ('bounded metadata and indicators'), and a behavioral guarantee (not visiting URLs). However, without an output schema, it does not detail the exact fields or structure of the returned metadata/indicators, so an agent cannot know precisely what keys to expect. This minor gap keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for the only parameter (limit) with default and max values, so schema coverage is 100%. The tool description adds no extra detail about the parameter syntax, format, or edge cases. Thus a baseline 3 is appropriate because the schema does the heavy lifting; no ambiguity remains about what limit means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('recent malware-distribution URLs added to URLhaus'), and adds a concrete scope: 'rolling three-day window.' It clearly distinguishes itself from the lookup-specific siblings (e.g., urlhaus_lookup_host, urlhaus_lookup_url) by focusing on recent additions rather than targeted lookups. No ambiguity about what the tool does or what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to call this tool ('recent URLs added in rolling three-day window'), and the sibling names (urlhaus_recent_payloads, urlhaus_lookup_*) hint at alternative purposes. However, it never explicitly says 'Use this for recent URL lists; use urlhaus_lookup_url for a specific URL' or names exclusions. Usage guidance is therefore implied rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usda_nass_compare_crop_yearsARead-onlyIdempotentInspect
Compare 2–7 requested crop years across every hosted area, yield, and production metric for one USDA NASS crop/class. Returns each component value with its own unit and source release file, missing-year evidence, provenance, and caveats. Use this for 'compare 2019 and 2025 corn', '2020 vs 2025 soybean acres and yield', or 'compare winter wheat output across these years'. Final national annual summaries only.
| Name | Required | Description | Default |
|---|---|---|---|
| crop | Yes | Crop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat. | |
| years | Yes | Two to seven distinct crop years. | |
| crop_class | No | Optional class. Required for bare 'wheat': winter, durum, or spring (excluding durum). | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and idempotent, lowering the burden on the description. The description adds meaningful behavioral context by disclosing that results include per-component units, source release files, missing-year evidence, provenance, and caveats, and by restricting output to final national annual summaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, output characteristics, example usage, and a scope limitation all appear in efficient sentences. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description sufficiently describes what is returned (component values with units, source release file, missing-year evidence, provenance, caveats) and the acceptable input scope. Combined with the exhaustive parameter schema and annotations, an agent has enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully documents crop, years, crop_class, and response_format. The description reinforces constraints like '2–7 requested crop years' and 'one crop/class', but does not add significant meaning beyond the schema; the examples provide minor clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compare'), a precise resource ('2–7 requested crop years across every hosted area, yield, and production metric for one USDA NASS crop/class'), and the limiting scope ('Final national annual summaries only'). This clearly separates it from the other USDA NASS siblings, which focus on history, trends, evidence packs, or series search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit example prompts ('compare 2019 and 2025 corn', '2020 vs 2025 soybean acres and yield') and a scope guardrail ('Final national annual summaries only'). It does not explicitly name alternative tools or state when not to use them, but the examples and scope make the intended use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usda_nass_crop_evidence_packARead-onlyIdempotentInspect
Combine all hosted final annual USDA NASS national metrics for one major crop/class into a provenance-backed evidence pack with latest/as-of values, prior-year changes, and exact five-year comparisons. Use this for 'build a corn production evidence pack', 'summarize national soybean acreage yield and output', or as an agriculture leg to combine with weather, freight, fuel, or futures data. Covers crop years 2019–2025 and is not a current forecast or trading recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| crop | Yes | Crop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat. | |
| as_of_year | No | Four-digit crop year. Hosted snapshot coverage is 2019–2025. | |
| crop_class | No | Optional class. Required for bare 'wheat': winter, durum, or spring (excluding durum). | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 valuable behavioral context: it states the tool combines 'latest/as-of values, prior-year changes, and exact five-year comparisons', covers 'crop years 2019–2025', and explicitly notes it is 'not a current forecast or trading recommendation'. This goes beyond the annotations and helps set expectations about the data vintage and scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense paragraph that front-loads the core purpose and then adds usage examples and scope constraints. It's slightly long but every sentence earns its place: purpose, examples, scope, and a disclaimer. The structure is clear and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only evidence-pack tool with 100% schema coverage and no output schema, the description covers the key contextual needs: what data is included, what time range is covered, and what the tool is not (not a forecast/trading recommendation). It doesn't describe the exact output structure, but since there's no output schema and the tool is an evidence pack, a bit more detail on the return format could help. However, the description is largely complete for an agent to decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters (crop, as_of_year, crop_class, response_format). The description adds context about the crop-year coverage (2019–2025) and the evidence-pack output concept, but it doesn't add much parameter-level detail beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Combine') and resource ('hosted final annual USDA NASS national metrics for one major crop/class') and clearly distinguishes this evidence-pack tool from siblings like usda_nass_crop_history, usda_nass_crop_trend, and usda_nass_compare_crop_years. It also gives concrete example queries ('build a corn production evidence pack', 'summarize national soybean acreage yield and output').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Use this for...') and provides example use cases. It also names an alternative context ('as an agriculture leg to combine with weather, freight, fuel, or futures data'), which helps an agent understand when this tool is the right choice versus other data tools. It doesn't explicitly name sibling alternatives, but the evidence-pack framing and examples make the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usda_nass_crop_historyARead-onlyIdempotentInspect
Return bounded final annual USDA NASS national history for one major-crop metric from the self-hosted 2020–2026 annual-summary releases. Includes values, units, crop class, source release file, pagination, evidence hash, and attribution. Use this for 'US corn yield from 2019 to 2025', 'soybean production history', or 'winter wheat acres harvested'. Available crop years are 2019–2025; this is not a forecast or state/county result.
| Name | Required | Description | Default |
|---|---|---|---|
| crop | Yes | Crop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat. | |
| limit | No | Maximum crop years. Default 20. | |
| metric | Yes | Annual statistic to return. | |
| offset | No | Crop years to skip. Default 0. | |
| end_year | No | Four-digit crop year. Hosted snapshot coverage is 2019–2025. | |
| crop_class | No | Optional class. Required for bare 'wheat': winter, durum, or spring (excluding durum). | |
| start_year | No | Four-digit crop year. Hosted snapshot coverage is 2019–2025. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses the data is final/bounded annual national data, the self-hosted release source, the 2019–2025 coverage window, and the non-forecast/non-state-county scope. It also enumerates output components (values, units, crop class, source file, pagination, evidence hash, attribution), which is valuable context for callers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core behavior first, then gives example queries, scope, and exclusions. The inclusion list is mildly listy and the 'self-hosted 2020–2026 annual-summary releases' phrase is dense, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies a useful summary of return contents, year coverage, and non-scope exclusions. It does not spell out pagination behavior or response_format semantics, but those are covered by schema parameter descriptions, so the overall context is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters, enums, and defaults. The description's examples reinforce the crop/metric mapping but do not add materially new parameter-level meaning beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Return bounded final annual USDA NASS national history for one major-crop metric') and scopes it with examples and exclusions. It is immediately distinguishable from trend, compare, and search siblings by emphasizing a single-metric national history and explicitly saying it is not a forecast or state/county result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit use-this-for examples and a clear when-not ('not a forecast or state/county result'). However, it does not name the sibling NASS tools (e.g. usda_nass_crop_trend or usda_nass_crop_evidence_pack) or state which conditions should route an agent to them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usda_nass_crop_trendARead-onlyIdempotentInspect
Calculate prior-year and exact five-year changes for one final annual USDA NASS national crop series. Returns component observations, absolute and percent changes, five-year CAGR when valid, exact units, evidence hash, and caveats. Use this for 'how has corn yield changed?', 'five-year soybean production trend', or 'trend in upland cotton planted acres'. The optional as-of year never mixes future releases into a historical result.
| Name | Required | Description | Default |
|---|---|---|---|
| crop | Yes | Crop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat. | |
| metric | Yes | Annual statistic to return. | |
| as_of_year | No | Four-digit crop year. Hosted snapshot coverage is 2019–2025. | |
| crop_class | No | Optional class. Required for bare 'wheat': winter, durum, or spring (excluding durum). | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent, so the bar is lower. The description adds significant behavioral detail: it names the returned components, explicit change types, CAGR validity condition, exact units, evidence hash, and a meaningful as-of-year guarantee that future releases never leak into historical results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: the first states the action, the second lists outputs, the third gives usage examples, and the fourth warns about as-of semantics. No filler or redundant restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining return values, and it does: component observations, changes, CAGR, units, evidence hash, and caveats. Combined with full schema coverage for parameters, the definition gives an agent enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds extra semantics beyond the schema, particularly the as-of-year behavior ('never mixes future releases into a historical result'), which is not captured in the parameter description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing: 'Calculate prior-year and exact five-year changes for one final annual USDA NASS national crop series.' The 'one final annual national crop series' scope clearly separates it from siblings like usda_nass_crop_history, usda_nass_compare_crop_years, and usda_nass_search_crop_series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete, grounded examples ('how has corn yield changed?', 'five-year soybean production trend') that make intended usage obvious. It does not explicitly say when not to use this tool 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.
usda_nass_search_crop_seriesARead-onlyIdempotentInspect
Search LiveDataLink's self-hosted official USDA NASS Crop Production Annual Summary series. Returns canonical crop/class/metric combinations, units, exact 2019–2025 coverage, pagination, evidence hash, and attribution. Use this for 'what NASS crop series are hosted?', 'find durum wheat yield', or to resolve a series before history/trend calls. Scope is final national annual summaries, not the full Quick Stats catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum series. Default 20. | |
| query | No | Optional crop, class, metric, unit, or description words. | |
| offset | No | Series to skip. Default 0. | |
| response_format | No | Human-readable markdown or machine-readable JSON. Default markdown. |
TDQS
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 covered. The description adds genuine behavioral context: it discloses what the response includes (canonical combos, units, exact 2019–2025 coverage, pagination, evidence hash, attribution) and the data-scope limitation (final national annual summaries vs. full catalog). This goes beyond the high-example's 3 because it specifies return contents and pagination, not just a scoping constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with zero fluff: the first sentence states the action, the second lists return contents, the third gives concrete use cases, and the fourth nails the scope boundary. Every sentence carries functional information, and the most important routing guidance is front-loaded. This is efficient and logically structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter search tool with no output schema, the description comprehensively covers what the agent needs: the return value shape (combinations, units, coverage, pagination, evidence hash, attribution), the scope limitations, and the use case within the broader NASS workflow (resolving series before history/trend calls). The annotations cover safety, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (limit, query, offset, response_format) are already documented. The description adds minimal parameter-specific meaning; it mentions pagination (relevant to limit/offset) and gives query examples ('find durum wheat yield'), but these are light complements rather than necessary compensations. A baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Search LiveDataLink's self-hosted official USDA NASS Crop Production Annual Summary series') and enumerates the return contents (canonical crop/class/metric combos, units, exact 2019–2025 coverage, pagination, evidence hash, attribution). It also differentiates itself from the fuller Quick Stats catalog and explicitly names the context of resolving a series before history/trend calls, making it distinct from siblings like usda_nass_crop_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use triggers: 'what NASS crop series are hosted?', 'find durum wheat yield', 'resolve a series before history/trend calls.' It also states a when-not-to-use boundary: scope is final national annual summaries, not the full Quick Stats catalog. The reference to history/trend calls implicitly points to sibling tools (usda_nass_crop_history, usda_nass_crop_trend), making the routing clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_earthquake_detailARead-onlyIdempotentInspect
Get full detail for a specific earthquake event by USGS event ID. Returns origin, magnitude details, focal mechanism (if available), shake-map link, felt reports, tsunami flag, and impact estimates.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | USGS event ID (e.g. 'us7000m5dt'). Get from feed or search results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive, so no safety contradiction exists. The description adds meaningful behavioral context beyond annotations by listing what the response covers (origin, magnitude details, focal mechanism with an 'if available' caveat, shake-map link, felt reports, tsunami flag, and impact estimates), which is especially useful because no output schema 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Both sentences are dense and useful: the first states the action and key input, the second lists return contents. There is no filler, repetition, or buried context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup, this description is complete: it explains what the tool does, what input identifies the target, and what the response will contain, with an explicit conditional for focal mechanism. The lack of an output schema is compensated by the return-field enumeration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents event_id with a type and a concrete example, so the schema carries the semantic weight. The tool description adds only that lookup is by USGS event ID, not enough to raise the score above the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), names the exact resource ('full detail for a specific earthquake event'), and identifies the key identifier ('USGS event ID'). It also enumerates the returned data categories, making it easy to distinguish this detail tool from sibling list/search tools like usgs_earthquake_feed and usgs_earthquake_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for a single known event rather than discovery, and the parameter schema reinforces that by instructing the agent to obtain the event_id from feed or search results. It does not explicitly name alternatives or state when not to use the tool, so it stops just 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.
usgs_earthquake_feedARead-onlyIdempotentInspect
USGS official earthquake summary feed by period and minimum magnitude. period: hour|day|week|month. min_mag: 1.0|2.5|4.5|significant. Returns all events worldwide above the threshold within the period, with magnitude, location, depth, and event detail URL.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time window (default 'day') | |
| min_mag | No | Minimum magnitude threshold (default '2.5') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful context about global scope and returned fields, but it does not mention pagination, rate limits, or any limits on the number of events returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the core purpose front-loaded. It lists the key parameters, allowed values, and return fields without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only feed with complete schema annotations, the description is sufficient: it defines input choices, scope ('all events worldwide above the threshold'), and output contents ('magnitude, location, depth, and event detail URL'). No important invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% and each parameter already has an enum and description. The description repeats the allowed values (hour|day|week|month and 1.0|2.5|4.5|significant) but adds no new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as 'USGS official earthquake summary feed by period and minimum magnitude' and specifies that it returns all events worldwide above a threshold. This is a specific verb-resource pairing, though it does not explicitly contrast itself with sibling tools like usgs_earthquake_search or usgs_earthquake_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: select a period and minimum magnitude to get a worldwide summary feed. However, there is no explicit guidance on when to prefer this tool over the sibling earthquake_recent, usgs_earthquake_search, or usgs_earthquake_detail tools, and no mention of 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.
usgs_earthquake_searchARead-onlyIdempotentInspect
Custom earthquake search via USGS fdsnws. Filter by magnitude, time range, and lat/lon bounding box. Returns up to 100 events sorted by time. Use this for analytical queries instead of the feed when you need historical or geographic filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25, max 100) | |
| end_time | No | ISO date or full datetime | |
| start_time | No | ISO date or full datetime YYYY-MM-DD[THH:MM:SS] | |
| max_latitude | No | Bounding box north | |
| min_latitude | No | Bounding box south | |
| max_longitude | No | Bounding box east | |
| min_longitude | No | Bounding box west | |
| min_magnitude | No | Minimum magnitude (e.g. 4.5) |
TDQS
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 meaningful behavioral context beyond annotations: it returns up to 100 events, sorts by time, and targets historical/geographic filtering. This is useful but does not describe full output shape or API-specific behaviors like rate limits, so a 4 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words, and the most important information is front-loaded: what the tool does, what it filters by, what it returns, and when to choose it over the feed. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with no required parameters and a fully described input schema, this description covers the main invocation context: filters, result cap, sort order, and relationship to the feed. It does not detail the event fields returned or default behavior with no filters, but those are not critical for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description including defaults and coordinate meanings. The description only groups parameters into magnitude, time range, and bounding box categories, which adds marginal interpretive value but does not compensate for anything missing in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Custom earthquake search') on a specific resource (USGS fdsnws) and enumerates the key filters: magnitude, time range, and lat/lon bounding box. It also distinguishes this tool from the feed by explicitly targeting historical and geographic analytical queries, which clearly separates it from sibling tools like usgs_earthquake_feed and earthquake_recent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: 'Use this for analytical queries instead of the feed when you need historical or geographic filtering.' This names the alternative and the condition that selects this tool, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_water_realtimeARead-onlyIdempotentInspect
Real-time water data from USGS NWIS streamgages. Filter by site code, state, or parameter (e.g. '00060' = streamflow cfs, '00065' = gage height ft). Useful for flood-stage monitoring, drought tracking, and hydrological research.
| Name | Required | Description | Default |
|---|---|---|---|
| sites | No | Comma-separated USGS site codes (e.g. '01646500') | |
| state_cd | No | Two-letter state code; returns all active sites in the state | |
| parameter_cd | No | USGS parameter code (default '00060' streamflow). Common: 00060=streamflow, 00065=gage height, 00010=water temp, 00400=pH |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, non-destructive behavior. The description adds useful context: real-time freshness, NWIS data source, and units for common parameters. It doesn't disclose return format, pagination, or rate limits, so it adds moderate but not extensive behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the core purpose, the second covers filters with an example, and the third gives use cases. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with well-documented parameters and rich safety annotations, the description is sufficiently complete: it gives source, filters, examples, and use cases. It doesn't spell out the response shape or data limitations, but the absence of an output schema is not critical for selecting and invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds lightweight examples and units (streamflow cfs, gage height ft), but doesn't substantially improve on the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (USGS NWIS streamgages) and the operation (retrieving real-time water data), with explicit filter dimensions. It doesn't explicitly differentiate from sibling tools like water_levels or tide_predictions, so it doesn't earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context by naming concrete use cases ('flood-stage monitoring, drought tracking, and hydrological research') and notes the filter options. However, it doesn't state when not to use it or point to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vehicle_recallsARead-onlyIdempotentInspect
Check for safety recalls on a vehicle by year, make, and model. Returns all NHTSA recall campaigns including affected component, description, safety risk, and recommended remedy. Use this for 'are there recalls on my car?', 'check recalls for 2020 Toyota Camry', 'is this vehicle safe?', 'any open recalls?', or any vehicle recall check. Covers all US vehicles from all manufacturers.
| Name | Required | Description | Default |
|---|---|---|---|
| make | Yes | Vehicle make (e.g., 'Toyota', 'Ford') | |
| year | Yes | Model year (e.g., 2020) | |
| model | Yes | Vehicle model (e.g., 'Camry', 'F-150') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety behavior is covered. The description adds meaningful behavioral context by stating it returns 'all NHTSA recall campaigns' and enumerates the output fields (affected component, description, safety risk, recommended remedy), plus US vehicle/manufacturer coverage. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the opening sentence states the core purpose, the second explains the return value, and the third gives concrete usage examples and coverage scope. The example list is slightly repetitive but useful for intent matching, and no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by specifying exactly what will be returned (recall campaigns with component, description, safety risk, remedy) and the coverage scope (all US vehicles). The required inputs are unambiguous. It could have mentioned when to use a VIN-based sibling, but the definition is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented with clear examples. The description only restates the input combination in prose ('by year, make, and model') without adding new parameter-level semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Check for safety recalls') on a specific resource ('a vehicle by year, make, and model'), and clarifies it returns NHTSA recall campaigns. This clearly distinguishes it from product, drug, food, or device recall tools among the siblings, and the example queries further pin down the intended use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear invocation context by listing representative user phrasings like 'check recalls for 2020 Toyota Camry' and 'any open recalls?', and covers the general case with 'or any vehicle recall check'. However, it does not explicitly contrast with alternatives such as vin_decode for VIN-based queries or CPSP/FDA recall tools, so it lacks when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vin_decodeARead-onlyIdempotentInspect
Decode a Vehicle Identification Number (VIN) to get full vehicle specifications. Returns year, make, model, trim, body style, engine specs (cylinders, displacement, HP), drivetrain, transmission, fuel type, doors, manufacturer, and assembly plant location. Use this for 'decode this VIN', 'what car is this VIN?', 'look up a VIN number', 'what are the specs on this vehicle?', 'identify this car', or any VIN lookup. Works for all US vehicles - cars, trucks, SUVs, motorcycles, trailers.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | Yes | 17-character Vehicle Identification Number (VIN) |
TDQS
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 clear. The description adds useful behavioral context by listing the exact fields returned and the scope of supported vehicles (all US vehicles including motorcycles and trailers).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and front-loaded: it states the core function, then lists outputs, then gives query examples, then scope. Every sentence adds useful information, and the example phrases are practical for an agent matching user intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one well-documented parameter, strong annotations, and no output schema, the description is complete: it explains what the tool returns, the vehicle types covered, and the user phrasings that should trigger it. No critical selection or invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single 'vin' parameter, including its 17-character format. The description adds no additional parameter-level semantics beyond restating 'VIN', so the baseline score of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Decode a VIN') and resource, and enumerates the returned vehicle attributes. It does not explicitly distinguish itself from the sibling 'vehicle_recalls' tool, though the specifications-focused output makes the difference mostly implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete example queries and says to use it for 'any VIN lookup', giving an agent clear trigger phrases. However, it does not state when not to use it, such as when the user is asking about recalls rather than vehicle specifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wa_contractor_license_historyARead-onlyIdempotentInspect
Return the material status, expiration, specialty, and profile transitions observed for one Washington contractor license. Results include before/after values, observation time, source-as-of date, and raw snapshot hash.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum transitions; default 50. | |
| license_number | Yes | Exact Washington contractor license number. |
TDQS
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 meaningful behavioral context beyond annotations: it discloses that results include before/after values, observation time, source-as-of date, and raw snapshot hash, which tells the agent what kind of data to expect. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core purpose and then lists the specific data elements returned. Every clause earns its place; there is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter tool with 100% schema coverage and no output schema, the description is largely complete. It explains what data is returned and the scope. It could be slightly more complete by explicitly noting that the tool is for historical observation/transition data versus current status, but the phrase 'profile transitions observed' already conveys this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (license_number and limit). The description adds the context that license_number is an exact Washington contractor license number, which is already in the schema. The description does not add significant meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('one Washington contractor license'), and enumerates the exact data dimensions: material status, expiration, specialty, and profile transitions. It clearly distinguishes itself from siblings like wa_contractor_verify and wa_contractor_recent_changes by focusing on historical transitions with before/after values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for historical profile transitions of a single Washington contractor license, and the sibling list includes wa_contractor_verify and wa_contractor_recent_changes which are likely alternatives. However, it does not explicitly state when to use this tool versus those alternatives, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wa_contractor_recent_changesARead-onlyIdempotentInspect
List material Washington contractor-registration changes observed by LiveDataLink's official daily snapshot pipeline. Filter by observed timestamp, change type, or trade. Missing source rows are never labeled revoked; only observed field transitions are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows; default 20. | |
| since | No | ISO date or timestamp. Defaults to 30 days ago. | |
| trade | No | Optional specialty/trade substring. | |
| offset | No | Rows to skip for pagination. | |
| change_type | No | Optional material transition type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds valuable behavioral context beyond annotations: 'Missing source rows are never labeled revoked; only observed field transitions are returned.' This clarifies a key semantic nuance and the data pipeline origin, which helps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: first sentence states the core purpose, second lists key filters, third discloses an important behavioral caveat. There is no wasted text; each sentence earns its place, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 optional parametersley off, a clear data source, and the key caveat about missing rows, the description covers most essential call context. The main gap is the lack of clarification on what 'material' means and no mention of output structure (though no output schema exists). Overall, the description is sufficient for a safe read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions filtering by timestamp, change type, and trade, which maps to the 'since', 'change_type', and 'trade' parameters, but it adds no meaning beyond what the schema already provides for each parameter. Parameters like 'limit' and 'offset' are not elaborated further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists 'material Washington contractor-registration changes' from LiveDataLink's daily snapshot, which specifies the verb and resource. However, it does not explicitly distinguish itself from sibling tools like wa_contractor_license_history or wa_contractor_verify, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions filtering capabilities ('Filter by observed timestamp, change type, or trade') but provides no guidance on when to choose this tool over wa_contractor_license_history or wa_contractor_verify. There is no explicit 'use this when' or alternatives comparison, leaving the agent to infer use cases from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wa_contractor_verifyARead-onlyIdempotentInspect
Verify a Washington contractor registration against the official Washington L&I open-data API by exact license number or partial business name. Returns current status, expiration, trade, registration type, UBI, locality, freshness source, and official link. Principal-person and direct-contact fields are intentionally excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches; default 10 and maximum 25. | |
| business_name | No | Partial registered business name, at least 2 characters. | |
| license_number | No | Exact Washington contractor license number. Preferred when known. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only, open-world, idempotent, non-destructive, so the description doesn't need to repeat safety. The description adds context about the data source, returning status and expiration, and explicitly states that principal-person and direct-contact fields are excluded – useful disclosure beyond annotations. Minor gap: no mention of rate limits or pagination, but the description adequately builds on the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but informative, with the key purpose and parameters front-loaded. It proactively mentions what fields are returned and what is excluded, keeping to two sentences. No waste, though it could be slightly more organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple lookup with no output schema and annotations covering safety, the description covers what the tool does, its source, and its limits (no principal-person fields). It clearly states the accepted input types and the return fields. Missing explicit mention of what happens if no match is found, and does not discuss rate limits, but these are not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Though the schema covers 100% of parameters with descriptions, the main description adds value by stating that license_number is 'Preferred when known' and that business_name is 'partial', enriching the semantics beyond the schema. It also clarifies that limit caps at 25, which is in the schema but the description reinforces the intent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb 'Verify' and the resource 'Washington contractor registration', against the official L&I API. It also enumerates the exact data returned and what is excluded, distinguishing it from generic search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states that it verifies against the official API and accepts either license number or partial business name. It implies when to use it (when you need contractor registration verification) but does not explicitly state when not to use it or compare to siblings like wa_contractor_license_history or wa_contractor_recent_changes. That leaves some gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
water_levelsARead-onlyIdempotentInspect
Return the latest observed water level from a NOAA Tides & Currents (CO-OPS) station using the keyless public API - U.S. Government public-domain data. Give either a NOAA station id or a lat/lon (the nearest station is chosen automatically). Returns the observed water level relative to the chosen datum (default MLLW), the observation time in local station time, and the sample standard deviation when reported. Use it to check current real-world water level versus prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Used with lon to pick the nearest station when no station id is given. | |
| lon | No | Longitude in decimal degrees (negative west). | |
| datum | No | Tidal datum: MLLW, MSL, MHW, etc. Default MLLW. | |
| units | No | 'english' (feet) or 'metric' (meters). Default english. | |
| station | No | NOAA CO-OPS station id, e.g. '9414290'. Optional if lat and lon are given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, so the safety profile is already clear. The description adds meaningful behavioral context beyond annotations: it is a keyless public API, uses U.S. Government public-domain data, automatically chooses the nearest station for lat/lon, and returns water level relative to a datum with observation time in local station time and sample standard deviation when reported. It doesn't disclose all edge cases (e.g., what happens if no station is found), but it goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loaded with the main purpose, then key usage alternatives and return details. Every clause earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with all parameters documented in schema and a rich description of what it returns, it is largely complete. The only gap is lack of explicit behavior on errors or missing station, and no explicit mention of output format, but since there's no output schema and the tool is straightforward, the description covers what an agent needs to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 5 parameters. The description adds useful context about the relationship between station and lat/lon ('nearest station is chosen automatically') and that datum defaults to MLLW, which is already in the schema. Baseline 3 is right because the description adds marginal context but doesn't need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the latest observed water level from a NOAA station, specifies the data source, keyless public API, how to identify a station (station id or lat/lon), and what the return includes. This is a specific verb+resource with clear scope, distinct from the sibling 'tide_predictions' (predictions vs observed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use it ('check current real-world water level versus prediction') and gives context about the data source. However, it does not explicitly identify alternatives or say when not to use it. Given the sibling list contains 'tide_predictions' which is a natural alternative, the description does not explicitly exclude or route to it, so a 4 is appropriate rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_currentARead-onlyIdempotentInspect
Get current weather conditions for any location worldwide. Returns temperature, feels-like, humidity, wind speed and direction, cloud cover, pressure, precipitation, UV index, and visibility. Use this for 'what's the weather?', 'is it raining in Houston?', 'how hot is it outside?', 'what's the temperature in New York?', 'do I need a jacket?', or any current weather question. Works for any city, zip code, or place name globally.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City, zip code, or place name (e.g., 'Houston, TX', '77001', 'Paris') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description goes beyond these by specifying the exact set of returned conditions, such as temperature, humidity, wind, cloud cover, pressure, precipitation, UV index, and visibility, and by emphasizing global location coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and return fields, then gives practical example queries. It is slightly longer than necessary due to some repetition between 'any location worldwide' and 'Works for any city, zip code, or place name globally,' but the example queries earn their place for routing accuracy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is complete: it states what the tool does, what data it returns, what kinds of queries it supports, and what location formats are accepted. No critical information is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the location parameter with examples like 'Houston, TX' and '77001', and schema coverage is 100%. The description restates that any city, zip code, or place name works, which reinforces the parameter's semantics but does not add meaningful new detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get current weather conditions for any location worldwide.' It enumerates the returned fields and uses 'current' to distinguish itself from the sibling weather_forecast tool. This makes its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use examples such as 'is it raining in Houston?' and 'what's the temperature in New York?', plus a catch-all 'or any current weather question.' It gives clear context for when to use the tool, though it does not explicitly state when not to use it or name weather_forecast as the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_forecastARead-onlyIdempotentInspect
Get a multi-day weather forecast for any location worldwide. Returns daily high/low temperatures, conditions, precipitation probability, wind speed, UV index, sunrise and sunset. Use this for 'what's the forecast this week?', 'will it rain tomorrow?', 'weekend weather', 'should I plan outdoor activities?', '7-day forecast for Dallas', or any future weather question. Supports 1-16 day forecasts.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Forecast days (default: 7) | |
| location | Yes | City, zip code, or place name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and non-destructiveness. The description adds useful behavioral context by specifying returned fields (high/low, conditions, precipitation probability, wind, UV, sunrise/sunset) and the 1-16 day range. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and returned data, followed by concrete usage examples and a parameter range. Every sentence adds value; the example queries are practical rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining return values, which it does well by listing the forecast fields. It also covers the main invocation need: location, range of days, and use cases. A small gap is the lack of mention of units or the default of 7 days, though the schema covers the default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents location and days well. The description adds that the tool works for "any location worldwide" and supports 1-16 day forecasts, but it does not go much beyond the schema's own parameter descriptions. This matches the baseline for fully self-documenting schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Get a multi-day weather forecast for any location worldwide." It lists the exact data fields returned and clearly distinguishes itself from future-weather vs. current-weather tools by emphasizing "future weather question" and "multi-day." This differentiates it from weather_current and other weather-adjacent siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives rich usage guidance with many concrete example queries like "what's the forecast this week?" and "7-day forecast for Dallas." It makes the intended context clear, though it does not explicitly name an alternative tool or state when not to use this tool in favor of weather_current or another sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldbank_compareARead-onlyIdempotentInspect
Compare the most recent value of a World Bank indicator across multiple countries (up to 6). Provide a comma-separated list of country codes or names.
| Name | Required | Description | Default |
|---|---|---|---|
| countries | Yes | Comma-separated country codes/names, e.g. 'US,CN,DE,JP'. | |
| indicator | No | Indicator name (one of: gdp, gdp_per_capita, gdp_growth, inflation, population, unemployment, life_expectancy, exports, imports, gni_per_capita, poverty_rate, internet_users) or a raw WB code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral constraints — it returns the 'most recent value' (not a time series) and caps input at 'up to 6' countries — but it does not disclose what happens with invalid country codes, missing data, or how results are formatted and ordered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place: the first states the purpose and the 6-country cap, the second states the required input format. The purpose is front-loaded and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-parameter tool with 100% schema coverage and safety annotations, the description is nearly sufficient. The only meaningful gap is the absence of any mention of the return shape or error behavior (e.g., invalid country codes, unavailable indicator data), which matters because there is no output schema to cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both countries and indicator are already documented in the schema with the enumerated indicator list. The description adds the 'up to 6' limit and the comma-separated format for countries, but adds no meaning for the indicator parameter beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compare') plus a clear resource ('a World Bank indicator') and scope ('across multiple countries (up to 6)'). This cleanly distinguishes it from sibling tools like worldbank_indicator and worldbank_country_profile 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case — comparing a single indicator's most recent value across several countries — but never explicitly names alternatives or exclusions. It does not tell the agent to use worldbank_indicator for single-country or historical data, nor worldbank_country_profile for a country dossier, so routing guidance 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.
worldbank_country_profileARead-onlyIdempotentInspect
Snapshot of a country's key development indicators (GDP, GDP per capita, growth, inflation, population, unemployment, life expectancy), each at its most recent available year.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country ISO2/ISO3 code or name (default 'US'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint false. The description adds one useful behavioral detail: each indicator is at its most recent available year, implying no time-series retrieval. It does not discuss missing data, units, or country-code normalization, so the added behavioral context is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly written sentence, front-loaded with 'Snapshot', that packs in the indicator list and the temporal behavior. There is no filler, repetition, or irrelevant context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the description is largely sufficient: it names the subject, the indicators returned, and the temporal granularity. Minor gaps like units or missing-indicator behavior exist, but they do not seriously hinder correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single country parameter as an ISO2/ISO3 code or name with a default of 'US', so schema description coverage is 100%. The tool description reinforces that the parameter is the profile subject but adds no meaning beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear deliverable: a snapshot of a country's key development indicators, and lists exactly which indicators are included. The 'most recent available year' scoping helps separate it from time-series tools, though it does not explicitly name sibling Worldbank tools like worldbank_indicator or worldbank_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The snapshot wording implies the intended use case: a quick at-a-glance country profile. However, it gives no explicit guidance on when to prefer this tool over worldbank_indicator or worldbank_compare, nor does it state exclusions such as 'not for historical trends.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldbank_indicatorARead-onlyIdempotentInspect
Time series for a World Bank development indicator for one country. Friendly indicators: gdp, gdp_per_capita, gdp_growth, inflation, population, unemployment, life_expectancy, exports, imports, gni_per_capita, poverty_rate, internet_users (or pass a raw World Bank code). Country accepts ISO2/ISO3 codes or common names (e.g. 'US', 'China', 'Germany'). Keyless, official World Bank data.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country ISO2/ISO3 code or name (default 'US'). Use 'WLD' for world. | |
| end_year | No | End year (optional). | |
| indicator | No | Indicator name (one of: gdp, gdp_per_capita, gdp_growth, inflation, population, unemployment, life_expectancy, exports, imports, gni_per_capita, poverty_rate, internet_users) or a raw WB code. | |
| start_year | No | Start year (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive behavior, so the bar is lower. The description adds useful context beyond annotations by stating the data is 'Keyless, official World Bank data' and that the output is a time series. This gives the agent confidence about data source and no authentication requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The indicator list adds helpful examples but partially duplicates the schema's indicator enumeration. Overall it is efficient, with no filler or redundant safety language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only data-fetch tool with full schema coverage and no output schema, the description is largely complete. It explains the data source, keyless access, country and indicator flexibility, and the one-country time series scope. It does not detail default year ranges or response formatting, but those are minor given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters well. The description adds friendly examples and context like common country names and raw World Bank codes, but these largely restate what the schema already provides. It does not materially expand parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns time series for a World Bank development indicator for one country, which is a specific verb+resource combination. The phrase 'for one country' differentiates it from sibling tools like worldbank_compare and worldbank_country_profile, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames when to use this tool: when you need a single-country time series for a development indicator. It also gives friendly indicator names and country input formats, which helps the agent select it. However, it does not explicitly mention sibling alternatives or state when not to use it, such as when comparing multiple countries.
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.
14 tool updates
- Added
fema_nfhl_compare_inventory_items - Added
fema_nfhl_get_inventory_item - Added
fema_nfhl_get_snapshot_metadata - Added
fema_nfhl_search_inventory - Added
fema_nfhl_summarize_state_inventory - Added
opportunity_zones_compare_jurisdictions - Added
opportunity_zones_lookup_designation - Added
opportunity_zones_search_designations - Added
opportunity_zones_summarize_designations - Added
treasury_tic_compare_holders - Added
treasury_tic_find_holders - Added
treasury_tic_holder_history - Added
treasury_tic_official_share - Added
treasury_tic_rank_holders
14 tool updates
- Added
bea_compare_states - Added
bea_search_state_indicators - Added
bea_state_economic_history - Added
bea_state_economic_profile - Added
bea_state_economic_trend - Added
fbi_cde_compare_state_to_national - Added
fbi_cde_national_crime_trend - Added
fbi_cde_state_crime_trend - Added
fbi_cde_state_month_snapshot - Added
fbi_cde_state_reporting_coverage - Added
fed_z1_catalog - Added
fed_z1_change - Added
fed_z1_series - Added
fed_z1_snapshot
65 tool updates
- Added
bts_transport_border_activity_pack - Added
bts_transport_border_trend - Added
bts_transport_compare_ports - Added
bts_transport_search_ports - Changed
carrier_monitor_recheck5 fields changed- changed
Input schema / properties / dot / descriptionPrevious value: -"USDOT number (preferred). Accepts 3405079 or USDOT 3405079."New value: +"USDOT number (preferred)." - changed
Input schema / properties / dot / typePrevious value: -[ - "number", - "string" -]New value: +"number" - changed
Input schema / properties / mc / descriptionPrevious value: -"MC/MX number. Accepts 123456 or MC-123456."New value: +"MC/MX number without the prefix." - changed
Input schema / properties / mc / typePrevious value: -[ - "number", - "string" -]New value: +"number" - removed
Input schema / properties / previous_snapshot / anyOfRemoved value: -[ - { - "type": "string" - } -]
- Changed
carrier_vetting_batch3 fields changed- removed
Input schema / properties / dot_numbers / anyOfRemoved value: -[ - { - "items": { - "type": "number" - }, - "type": "array" - }, - { - "type": "string" - } -] - added
Input schema / properties / dot_numbers / itemsAdded value: +{ + "type": "number" +} - added
Input schema / properties / dot_numbers / typeAdded value: +"array"
- Changed
carrier_vetting_evidence_pack4 fields changed- changed
Input schema / properties / dot / descriptionPrevious value: -"USDOT number (preferred). Accepts 3405079 or USDOT 3405079."New value: +"USDOT number (preferred exact identifier)." - changed
Input schema / properties / dot / typePrevious value: -[ - "number", - "string" -]New value: +"number" - changed
Input schema / properties / mc / descriptionPrevious value: -"MC/MX number. Accepts 123456 or MC-123456."New value: +"MC/MX number without the prefix." - changed
Input schema / properties / mc / typePrevious value: -[ - "number", - "string" -]New value: +"number"
- Changed
carrier_vetting_score4 fields changed- changed
Input schema / properties / dot / descriptionPrevious value: -"USDOT number (preferred). Accepts 76830 or USDOT 76830."New value: +"USDOT number of the carrier (most precise). Example: 76830." - changed
Input schema / properties / dot / typePrevious value: -[ - "number", - "string" -]New value: +"number" - changed
Input schema / properties / mc / descriptionPrevious value: -"MC number. Accepts 123456 or MC-123456."New value: +"MC (motor carrier) number, without the 'MC-' prefix. Used if no DOT number is given." - changed
Input schema / properties / mc / typePrevious value: -[ - "number", - "string" -]New value: +"number"
- Added
cftc_cot_compare - Added
cftc_cot_evidence_pack - Added
cftc_cot_history - Added
cftc_cot_latest - Added
cftc_cot_search_markets - Removed
contractor_license_sources - Removed
contractor_multistate_route - Added
faa_public_aviation_airport_profile - Added
faa_public_aviation_compare_airports - Added
faa_public_aviation_search_airports - Added
faa_public_aviation_search_runways - Added
fed_board_h15_evidence_pack - Added
fed_board_h15_rate_history - Added
fed_board_h15_rate_spread - Added
fed_board_h15_search_series - Added
fed_board_h15_yield_curve - Added
fhfa_hpi_compare - Added
fhfa_hpi_series - Added
fhfa_hpi_trend - Added
govinfo_legislation_committee_path - Added
govinfo_legislation_evidence_pack - Added
govinfo_legislation_relationships - Added
govinfo_legislation_search - Added
govinfo_legislation_version_lineage - Added
gsa_per_diem_lookup - Added
gsa_per_diem_mie_breakdown - Added
leie_exclusion_details - Added
leie_lookup_npi - Added
leie_search_exclusions - Changed
load_tender_fraud_shield4 fields changed- changed
Input schema / properties / dot / descriptionPrevious value: -"USDOT number (preferred). Accepts 3405079 or USDOT 3405079."New value: +"USDOT number (preferred)." - changed
Input schema / properties / dot / typePrevious value: -[ - "number", - "string" -]New value: +"number" - changed
Input schema / properties / mc / descriptionPrevious value: -"MC/MX number. Accepts 123456 or MC-123456."New value: +"MC/MX number without the prefix." - changed
Input schema / properties / mc / typePrevious value: -[ - "number", - "string" -]New value: +"number"
- Added
nasa_firms_search_fires - Added
nport_compare_funds - Added
nport_fund_holdings - Added
sec_ftd_compare - Added
sec_ftd_history - Added
sec_ftd_latest - Added
sec_ftd_search_securities - Added
sec_ftd_top - Added
source_snapshot_list - Added
source_snapshot_status - Added
ted_opportunity_radar - Added
ted_search_notices - Added
urlhaus_lookup_host - Added
urlhaus_lookup_payload - Added
urlhaus_lookup_signature - Added
urlhaus_lookup_tag - Added
urlhaus_lookup_url - Added
urlhaus_recent_payloads - Added
urlhaus_recent_urls - Added
usda_nass_compare_crop_years - Added
usda_nass_crop_evidence_pack - Added
usda_nass_crop_history - Added
usda_nass_crop_trend - Added
usda_nass_search_crop_series - Added
wa_contractor_license_history - Added
wa_contractor_recent_changes - Changed
wa_contractor_verify3 fields changed- changed
Input schema / properties / business_name / descriptionPrevious value: -"Business name or distinctive name fragment. Used only when license_number is not supplied."New value: +"Partial registered business name, at least 2 characters." - changed
Input schema / properties / license_number / descriptionPrevious value: -"Exact Washington contractor license number, if known."New value: +"Exact Washington contractor license number. Preferred when known." - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum candidate records when searching by business name. Default 5."New value: +"Maximum matches; default 10 and maximum 25."
294 tool updates
- First observed
air_quality - First observed
bank_health_report - First observed
beneficial_owner_screen - First observed
bls_indicator - First observed
bls_series - First observed
book_details - First observed
book_fulltext_search - First observed
book_get_text - First observed
book_search - First observed
book_status - First observed
bounce_scanner - First observed
candlestick_signals - First observed
cargo_crate - First observed
carrier_monitor_recheck - First observed
carrier_vetting_batch - First observed
carrier_vetting_evidence_pack - First observed
carrier_vetting_score - First observed
caselaw_case_details - First observed
caselaw_citation_lookup - First observed
caselaw_opinion_text - First observed
caselaw_search - First observed
cdc_dataset_query - First observed
cdc_drug_overdose_deaths - First observed
cdc_excess_deaths_covid - First observed
cdc_flu_surveillance - First observed
cdc_leading_causes_of_death - First observed
cdc_outbreak_reports - First observed
cdc_vaccination_coverage - First observed
cdc_weekly_deaths_by_state - First observed
census_business - First observed
census_commute_employment - First observed
census_demographics - First observed
census_geography_lookup - First observed
census_income_housing - First observed
census_population - First observed
cfpb_complaint_aggregations - First observed
cfpb_complaint_detail - First observed
cfpb_complaint_trends - First observed
cfpb_search_complaints - First observed
cfpb_state_complaints - First observed
cfpb_suggest_company - First observed
chemical_hazards - First observed
chemical_lookup - First observed
clinical_site_selector - First observed
cms_home_health_search - First observed
cms_hospice_search - First observed
cms_hospital_search - First observed
cms_nursing_home_search - First observed
college_accreditation - First observed
college_compare - First observed
college_demographics - First observed
college_metrics - First observed
college_outcomes_by_program - First observed
college_search - First observed
college_trends - First observed
college_value_score - First observed
company_complaint_profile - First observed
company_info - First observed
company_trust_check - First observed
congress_bill_actions - First observed
congress_bill_cosponsors - First observed
congress_bill_details - First observed
congress_house_votes - First observed
congress_member_details - First observed
congress_recent_laws - First observed
congress_search_bills - First observed
congress_search_members - First observed
contractor_license_sources - First observed
contractor_multistate_route - First observed
corporate_ownership_tree - First observed
cost_of_doing_business_index - First observed
counterparty_risk_score - First observed
court_case_search - First observed
court_citation_resolver - First observed
court_docket_lookup - First observed
court_judge_lookup - First observed
court_opinion_search - First observed
court_oral_argument_search - First observed
court_recent_filings - First observed
cpsc_recall_search - First observed
cpsc_recent_recalls - First observed
crypto_compare - First observed
crypto_info - First observed
crypto_price - First observed
crypto_trending - First observed
cve_lookup - First observed
cve_recent - First observed
cve_search_by_keyword - First observed
cve_search_by_vendor - First observed
cwe_lookup - First observed
disaster_declarations - First observed
disaster_history_summary - First observed
disaster_recovery_profile - First observed
earthquake_recent - First observed
edgar_company_facts - First observed
edgar_company_lookup - First observed
edgar_filing_content - First observed
edgar_filings_by_form_type - First observed
edgar_full_text_search - First observed
edgar_insider_transactions - First observed
edgar_recent_filings - First observed
eia_electricity_state - First observed
eia_energy_consumption - First observed
eia_gasoline_prices - First observed
eia_natural_gas - First observed
eia_oil_supply - First observed
eia_renewable_generation - First observed
eia_series_lookup - First observed
energy_market_snapshot - First observed
entity_dossier - First observed
entity_resolve - First observed
environmental_site_risk - First observed
epa_enforcement_search - First observed
epa_facility_compliance - First observed
epa_facility_details - First observed
epa_facility_search - First observed
epa_water_or_air_violations - First observed
epss_score - First observed
facility_care_quality - First observed
fbi_wanted - First observed
fda_device_510k - First observed
fda_device_recalls - First observed
fda_drug_adverse_events - First observed
fda_drug_lookup - First observed
fda_drug_recalls - First observed
fda_food_recalls - First observed
fdic_deposits - First observed
fdic_failures - First observed
fdic_financials - First observed
fdic_history - First observed
fdic_search_institutions - First observed
fdic_summary - First observed
fec_candidate_details - First observed
fec_candidate_financials - First observed
fec_candidate_search - First observed
fec_committee_search - First observed
fec_independent_expenditures - First observed
flood_zone_lookup - First observed
fmcsa_carrier_authority - First observed
fmcsa_carrier_compare - First observed
fmcsa_carrier_lookup - First observed
fmcsa_carrier_search - First observed
fmcsa_safety_scores - First observed
fred_category_series - First observed
fred_compare - First observed
fred_observations - First observed
fred_quick_indicator - First observed
fred_releases - First observed
fred_search - First observed
fred_series_info - First observed
geocode_address - First observed
geocode_batch - First observed
geocode_coordinates - First observed
github_repo - First observed
grants_get_opportunity - First observed
grants_search - First observed
hurricane_tracker - First observed
influence_network_map - First observed
ip_reputation - First observed
issuer_diligence_dossier - First observed
iv_analytics - First observed
kev_status_check - First observed
kyb_aml_evidence_case_file - First observed
lane_location_risk_pack - First observed
lei_hierarchy - First observed
lei_lookup - First observed
list_tool_groups - First observed
load_tender_fraud_shield - First observed
lobbying_contributions - First observed
lobbying_detail - First observed
lobbying_lobbyists - First observed
lobbying_registrants - First observed
lobbying_search - First observed
local_search - First observed
location_risk_report - First observed
market_size_estimator - First observed
nfip_flood_claims - First observed
nonprofit_details - First observed
nonprofit_lookup_ein - First observed
nonprofit_search_location - First observed
nonprofit_search_name - First observed
nonprofit_status - First observed
npi_lookup - First observed
npi_search_organization - First observed
npi_search_provider - First observed
npi_search_specialty - First observed
npm_package - First observed
nrel_alt_fuel_station_detail - First observed
nrel_alt_fuel_stations - First observed
nrel_pvwatts - First observed
nrel_solar_resource - First observed
nrel_utility_rates - First observed
nws_active_alerts - First observed
ok_wells_search - First observed
open_payments_by_company - First observed
open_payments_by_specialty - First observed
open_payments_national_summary - First observed
open_payments_ownership - First observed
open_payments_research - First observed
open_payments_search - First observed
open_payments_state_totals - First observed
open_payments_top - First observed
options_chain - First observed
options_history_atm_iv - First observed
options_history_chain - First observed
options_history_contract - First observed
options_history_volhist - First observed
org_funding_profile - First observed
package_track - First observed
paper_details - First observed
paper_fulltext_search - First observed
paper_get_text - First observed
paper_search - First observed
paper_status - First observed
parcel_coverage - First observed
parcel_details - First observed
parcel_sales_history - First observed
parcel_search - First observed
patent_assignee_search - First observed
patent_details - First observed
patent_inventor_search - First observed
patent_recent - First observed
patent_search - First observed
prescriber_ties_profile - First observed
price_to_rent_ratio - First observed
product_liability_screen - First observed
property_lookup - First observed
property_search_area - First observed
property_search_owner - First observed
property_value_history - First observed
pypi_package - First observed
rdap_domain - First observed
rdap_ip - First observed
realestate_home_values - First observed
realestate_market_screen - First observed
realestate_rents - First observed
realestate_search - First observed
realestate_status - First observed
realestate_trend - First observed
recall_screen - First observed
recreation_facility_detail - First observed
recreation_nearby - First observed
recreation_search_campsites - First observed
recreation_search_facilities - First observed
recreation_search_recareas - First observed
reg_cfr_search - First observed
reg_cfr_section - First observed
reg_cfr_titles - First observed
reg_document - First observed
reg_search - First observed
resolve_entity - First observed
sanctions_get_changes - First observed
sanctions_get_entity - First observed
sanctions_screen_address - First observed
sanctions_screen_batch - First observed
sanctions_screen_entity - First observed
sanctions_search_alias - First observed
sanctions_status_summary - First observed
search_available_datasets - First observed
security_exposure - First observed
shipper_receiver_counterparty_pack - First observed
spending_award_details - First observed
spending_recipient_summary - First observed
spending_search_awards - First observed
stock_compare - First observed
stock_history - First observed
stock_quote - First observed
stock_quote_batch - First observed
sun_times - First observed
supplier_esg_scorecard - First observed
support_resistance_levels - First observed
talent_market_brief - First observed
tide_predictions - First observed
treasury_auctions - First observed
treasury_cash_balance - First observed
treasury_debt - First observed
treasury_exchange_rates - First observed
treasury_interest_rates - First observed
trials_details - First observed
trials_search - First observed
tx_wells_near - First observed
usgs_earthquake_detail - First observed
usgs_earthquake_feed - First observed
usgs_earthquake_search - First observed
usgs_water_realtime - First observed
vehicle_recalls - First observed
vin_decode - First observed
wa_contractor_verify - First observed
water_levels - First observed
weather_current - First observed
weather_forecast - First observed
worldbank_compare - First observed
worldbank_country_profile - First observed
worldbank_indicator
Related MCP Connectors
Read-only US public-data screening tools with free Basic and Evidence tiers.
Verified data on 8,000+ AI tools: live status, pricing, sentiment, alternatives. Free, read-only.
Normalized official data with provenance, aggregations, insights, free samples and agent access.
Normalized official data with provenance, aggregations, insights, free samples and agent access.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables querying, sampling, and exporting datasets from over twenty keyless free public data sources spanning the EU, Switzerland, Germany, the US, and global providers through one uniform set of tools. A single consistent interface lets users list databases and tables, inspect schemas and query guides, run queries, and export results as CSV or JSON without per-API clients.Apache 2.0
- AlicenseNot gradedqualityDmaintenance26 US federal data domains as 23 MCP tools. Ed25519 signed responses. Free, no API key.68 npm1MIT
- AlicenseBqualityAmaintenanceMCP server + TypeScript SDK for 36 U.S. government data APIs — 188 tools. Treasury, FRED, Congress, FDA, CDC, FEC, lobbying, and more. Works with VS Code Copilot, Claude Desktop, Cursor.345174 npm110MIT

dynamicfeed-mcpofficial
AlicenseNot gradedqualityCmaintenance62 live, cryptographically signed data tools for AI agents and robots: weather, natural hazards, flights, shipping, space, CVEs, sanctions, software versions, sea ice and more. Every datapoint carries source, licence, timestamp and an Ed25519 signature.10 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.