Skip to main content
Glama

Server Details

294 public-data tools across 60 domains; source freshness varies. Free tier.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 43 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
blackboxfoundry/livedatalink
GitHub Stars
0
Server Listing
LiveDataLink

TDQS

B3.4/5.0

Scored across 381 tools

Disambiguation2/5

The set contains many overlapping cross-source synthesis tools, e.g. resolve_entity, entity_resolve, entity_dossier, company_trust_check, counterparty_risk_score, kyb_aml_evidence_case_file, and issuer_diligence_dossier all target similar company-diligence questions with subtle boundary differences. Similarly, recall_screen, cpsc_recall_search, fda_drug_recalls, product_liability_screen, and company_complaint_profile overlap on product-safety/consumer-risk workflows. With 381 tools, an agent faces high misselection risk despite generally detailed individual descriptions.

Naming Consistency4/5

Tool names are overwhelmingly lowercase snake_case, with no camelCase or chaotic mixing. Domain-prefix conventions vary (e.g. census_, fdic_, fbi_cde_, weather_current, stock_quote), but the style is still broadly predictable and readable. Minor deviations such as some tools having no domain prefix keep this from a 5.

Tool Count1/5

381 tools is an extreme mismatch for a coherent tool set, far beyond the typical 3-15 well-scoped tools. Even with group-filtering tools like list_tool_groups and search_available_datasets, the full surface is too large for reliable agent selection. This is the server's most severe coherence problem.

Completeness4/5

The surface spans 82 data domains and includes search, lookup, history, comparison, and synthesis patterns across most areas, so obvious lifecycle gaps are limited for a read-only data-retrieval server. Some domains are thinner or demo-only, notably property/parcel coverage, and a few source limitations remain, which prevents a perfect score. Overall coverage is unusually broad rather than incomplete.

Available Tools

381 tools
affordable_housing_refinance_evidence_packA
Read-onlyIdempotent
Inspect

Return a source-linked, state-level evidence pack for official HUD FHA maturity records and HUD LIHTC year-15 screening signals in one date window. Use this for affordable-housing debt or timing diligence. The two source sets are not silently property-matched because FHA's public workbook lacks a street-address key; results never claim a refinance opportunity, contact, valuation, or affordability expiration.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
stateYes
end_dateYesInclusive YYYY-MM-DD window end.
start_dateYesInclusive YYYY-MM-DD window start.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description is free to add higher-value context — and it does: the two source sets are not silently property-matched because FHA's workbook lacks a street-address key, and results make no refinance/contact/valuation/affordability-expiration claims. That is unusually candid about analytical limitations and non-claims.

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

Conciseness4/5

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

Two dense sentences with the deliverable front-loaded and the caveats second; nothing is filler. Slightly heavy clause packing, but every clause carries distinct information.

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

Completeness4/5

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

For a five-parameter, no-output-schema composite tool, the description covers scope, source composition, and explicit non-claims. It leaves pagination/limit behavior and the shape of the returned pack unstated, but the core decision inputs are present.

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

Parameters3/5

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

Schema coverage is 60% (start_date, end_date, response_format documented; state and limit bare). The description reinforces the state-level and date-window framing but adds no syntax, default, or meaning for the undocumented 'limit' parameter or any new detail beyond the schema. Baseline 3 fits.

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

Purpose5/5

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

States a specific verb and composite resource ('return a source-linked, state-level evidence pack') and names both underlying source sets (HUD FHA maturity records, HUD LIHTC year-15 signals) plus the scope (one date window). An agent can distinguish this composite pack from the sibling single-source tools hud_fha_maturity_search and hud_lihtc_year15_radar 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.

Usage Guidelines3/5

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

'Use this for affordable-housing debt or timing diligence' gives an intended use case, which is more than nothing. However it never names the narrower siblings (hud_fha_maturity_search, hud_lihtc_year15_radar) or states when to prefer them over this combined pack, so the routing decision is left implicit.

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

air_qualityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesCity, zip code, or place name

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

For a single-parameter read-only tool with 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_reportA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bankNoBank or savings institution name (e.g. 'JPMorgan Chase Bank', 'Cross River Bank'). Use the full legal name for best matching.
certNoOptional FDIC certificate (CERT) number for an exact institution match, used instead of a name.

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

With no output schema, the description still 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_statesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesFour-digit calendar year. Hosted source coverage is reported in every response.
indicatorYesSupported indicator slug/name or BEA SASUMMARY line code; examples: gdp, real_gdp, personal_income, per_capita_personal_income, regional_price_parities, total_employment.
geographiesYesTwo to eight distinct state selectors.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered. The description adds genuinely non-obvious behavioral context: output is sorted high-to-low, includes exact unit, missing-value evidence, GeoFIPS, source hash, and attribution. It does not disclose rate limits or the 2–8 boundary's behavior at the edges, but it goes well 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.

Conciseness4/5

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

Four sentences, front-loaded with the core action before examples and the scope caveat. Each sentence earns its place, though the enumeration of return fields is slightly list-like rather than tightly worded.

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

Completeness4/5

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

There is no output schema, so the description carries the return-value burden and it does list key output fields (sorted values, unit, missing-value evidence, GeoFIPS, source hash, attribution). Combined with full schema coverage and read-only annotations, an agent has what it needs; only edge-case parameter behavior (e.g., duplicate/over-8 selectors) is left unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents year, indicator (with example slugs), geographies, and response_format. The description restates the 2–8 state constraint and names example indicators, adding marginal value but no new syntax or format 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.

Purpose5/5

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

The description states a specific verb (Compare) and resource (one official BEA SASUMMARY annual indicator across 2–8 requested states) for an exact year, and it bounds scope with 'It does not rank all states unless they are explicitly supplied.' This differentiates it from trend/profile siblings 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.

Usage Guidelines4/5

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

Three concrete usage examples ('compare 2024 Texas and California GDP', 'which of these states had higher 2023 per-capita income?', 'compare regional price levels') make the intended call pattern obvious, and the closing sentence defines a scope limit. However, it never names an alternative sibling (e.g., bea_state_economic_trend) or states when to prefer one, so it falls short of explicit 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.

bea_search_state_indicatorsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results. Default 20.
queryNoOptional words matched against indicator name, definition, and unit.
offsetNoResults to skip. Default 0.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds real value beyond them by enumerating the returned payload (canonical names, definitions, units, coverage, pagination, evidence hash, attribution) and pinning the data scope to a compact annual snapshot of 15 indicators. It does not mention auth or rate limits, so not 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.

Conciseness4/5

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

Three sentences, front-loaded with the resource and scope, followed by concrete use cases and the boundary statement. Dense but every clause carries information; the first sentence is long yet not padded.

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

Completeness4/5

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

There is no output schema, so the description carries the burden of explaining returns, and it does list the payload fields. Scope boundaries are explicit. It falls short of a 5 only because pagination mechanics and the meaning of the 'evidence hash' are not explained.

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

Parameters3/5

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

Schema description coverage is 100% with all four parameters documented (limit, query, offset, response_format), so the baseline is 3. The description adds only marginal meaning beyond the schema, hinting that the query matches names/definitions/units and that pagination exists, but gives no syntax or format guidance.

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

Purpose5/5

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

States a specific verb (search) and resource (the 15 indicators in LiveDataLink's self-hosted official BEA SASUMMARY annual state snapshot), and the second half of the description explicitly bounds the scope against the full BEA API and industry detail. This lets an agent distinguish it from siblings like bea_state_economic_history or bea_compare_states 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.

Usage Guidelines5/5

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

Gives explicit trigger questions ('what BEA state measures are hosted?', 'find regional price parity') and names the downstream workflow it feeds ('resolve an indicator before a history call'). It also states when not to use it ('not the full BEA API or industry detail'), which is rare and useful.

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

bea_state_economic_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum years. Default 20.
offsetNoYears to skip. Default 0.
end_yearNoFour-digit calendar year. Hosted source coverage is reported in every response.
geographyYesState name, USPS abbreviation, 5-digit state-summary GeoFIPS, or United States/US.
indicatorYesSupported indicator slug/name or BEA SASUMMARY line code; examples: gdp, real_gdp, personal_income, per_capita_personal_income, regional_price_parities, total_employment.
start_yearNoFour-digit calendar year. Hosted source coverage is reported in every response.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the read-only/idempotent/open-world profile, so the bar is lower, and the description adds real value: it enumerates returned fields (value, unit, GeoFIPS, pagination, source update date, evidence hash, attribution) and discloses the revision caveat ('BEA can revise prior vintages'). That revision behavior is a genuine behavioral trait 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.

Conciseness4/5

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

Front-loaded with the core purpose, followed by return contents and then three illustrative examples. Every sentence carries information; only minor tightening is possible around the example list.

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

Completeness3/5

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

For a tool with no output schema, the description does well to list return fields and revision behavior. It is incomplete on two points an agent needs: how to choose this over bea_state_economic_trend, and how the year-range filters relate to the limit/offset pagination.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds only light framing ('bounded', 'state GeoFIPS', 'unit') that the schema already carries, and it does not clarify how limit/offset interact with start_year/end_year.

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

Purpose4/5

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

States a specific verb ("Return") and resource ("bounded annual history for one official BEA SASUMMARY state or U.S. indicator"), making the operation clear. It does not differentiate from sibling BEA tools such as bea_state_economic_trend, which reads as an overlapping concept, so an agent cannot disambiguate by description alone.

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

Usage Guidelines3/5

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

The concrete example queries ("Texas real GDP since 2018", "US employment by year") give implied usage context, and the scope note ('Published aggregate annual estimates only') bounds the domain. However, no when-not guidance or named alternatives are given, so the split against bea_state_economic_trend, bea_state_economic_profile, and bea_compare_states 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.

bea_state_economic_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geographyYesState name, USPS abbreviation, 5-digit state-summary GeoFIPS, or United States/US.
as_of_yearNoFour-digit calendar year. Hosted source coverage is reported in every response.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/openWorld/non-destructive, so the bar is lower. The description still adds genuinely useful conduct: mixed vintages ('Each value carries its own year and unit because source update calendars differ') and the scope disclaimer ('Aggregate estimates only; not a forecast or investment recommendation'). It does not explain response payload shape, but that is a minor omission here.

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

Conciseness4/5

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

Three sentences, front-loaded with purpose and scope, then the vintage caveat, then usage examples and disclaimers. Every sentence carries information, though the indicator enumeration is somewhat list-heavy.

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

Completeness4/5

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

No output schema exists, so the description must carry the return-value burden and does so at a useful level (15 indicators, per-value year/unit, aggregate-only). The main missing element is explicit routing against its BEA siblings, which prevents a 5.

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

Parameters3/5

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

Schema description coverage is 100%, so geography, as_of_year, and response_format are already documented in the schema. The description corroborates the geography scope ('one state or the United States') but adds no format or constraint detail 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.

Purpose4/5

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

Specific verb ('Build') plus resource ('official BEA annual economic profile') and an explicit scope ('one state or the United States across all 15 hosted SASUMMARY indicators'). It is clear what the tool returns, but it never names or distinguishes itself from the four sibling BEA tools (bea_state_economic_history, bea_state_economic_trend, bea_compare_states, bea_search_state_indicators), so an agent must infer which BEA tool applies.

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

Usage Guidelines4/5

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

Gives concrete trigger phrases ('BEA profile for North Carolina', 'state GDP income jobs packet') and positions the tool as a component of a regional market brief alongside Census/BLS/SBA/FDIC data. It stops short of stating when NOT to use it or which BEA sibling to prefer for time-series or comparison 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_trendA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geographyYesState name, USPS abbreviation, 5-digit state-summary GeoFIPS, or United States/US.
indicatorYesSupported 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_yearNoFour-digit calendar year. Hosted source coverage is reported in every response.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower; the description still adds real context by disclosing the return payload (component observations, absolute/percent changes, CAGR, units, vintage evidence, caveats) and the temporal-safety role of as_of_year. This goes beyond what the annotations convey.

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

Conciseness5/5

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

Three sentences, front-loaded with the core verb and resource, then returns, then use cases and the as-of caveat. Every sentence carries distinct information with no filler.

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

Completeness4/5

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

With no output schema, the description usefully enumerates what comes back, covers all four parameters, and supplies invocation examples, making it largely self-sufficient. The one gap is sibling routing: an agent choosing between this and bea_state_economic_history gets no explicit guidance.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3; the description earns an extra point by explaining the semantic intent of as_of_year ('prevents future observations from entering a historical calculation'), which the schema only weakly hints at. It adds no syntax beyond the schema for the other three parameters.

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

Purpose4/5

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

States a specific verb+resource ('Calculate prior-observation and exact five-year changes for one official BEA SASUMMARY state indicator') and enumerates the returned components, so the agent knows exactly what computation this performs. It does not name the adjacent siblings (bea_state_economic_history, bea_state_economic_profile, bea_compare_states), so differentiation is left to inference from the 'trend/change' framing.

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

Usage Guidelines4/5

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

Three concrete invocation examples ('five-year Florida GDP trend', 'how has Ohio employment changed?', 'California real per-capita income growth') give clear context for when this tool applies. It stops short of stating when NOT to use it or naming an alternative sibling for profile/history lookups.

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

beneficial_owner_screenA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoOptional exact 20-character LEI code to anchor the ownership chain directly (e.g. '5493006MHB84DD0ZWV18'). Overrides a name search.
companyNoCompany / organization name (e.g. 'Alphabet Inc.', 'JPMorgan') or a 20-character LEI code. Provide this or 'lei'.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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

With no output schema, the description still 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.

Parameters4/5

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.

Purpose5/5

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

The description states a specific verb and resource: 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.

Usage Guidelines4/5

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_indicatorA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_yearNoEnd year (optional; defaults to current year).
indicatorNoIndicator 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_yearNoStart year (optional; defaults to ~3 years back).

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real value beyond that: it discloses the return shape (a monthly time series) and the authentication posture (keyless, official BLS data), both of which the annotations do not convey.

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

Conciseness4/5

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

Three short, front-loaded sentences with no filler; the capability statement comes first and the operational details (indicator list, return shape, keyless access) follow compactly. Minor redundancy between the indicator list here and in the schema.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does state that a monthly time series is returned, plus that no key is required. It omits units/seasonal-adjustment conventions, which would be helpful for a statistics tool, but nothing critical to calling it is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the indicator list and the start/end year defaults are already documented in the schema. The description repeats the indicator enumeration but adds no syntax, unit, or frequency detail beyond it, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb+resource (US labor & price statistics from BLS) and enumerates the nine friendly indicator names, making the scope concrete. It does not explicitly name the nearest sibling (bls_series) or explain how the friendly-name lookup differs from a series-ID lookup, so sibling differentiation is only implied.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not guidance and no named alternative, despite several overlapping siblings (bls_series, fred_quick_indicator, fred_observations) that an agent must choose between. The indicator list implies usage but does not help the agent route correctly.

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

bls_seriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_yearNoEnd year (optional).
series_idYesBLS series ID, e.g. 'LNS14000000'.
start_yearNoStart year (optional).

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety profile is well covered. The description adds only that the series ID is raw and gives examples; it omits behavior such as default date ranges, return format, or how start_year/end_year affect the fetched time series.

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

Conciseness5/5

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

The description is two tightly written sentences with no wasted words. The core capability and usage condition are front-loaded, 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.

Completeness3/5

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

For a simple lookup tool with rich annotations, the description covers what the tool does and when to use it. However, because there is no output schema, it should ideally explain what the fetched time series returns or how start_year/end_year defaults work, leaving a moderate completeness gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description's mention of 'raw series ID' and example IDs adds slight meaning beyond the schema, but it does not elaborate on start_year or end_year semantics, making the baseline 3 appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'Fetch any BLS time series by its raw series ID.' It distinguishes the tool's input mode from likely siblings by emphasizing exact 'raw series ID' usage and provides concrete examples such as 'LNS14000000'.

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

Usage Guidelines4/5

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

It clearly states when to use the tool: 'For when you know the exact BLS series ID.' However, it does not name an alternative for when the exact ID is unknown, such as a search or indicator-based sibling tool.

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

book_detailsA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
gutenberg_idYesProject Gutenberg ebook id, e.g. 84 (Frankenstein).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, openWorld, and non-destructive behavior, so the safety profile is covered. The description adds real value by enumerating what is returned (title, authors, subjects, languages, copyright, download count, full-text index status), which matters since 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.

Conciseness5/5

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

A single front-loaded sentence with an enumerated parenthetical; every clause earns its place and nothing is repeated or padded.

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

Completeness4/5

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

For a read-only single-record lookup with annotations covering safety and a description enumerating the return fields, an agent has what it needs despite the absence of an output schema. Only the lack of sibling routing keeps it from the top band.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already names and exemplifies the id ('84 (Frankenstein)'). The description's 'Project Gutenberg id' adds no syntax or format detail 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.

Purpose4/5

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

States a specific verb ('Get full catalog metadata') and resource ('a single book by its Project Gutenberg id'), and enumerates the returned fields, which implicitly separates it from the search and full-text siblings. It does not explicitly name a sibling it is not, so it falls just short of the top band.

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

Usage Guidelines3/5

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

The phrase 'single book by its Project Gutenberg id' conveys the usage context (a known-id metadata lookup) but offers no explicit when-to-use/no-use guidance and never points to book_search or book_get_text as alternatives. Minimum viable context only.

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

book_get_textA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_seqNoPassage index to start from (0-based, default 0).
gutenberg_idYesProject Gutenberg ebook id.
max_passagesNoMaximum passages to return per call (default 40, max 200).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds real behavioral value beyond them: it is paginated by passage and falls back to returning a public URL for un-indexed books. However it never says what a 'passage' is, whether a total count is returned, or how the agent knows paging is exhausted.

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

Conciseness5/5

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

Three sentences, zero filler, front-loaded with the core action before the paging instruction and the fallback caveat. Every sentence carries distinct information.

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

Completeness4/5

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

With no output schema, the description does explain the two possible return shapes (paginated passage text or a gutenberg.org URL), which is the critical thing an agent needs. It stops short of explaining pagination termination or passage granularity, a minor gap for a paged-text tool.

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

Parameters3/5

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

Schema description coverage is 100%, with defaults and min/max bounds documented for all three parameters, so the schema does the heavy lifting and a 3 is the baseline. The description reinforces the paging contract (from_seq + max_passages) but adds no syntax or semantic detail the schema lacks.

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

Purpose4/5

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

States a specific verb and resource ('Return the full text of an indexed book by Gutenberg id') and carves out the indexed-vs-catalog scope. It does not name the closely related siblings (book_fulltext_search, book_details) that an agent might otherwise pick, 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.

Usage Guidelines3/5

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

It says to use from_seq + max_passages to page through the text, which is parameter usage rather than tool selection. It does give one genuine routing condition ('for books NOT indexed locally, returns the gutenberg.org URL'), but never says when to prefer this over book_fulltext_search or book_search.

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

book_statusA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_scannerA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoA single ticker (e.g. 'AAPL'). Use this or `symbols`.
symbolsNoMultiple tickers to scan (max 15).
ma_periodNoSimple moving-average period used as a dynamic support reference (default 50).
lookback_daysNoTrailing daily bars to analyze (default 180).
proximity_pctNoHow close (percent) price must be to support/MA to count as 'near' (default 3).
rsi_thresholdNoRSI(14) must be at or below this to qualify as oversold (default 35).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds real value beyond them: it declares the signal is a heuristic for research rather than advice, discloses that it runs on daily bars, and enumerates the returned fields (score 0-100, reasons, etc.) in the absence of an output schema. It does not mention data-source freshness or rate limits, keeping it 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.

Conciseness4/5

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

Front-loaded with the screening purpose, followed by the criteria, return shape, tunability, and disclaimer in four tight sentences. The parenthetical list of tunable params is mildly redundant with the schema, but every sentence carries information and nothing is padded.

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

Completeness5/5

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

With no output schema, the description compensates by naming the per-symbol return fields. It covers purpose, criteria, tunable inputs, output shape, and the heuristic caveat, and annotations handle the safety profile. An agent has everything needed to decide and call correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so a baseline of 3 applies. The description goes further by framing all four threshold inputs (rsi_threshold, ma_period, proximity_pct, lookback_days) as the tuning surface, telling the agent that calibration is achieved by parameter change rather than implying fixed behavior. It does not restate defaults or ranges, which the schema already supplies.

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

Purpose5/5

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

States a specific verb (screen) and resource (US tickers on daily bars) and enumerates the exact conditions defining a 'bounce' (proximity to support/MA, oversold turning-up RSI, bullish candle, above-average volume). This is distinguishable from siblings like candlestick_signals or support_resistance_levels, which surface raw components rather than a combined screen.

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

Usage Guidelines3/5

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

The description implies usage ('Screen one or more US tickers', 'HEURISTIC signal for research, not investment advice') and the criteria make clear when a symbol would qualify, but it never states when to prefer this tool over candlestick_signals, support_resistance_levels, or stock_quote. No explicit 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.

bts_transport_border_activity_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesExact BTS four-digit port code or an unambiguous U.S. land-border port name. Search first when needed.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
trailing_monthsNoMonths per current/prior comparison window. Default 12.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real context beyond that: measures are kept separate by mode, output includes window totals, completeness, and percent change, and it guarantees it never fabricates a total across incompatible measures.

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

Conciseness5/5

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

Three sentences, each earning its place: the first defines the output, the second defines the composition and metrics, the third gives usage triggers and boundaries. The core purpose is front-loaded with no filler.

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

Completeness4/5

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

With no output schema, the description carries return-value burden and does so reasonably (window totals, completeness, percent change, per-mode separation). Minor gaps remain on the exact shape of the pack and how prior-window defaults resolve, but 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents port, response_format, and trailing_months with types, bounds, and defaults. The description adds no parameter-level detail (e.g., how trailing_months interacts with the current/prior windows), so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (combine) and resource (every available official BTS crossing measure for one land-border port) and names the deliverable (a provenance-backed current-versus-prior activity evidence pack). The 'for one land-border port' scope and the aggregate-measures framing distinguish it from the sibling search/compare/trend tools 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.

Usage Guidelines4/5

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

Gives explicit triggering examples ('build a border activity pack for Laredo', 'what changed at Otay Mesa?', logistics/corridor briefing) and a negative boundary ('not a congestion or wait-time measure'). It does not explicitly route to the sibling alternatives (bts_transport_search_ports, bts_transport_compare_ports, bts_transport_border_trend), so the when-not-this guidance is incomplete.

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

bts_transport_border_trendA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesExact BTS four-digit port code or an unambiguous U.S. land-border port name. Search first when needed.
limitNoMaximum monthly observations. Default 24.
offsetNoObservations to skip. Default 0.
measureYesOfficial BTS crossing measure. Measures have different units and must not be added together.
end_monthNoCalendar month in YYYY-MM format.
start_monthNoCalendar month in YYYY-MM format.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds real behavioral detail beyond that — data comes from a 'self-hosted snapshot', results are bounded and paginated, and each row carries a source hash and provenance for reproducibility. The most valuable addition is the unit caveat: counts are inbound crossing events, not unique vehicles or people, which prevents a common misinterpretation.

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

Conciseness4/5

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

Three sentences, front-loaded with the core operation before the examples and the unit caveat. Every sentence contributes, though the example list is slightly long relative to the amount of new information it conveys.

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

Completeness5/5

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

With no output schema, the description carries the return-shape burden and does so: exact month, crossing count, stable port identity, pagination, source hash, provenance. Combined with the usage examples and the counting-semantics caveat, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, including enum and format notes for measure, month patterns, and pagination bounds, so the schema does the heavy lifting and a 3 is the baseline. The description adds only the consistency constraint ('one consistent crossing measure') and the notion of a bounded window, which is marginally useful but largely restates the schema.

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

Purpose4/5

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

The description names a specific verb and resource ('Return a bounded monthly history for one official BTS land-border port and one consistent crossing measure') and scopes it tightly to a single port plus a single measure. That scoping implicitly contrasts with compare_ports and search_ports, but no sibling is named outright, so it stops short of a 5.

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

Usage Guidelines4/5

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

It gives concrete invocation contexts ('monthly truck crossings at Laredo', 'pedestrian crossings at San Ysidro since 2023', a reproducible port-volume chart), which tells the agent when this tool fits. It never states when to prefer bts_transport_compare_ports or bts_transport_border_activity_pack instead, so there is 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.

bts_transport_compare_portsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
portsYesTwo to eight exact four-digit port codes or unambiguous port names.
measureYesOfficial BTS crossing measure. Measures have different units and must not be added together.
end_monthNoCalendar month in YYYY-MM format.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
trailing_monthsNoMonths per current/prior comparison window. Default 12.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that: it discloses ranking behavior, that a prior-window count and reported-month completeness are returned, and that port codes are stable and provenance is included — meaningful for a tool with 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.

Conciseness5/5

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

Three sentences, each earning its place: action and scope first, then returned fields, then usage examples and exclusions. Front-loaded and free of redundancy.

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

Completeness5/5

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

With no output schema, the description correctly compensates by enumerating the return contents (prior-window count, completeness, percent change, window, codes, provenance). Scope, usage, and exclusions are all present, leaving nothing essential missing for a correct call.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the schema already spells out the ports count bounds, the measure enum, and the trailing_months window. The description adds conceptual meaning beyond the schema by framing the window as a shared rolling current/prior comparison, tying trailing_months and end_month to a concrete comparison model.

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

Purpose4/5

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

States a specific verb (compare), resource (U.S. land-border ports), and scope (two to eight ports, one BTS measure, shared rolling window). Clear and unambiguous, but it never names its closest siblings (bts_transport_border_trend, bts_transport_search_ports), so sibling differentiation is left implicit.

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

Usage Guidelines4/5

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

Provides two concrete invocation examples ('compare truck crossings at Laredo, El Paso, and Otay Mesa') and explicit exclusions ('does not compare wait times, outbound flows, or cargo value'). Strong when/when-not guidance, though it does not point to the alternative tool to use instead for those excluded cases.

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

bts_transport_search_portsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum ports. Default 20.
queryNoPort name, state, or exact four-digit port code.
stateNoExact state name, such as Texas or New York.
borderNoOptional official BTS border label.
offsetNoPorts to skip. Default 0.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world. The description goes beyond them by disclosing the returned fields (port codes, coordinates, measures, coverage, pagination, provenance) and the inbound-only scope constraint. It doesn't cover rate limits or auth given the self-hosted snapshot, but it adds meaningful context over the structured hints.

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

Conciseness4/5

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

Three front-loaded sentences: purpose/source, return payload, and use cases with exclusions. The return-field enumeration is a touch long but each element is informative. Overall tight with no filler.

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

Completeness4/5

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

There is no output schema, so the description usefully compensates by listing the return fields, coverage, pagination, and provenance. Combined with annotations covering the safety profile and a fully documented input schema, an agent has nearly everything needed; only filter-combination semantics are left unstated.

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

Parameters3/5

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

Schema description coverage is 100% with per-field descriptions (limit, query, state, border, offset, response_format), so the schema already carries parameter meaning. The description adds only indirect hints via examples ('Laredo', 'Arizona') and doesn't specify query format or how filters combine. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (Search) and resource (U.S. land-border ports) with the exact data source, and distinguishes scope with 'Inbound land ports only; not wait times or outbound traffic.' An agent can separate it from the sibling border tools (trend, compare_ports, activity_pack) 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.

Usage Guidelines4/5

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

Offers concrete when-to-use triggers in quotes ('find the Laredo border port code', 'which Arizona ports have truck crossings?') and wraps the workflow ('resolve a port before a trend call'), plus an explicit exclusion for wait times and outbound traffic. It stops short of naming the actual sibling alternatives (e.g., bts_transport_compare_ports), so routing is implied rather than fully explicit.

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

candlestick_signalsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesUS ticker (e.g. 'MSFT').
lookback_daysNoTrailing daily bars to scan for patterns (default 60).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the bar is lower; the description adds genuinely new context by disclosing that detection is HEURISTIC with conservative default thresholds and that output is not investment advice. It also spells out the returned fields (pattern, date, direction, barIndex), which goes beyond the annotations. Rate limits or latency are not mentioned, keeping it below 5.

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

Conciseness4/5

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

Front-loaded with the verb and scope, then return shape, then caveat. The pattern enumeration is long but useful for matching a user's request; nothing is padded, though the sentence is dense.

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

Completeness4/5

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

No output schema exists, but the description compensates by naming the returned fields, and it discloses the heuristic nature and disclaimer. With annotations covering the safety profile and the schema covering both parameters, the definition is complete enough to invoke correctly; only the absence of usage routing against siblings is a gap.

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

Parameters3/5

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

Schema coverage is 100%, so symbol and lookback_days are already fully documented in the schema (including the default of 60 and the 5-400 range). The description adds only the vague phrase 'recent daily bars', so baseline 3 is correct.

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

Purpose5/5

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

States a specific verb (detect) and resource (classic candlestick patterns) scoped to a ticker's recent daily bars, and enumerates the exact patterns covered. This clearly separates it from sibling tools like support_resistance_levels, iv_analytics, or stock_history, which do different technical work on the same instrument.

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

Usage Guidelines3/5

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

Usage context is implied by 'on a ticker's recent daily bars' and the research disclaimer, but no explicit when-to-use, when-not, or alternative is named (e.g., no routing versus other technical-analysis siblings). An agent can infer intent but gets no explicit guidance.

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

cargo_crateA
Read-onlyIdempotent
Inspect

Look up a Rust crate on crates.io: latest version, description, total downloads, repository, and homepage. Keyless.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCrate name, e.g. 'serde'.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a simple one-parameter, read-only 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.

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb and resource: '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.

Usage Guidelines4/5

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_recheckA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcNoMC/MX number without the prefix.
dotNoUSDOT number (preferred).
nameNoCarrier legal name when DOT/MC is unavailable.
formatNoReport format. Defaults to markdown.
previous_snapshotNoPrior carrier_vetting result or JSON snapshot returned by an earlier call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-structured behavior: it discloses that LiveDataLink does not retain customer watchlists, so the caller must persist the snapshot and drive the schedule itself — important state-management context.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, then comparison scope, then operational guidance. Every sentence carries distinct load with no repetition or filler.

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

Completeness5/5

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

With no output schema, the description fully covers return values (unchanged/changed status, severity, field-level changes, next reviewer action) and the persistence/scheduling workflow. Nothing an agent needs to invoke or chain this tool is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by clarifying the snapshot lifecycle: DOT/MC/name are the lookup inputs and previous_snapshot is the prior carrier_vetting result or JSON snapshot returned by an earlier call, which explains how the param relates to the tool's output.

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

Purpose5/5

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

States a specific verb+resource ('Recheck an existing carrier snapshot') and the exact comparison intent ('identify meaningful changes since the previous check'). This distinguishes it from the initial-vetting siblings like carrier_vetting_score by framing it as a diff against a prior snapshot, and it enumerates the compared fields, so an agent knows precisely what it does.

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

Usage Guidelines4/5

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

Gives concrete when-to-use context ('call this on a schedule' after storing a snapshot) and implies the prerequisite that a prior result must exist as previous_snapshot. It does not explicitly name a sibling as the alternative for initial vetting, but the operating context is clear.

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

carrier_vetting_batchA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format. Defaults to markdown.
dot_numbersYes1-10 USDOT numbers. A comma-separated string is also accepted for agent convenience.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive, and openWorld, so the bar is lower; the description still adds real value by disclosing the per-carrier verdict scheme, source coverage and failure reporting, and the analytical-aid disclaimer. It doesn't describe rate limits or latency, but 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.

Conciseness5/5

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

Four sentences, front-loaded with purpose, then returns, then usage, then disclaimer. Each sentence carries distinct information and none is filler.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so fully (per-carrier verdict, coverage, failures, signals, export formats). Parameters are covered by the schema and safety by annotations, so 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.

Parameters3/5

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

Schema coverage is 100%, and both parameters are fully documented there ('1-10 USDOT numbers,' format enum with default). The description merely restates the 10-carrier cap and the format options, adding no syntax or format detail beyond the schema.

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

Purpose4/5

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

States a specific verb (Vet), resource (batch of up to 10 US motor carriers by USDOT number), and outcome (GO/CAUTION/NO-GO). The 'batch' and 'in one workflow call' framing implicitly distinguishes it from single-carrier siblings like carrier_vetting_score, but no sibling is named explicitly.

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

Usage Guidelines4/5

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

Gives clear usage context: 'screen a broker's candidate list or lane roster,' plus a useful caveat that each carrier is evaluated independently so one failure doesn't hide others. It does not name an alternative tool or state explicit 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.

carrier_vetting_evidence_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcNoMC/MX number without the prefix.
dotNoUSDOT number (preferred exact identifier).
nameNoLegal carrier name when DOT/MC is unavailable.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuine value beyond them: it discloses that source coverage and failures are surfaced, that a retrieval timestamp is included, and that the output is advisory rather than authoritative. It does not detail pagination or size limits, but for a read-only pack tool this is strong.

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

Conciseness4/5

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

Purpose and scope are front-loaded in the first sentence, with the alternative-tool routing at the end. The middle output enumeration is a dense comma-separated list, but each item is substantive and none is filler.

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

Completeness5/5

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

With no output schema and no required parameters, the description carries the burden of explaining what comes back - and it does: verdict, evidence, sanctions/court/federal-award checks, source coverage and failures, timestamp, primary-source links, and a follow-up checklist. It also flags the authority limitation. Nothing material is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents mc, dot and name, including that dot is the 'preferred exact identifier'. The description's 'Resolve a US motor carrier by USDOT, MC, or legal name' merely restates those fields, adding no format or precedence detail beyond what the schema provides.

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

Purpose5/5

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

States a specific verb+resource ('Produce an auditable Carrier Vetting Pack for a freight broker'), names the resolution keys, and enumerates the concrete outputs (GO/CAUTION/NO-GO verdict, FMCSA evidence, sanctions checks). It explicitly differentiates itself from 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.

Usage Guidelines5/5

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

Names the alternative (carrier_vetting_score) and the exact condition that selects this tool: 'use it when a human reviewer needs to save or forward the record.' It also states the exclusions - it is 'an analytical aid, 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_scoreA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcNoMC (motor carrier) number, without the 'MC-' prefix. Used if no DOT number is given.
dotNoUSDOT number of the carrier (most precise). Example: 76830.
nameNoCarrier 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

A4.4/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly/idempotent/openWorld), while the description adds substantial behavioral detail: the exact NO-GO and CAUTION trigger conditions, how unavailable sources are handled, and an explicit 'analytical aid, not a substitute' disclaimer. This is rich disclosure well beyond what the structured fields provide.

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

Conciseness4/5

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

The description is a single dense paragraph, but it is front-loaded (purpose, then inputs, then data sources, then decision rules, then disclaimer) and every sentence carries information. It is on the longer side but the length is justified by the tool's complexity.

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

Completeness5/5

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

With no output schema, the description fully explains the return shape (GO/CAUTION/NO-GO plus reasons and underlying fields) and enumerates the contributing data sources. For a multi-source analytical tool with annotations already covering safety, 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents dot, mc, and name with precedence rules. The description only restates that any of the three identifiers may be given and adds no syntax or precedence detail 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.

Purpose5/5

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

States a precise verb+resource+scope: 'Vet a US motor carrier (trucking company) for a freight-brokerage review, in one call.' This clearly distinguishes it from sibling aggregators like carrier_vetting_evidence_pack and carrier_vetting_batch, and from raw-data tools 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.

Usage Guidelines4/5

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

Gives clear context (freight-brokerage carrier onboarding) and notes it accepts DOT, MC, or name, plus 'in one call' implying it consolidates several lookups. It does not, however, explicitly name when to prefer siblings such as carrier_vetting_batch or the raw fmcsa_* lookups over this one.

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

caselaw_case_detailsA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCAP case id, e.g. 11301409 (Brown v. Board of Education).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description usefully signals that only metadata plus a source URL is returned (full text lives elsewhere), but it says nothing about not-found behavior, rate limits, or auth requirements.

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

Conciseness5/5

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

One front-loaded sentence with the verb, key, and return fields; the parenthetical field list is compact and every element earns its place. No preamble or filler.

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

Completeness4/5

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

With no output schema, the description compensates by enumerating the returned metadata fields, including the full-text source URL. It is nearly complete for a single-entity lookup; only edge-case behavior (invalid/unknown id) is unaddressed.

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

Parameters3/5

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

Single parameter with 100% schema description coverage, including a worked example (11301409, Brown v. Board of Education), so the schema carries the semantics. The description only restates 'by its CAP id' and adds no format or validation detail beyond the schema.

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

Purpose4/5

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

States a specific verb (Get) and resource (full metadata for a single case) and enumerates exactly which fields are returned, so the agent knows the payload shape before calling. It does not explicitly name or contrast the caselaw_search / caselaw_opinion_text siblings, which is the only thing keeping 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.

Usage Guidelines3/5

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

Usage is implied rather than stated: use this when you already hold a CAP id and need the case's metadata. There is no explicit 'when not to use', no pointer to caselaw_search for finding an id or caselaw_opinion_text for the body, and no prerequisite that a CAP id must first be resolved.

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

caselaw_citation_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationYesA reporter citation, e.g. '347 U.S. 483'.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, 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.

Conciseness5/5

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.

Completeness5/5

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

For a one-parameter, read-only lookup with 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.

Parameters4/5

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.

Purpose4/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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_textA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCAP case id (from caselaw_search / caselaw_citation_lookup).
max_charsNoMaximum total characters of opinion text (default 50000, max 500000).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld and non-destructive, so the bar is lower, and the description adds real value beyond them: text is fetched live from the public-domain CAP static mirror and is not stored, and the return includes per-opinion authorship. It stops short of noting any rate limits or pagination/truncation behavior beyond max_chars.

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

Conciseness4/5

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

Three sentences with the core purpose front-loaded and no filler; the source-of-data and max_chars details are usefully appended. Tight and well-ordered, though the id-source note partially duplicates the schema.

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

Completeness4/5

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

With no output schema, the description carries return-shape burden and does so by describing the opinion set and authorship, plus the live-fetch/not-stored nature of the data. For a simple two-param read tool this is nearly complete, missing only explicit truncation behavior when max_chars is exceeded.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both params (id source, max_chars default 50000 / max 500000). The description's 'Use max_chars to bound the response' and id-origin mention are consistent but add little beyond what the schema states, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Fetch the full opinion text of a case') keyed to the CAP id, and clarifies it returns each opinion (majority, dissent, concurrence) with author. The 'full text' framing implicitly distinguishes it from caselaw_case_details/caselaw_search, but it never names a sibling explicitly.

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

Usage Guidelines3/5

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

'On demand' and the id-source note (from caselaw_search / caselaw_citation_lookup) hint at the workflow, and 'Use max_chars to bound the response' gives a practical cue. However, there is no explicit when-to-use-vs-alternative guidance for choosing this over caselaw_case_details, so usage is only implied.

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

cdc_dataset_queryA
Read-onlyIdempotent
Inspect

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/

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 50)
orderNoSoQL order clause (e.g. 'date DESC')
whereNoSoQL where clause (e.g. "state='Texas' AND year=2024")
selectNoSoQL select clause (default '*')
datasetYesSocrata 4x4 dataset ID (e.g. 'muzy-jte6')

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety and network profile is covered. The description adds the SoQL reference link and the pass-through nature, but says nothing about rate limits, error behavior on invalid dataset IDs, or result shape beyond the schema's limit cap.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core purpose, then the usage condition, then the reference link. Efficient, though the SoQL URL sentence is a mild redundancy given the schema already names SoQL clauses.

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

Completeness5/5

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

For a generic fallback query tool, the description plus 100%-covered schema and read-only annotations give an agent everything needed to invoke it correctly. No output schema exists, and the description needn't explain return values for a raw SoQL pass-through.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters (including limit default/cap and example clauses) are already documented in the schema. The description only restates that a 4x4 Socrata ID and a where-clause are accepted, adding essentially nothing beyond the structured fields.

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

Purpose5/5

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

States a specific verb (query) and resource (any data.cdc.gov dataset) and explicitly positions itself as the generic fallback against the many curated cdc_* siblings. An agent can tell it apart from the curated tools 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.

Usage Guidelines4/5

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

"Use this when none of the curated tools fit" gives a clear conditional that routes the agent here only as a fallback. It stops short of naming specific curated alternatives, but the alternative category is explicit and unambiguous.

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

cdc_drug_overdose_deathsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 50)
indicatorNoDrug class (e.g. 'Opioids (T40.0-T40.4,T40.6)', 'Synthetic opioids, excl. methadone (T40.4)')
state_nameNoFull state name

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered externally. The description adds genuine context by disclosing the 12-month rolling aggregation and the underlying dataset, but says nothing about whether counts are provisional/final, coverage limits, or result volume behavior.

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

Conciseness4/5

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

Three short fragments, purpose and source first, dataset ID second, use case last. There is no filler, though the closing research-framing sentence is the weakest-earning element rather than core invocation information.

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

Completeness5/5

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

A read-only query tool with a four-hint annotation block, fully described parameters, and no output schema to explain. The description supplies the dataset, the aggregation window, and the analytic niche, which is everything an agent needs 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents limit, indicator, and state_name, including an indicator value example. The description's mention of 'by state and indicator' confirms the slicing dimensions but adds no syntax or accepted-value detail 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.

Purpose4/5

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

Names a specific resource (CDC drug overdose deaths), the two dimensions it is sliced by (state and indicator), the source dataset ID (9j2v-jamp), and the metric form (12-month rolling counts). It does not explicitly distinguish itself from close siblings such as cdc_weekly_deaths_by_state or the generic cdc_dataset_query, which keeps it out of 5 territory.

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

Usage Guidelines3/5

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

'Useful for opioid/fentanyl/stimulant policy research and treatment-program siting' gives an audience and a downstream use, implying when the tool applies. However, it never states when NOT to use it, nor points to the sibling that should be used instead (e.g. cdc_dataset_query or cdc_weekly_deaths_by_state), so the routing guidance is only implied.

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

cdc_excess_deaths_covidA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 50)
stateNoFull state name (e.g. 'Texas') or 'United States'
outcomeNoOutcome (e.g. 'All causes', 'All causes, excluding COVID-19')

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so safety is covered. The description adds genuinely useful context beyond that: the data is modeled (not raw counts) and comes from a specific CDC dataset id, which matters when interpreting the numbers.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the resource and its scope, with no filler or repetition.

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

Completeness4/5

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

For a read-only query tool with full schema coverage and no output schema, the description covers source, granularity (state and week), and interpretation caveat (modeled estimates). Only the return shape/columns are left unstated, which is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, with limit, state, and outcome all documented in-schema including examples. The description adds nothing about parameter semantics, so the baseline 3 is appropriate.

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

Purpose4/5

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

Names a specific dataset (CDC excess deaths, dataset id xkkf-xrst) and its scope: modeled expected vs observed deaths by state and week. That is enough to separate it from cdc_weekly_deaths_by_state and cdc_leading_causes_of_death, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

The closing sentence ('Used to estimate true pandemic impact beyond reported COVID deaths') implies an analytical use case, but there is no explicit when-to-use guidance, no prerequisites, and no named alternative for raw death counts versus excess-death estimates.

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

cdc_flu_surveillanceB
Read-onlyIdempotent
Inspect

CDC FluView state-level influenza surveillance (vh55-3he6). Returns weekly ILI (influenza-like illness) activity levels per state.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 50)
seasonNoFlu season (e.g. '2023-24')
statenameNoFull state name

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the upstream dataset identifier (vh55-3he6) and the grain of the return data, but says nothing about default result size, filtering defaults, or rate/coverage caveats 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.

Conciseness4/5

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

Two tight sentences with the source and the interpretation of ILI both front-loaded; nothing is wasted. It is merely brief rather than richly informative.

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

Completeness4/5

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

For a three-optional-parameter read-only lookup, the description names the source, the grain, and the returned metric, and the annotations cover safety while the schema covers inputs. Since no output schema exists, the one-line return summary is doing the necessary work; only seasonal or geographic coverage limits are unstated.

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

Parameters3/5

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

Schema description coverage is 100%, so limit, season, and statename are already documented in the schema. The description restates the state-level grain but adds no syntax, format, or default guidance beyond the schema, so the baseline 3 is appropriate.

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

Purpose4/5

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

States a specific source (CDC FluView), a specific scope (state-level), and the specific returned metric (weekly ILI activity levels per state), which lets an agent distinguish it from siblings like cdc_weekly_deaths_by_state or cdc_vaccination_coverage. It stops short of explicitly naming those alternatives, so not a 5.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no routing to or away from sibling CDC tools. The agent must infer applicability purely from the topical subject matter.

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_deathA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoYear
limitNoMax rows (default 50)
stateNoFull state name or 'United States'
cause_nameNoCause name (e.g. 'Heart disease', 'Cancer', 'Suicide')

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds the return shape ('total deaths and age-adjusted death rates per cause per state per year'), which is genuinely useful given there is no output schema, but it says nothing about pagination, defaults, or coverage limits.

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

Conciseness4/5

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

Two tight sentences with the resource and scope front-loaded and no filler. The dataset ID parenthetical is compact and useful rather than wasteful.

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

Completeness4/5

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

With no output schema, the description does the right thing by sketching the returned measures, and all four parameters are documented in the schema. It is nearly complete; the main gap is any note on row limits or how age-adjusted rates should be interpreted.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (year, limit, state, cause_name) are already documented with examples. The description only echoes the filtering dimensions ('per cause per state per year') and adds no syntax, allowed-value, or default 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.

Purpose4/5

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

States a specific verb and resource ('NCHS leading causes of death by state') and even cites the source dataset ID (bi63-dtpu), which clearly distinguishes it from cdc_drug_overdose_deaths, cdc_flu_surveillance, and cdc_weekly_deaths_by_state. It stops short of explicitly naming which sibling to prefer for adjacent mortality questions, so it is clear but not sibling-routing.

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

Usage Guidelines3/5

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

The closing phrase 'Useful for chronic disease + injury mortality research' implies a use case but gives no when-to-use vs when-not guidance and names no alternative. For a query tool with several CDC siblings, the routing burden is left entirely to inference.

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

cdc_outbreak_reportsB
Read-onlyIdempotent
Inspect

CDC NORS foodborne / waterborne / enteric outbreak reports (iezt-77pi). Returns outbreak date, state, etiology, illnesses, hospitalizations, deaths, and implicated food/exposure.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoOutbreak year
limitNoMax rows (default 50)
stateNoFull state name
etiologyNoCausative agent (e.g. 'Salmonella', 'Norovirus', 'E. coli')

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is fully covered without the description. The description adds real value by enumerating the returned fields, which matters since no output schema exists. It does not mention pagination, row limits, or coverage/recency of the underlying dataset, so it stays at minimum-viable on behavior.

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

Conciseness5/5

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

Two sentences, no filler: the first identifies the dataset and covered report categories, the second lists return fields. Everything is front-loaded and each clause carries information an agent would otherwise have to open the schema or a data dictionary to obtain.

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

Completeness4/5

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

With no output schema, the second sentence's field list is exactly the compensating detail needed, and the annotations cover mutability and idempotency. For a simple read-only filterable dataset query with fully documented parameters, this is close to complete; only dataset coverage/recency and pagination behavior are unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema documents all four parameters (year, limit with default 50 and 1-1000 bounds, state as full name, etiology with examples). The description's mention of date, state, etiology and exposure adds naming color but no semantics beyond what the 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.

Purpose4/5

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) with a dataset identifier, which distinguishes it from the generic cdc_dataset_query and from unrelated cdc_* siblings like cdc_flu_surveillance or cdc_drug_overdose_deaths. It also enumerates the returned columns, so the agent knows exactly what the tool yields. The only weakness is that no sibling is named explicitly as an alternative.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives such as cdc_dataset_query or the other cdc_* tools, and no prerequisites or exclusions are given. Usage can only be inferred from the resource name. The agent is left to guess whether this is the canonical path for outbreak data or a fallback to a generic CDC query tool.

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

cdc_vaccination_coverageA
Read-onlyIdempotent
Inspect

COVID-19 vaccination coverage by US county (8xkx-amqh). Returns booster + primary series percentages over time. Useful for public-health gap analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 50)
recip_stateNoTwo-letter state code (e.g. 'CA')
recip_countyNoCounty name

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. With no output schema, the description earns credit by disclosing return content (booster + primary series percentages over time), which the structured fields do not provide. It stops short of mentioning pagination or rate limits.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the resource and scope, then the return content and a use case. Little waste; the cryptic dataset id is the only slightly opaque element.

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

Completeness4/5

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

For a small read-only query tool with full parameter coverage, safe annotations and no output schema, the description supplies enough return-content context to call it competently. Only the absence of guidance on choosing it over sibling CDC tools leaves a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so limit, recip_state and recip_county are already fully documented in the schema. The description mentions 'US county' but adds no format or filtering semantics beyond what the schema states, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific resource (COVID-19 vaccination coverage) and scope (by US county), which clearly separates it from CDC siblings like cdc_flu_surveillance or cdc_drug_overdose_deaths. The unexplained dataset id '(8xkx-amqh)' and noun-phrase phrasing keep it just short of ideal, but an agent knows exactly what data this returns.

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

Usage Guidelines3/5

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

'Useful for public-health gap analysis' implies a use case but gives no explicit when-to-use, when-not-to-use, or comparison against the many sibling CDC/health tools or the generic cdc_dataset_query. Usage must be inferred.

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_stateA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoYear (e.g. 2024)
causeNoCause category (e.g. 'All Cause', 'COVID-19 (U071, Multiple Cause of Death)', 'Influenza and pneumonia')
limitNoMax rows (default 50)
stateNoFull state name or 'United States' for national. Default 'United States'.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds meaningful context beyond them: the data is 'provisional' (subject to revision) and reported at ISO-week granularity, plus what the response contains. It stops short of noting pagination/row-limit behavior.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the resource and source dataset, then return shape, then use case. No filler or repetition; each sentence earns its place.

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

Completeness4/5

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

With no output schema, the description correctly summarizes the return values and notes provisional status. Given rich annotations and full schema coverage, it is nearly complete; the main gap is lack of differentiation from the crowded set of CDC death/cause siblings.

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

Parameters3/5

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

Schema coverage is 100%, so year, cause, limit, and state are all documented in the schema itself. The description adds only that counts are per state and per ISO week, which is marginal value over the structured fields. Baseline 3 is appropriate.

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

Purpose4/5

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

Names a specific resource ('CDC weekly provisional deaths by state and cause'), identifies the source dataset (NCHS muzy-jte6), and states the return shape. It is clear, but does not differentiate itself from close siblings like cdc_excess_deaths_covid or cdc_leading_causes_of_death, which an agent would need help distinguishing.

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

Usage Guidelines3/5

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

The description offers a use case ('excess-mortality and respiratory-disease seasonality analysis'), which implies when the tool is relevant. However, it gives no explicit when-not-to-use guidance and does not route the agent to any of the many overlapping CDC siblings, leaving selection largely to inference.

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

census_businessA
Read-onlyIdempotent
Inspect

Business establishments, employment, and annual payroll from County Business Patterns. Optional NAICS industry filter. Used for industry research, competitive intel, supply chain analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
msaNo5-digit Metropolitan Statistical Area code. Required for msa level.
yearNoACS 5-year endpoint year (default 2023).
zctaNo5-digit ZIP Code Tabulation Area. Required for zcta level.
levelYesGeography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'.
naicsNoOptional NAICS 2017 industry code (2 to 6 digits). E.g. '23' for Construction, '54' for Professional Services.
placeNoCensus place FIPS (city). Required for place level.
stateNo2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels.
tractNo6-digit census tract code. Use '*' for all tracts in a county.
countyNo3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint) already declare this is a safe, repeatable, read-only remote lookup, so the description needn't restate safety. The description adds that NAICS filtering is optional, but does not disclose return format, pagination, data vintage beyond the year param, or any CBP-specific caveats. With annotations carrying the safety profile, this is adequate.

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

Conciseness5/5

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

Three tight clauses: data source, optional filter, use cases. No filler, no repeated schema content, and the core resource is front-loaded. Every sentence earns its place.

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

Completeness3/5

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

For a 9-parameter geographic data tool with 100% schema coverage and no output schema, the description covers what the data is but is thin on return shape and level/param interplay. An agent can probably call it correctly from the schema alone, but the description doesn't add much beyond the source name and use cases.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (msa, year, zcta, level, naics, place, state, tract, county) is fully documented in the schema. The description only reinforces that the NAICS filter is optional, adding no syntax, format, or level-dependency detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

Clear verb-less but specific resource statement: 'Business establishments, employment, and annual payroll from County Business Patterns.' An agent knows exactly what data is returned. It does not name a sibling tool (e.g., census_commute_employment or census_income_housing) to differentiate the dataset, but the CBP source naming is specific enough to distinguish it from generic census tools.

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

Usage Guidelines3/5

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

The three use-case tags ('industry research, competitive intel, supply chain analysis') imply when this tool is applicable. However, there is no explicit guidance on when to choose this over census_commute_employment, census_demographics, or cost_of_doing_business_index, and no exclusions or prerequisites are stated.

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

census_commute_employmentB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
msaNo5-digit Metropolitan Statistical Area code. Required for msa level.
yearNoACS 5-year endpoint year (default 2023).
zctaNo5-digit ZIP Code Tabulation Area. Required for zcta level.
levelYesGeography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'.
placeNoCensus place FIPS (city). Required for place level.
stateNo2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels.
tractNo6-digit census tract code. Use '*' for all tracts in a county.
countyNo3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels.

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the entire safety profile. The description adds no behavioral context beyond that – nothing about defaults, return shape, or the conditional geography requirements. It contributes only metric scope, which is purpose rather than behavior.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the metric list, no filler. It could be tighter still since the second sentence is effectively a use-case list, but overall it reads efficiently.

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

Completeness3/5

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

With 8 parameters, only one required, and no output schema, the description is adequate but thin: it does not explain the level-dependent parameter requirements or what the returned figures look like. The rich schema compensates for parameter gaps, but a data-returning tool with no output schema leaves the agent guessing about response structure.

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

Parameters3/5

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

Schema description coverage is 100%, so all 8 parameters (level enum, state/county/tract/msa/place/zcta codes, year default) are fully documented in the schema itself. The description references 'a US geography' but adds no syntax, hierarchy, or dependency detail beyond what the schema already provides, so the baseline 3 holds.

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

Purpose4/5

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

The description names the specific data families (labor force, unemployment, commute times, transit usage, work-from-home) and the resource (US geography), so an agent understands it retrieves ACS commute/employment metrics. However, it never distinguishes itself from close siblings like census_demographics or census_income_housing, leaving the agent to infer the split.

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

Usage Guidelines3/5

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

Three use cases (site selection, workforce analysis, commercial real estate) imply when the tool is relevant, but no alternatives are named and no when-not guidance is given. The agent must infer routing among the many census_* siblings.

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

census_demographicsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
msaNo5-digit Metropolitan Statistical Area code. Required for msa level.
yearNoACS 5-year endpoint year (default 2023).
zctaNo5-digit ZIP Code Tabulation Area. Required for zcta level.
levelYesGeography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'.
placeNoCensus place FIPS (city). Required for place level.
stateNo2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels.
tractNo6-digit census tract code. Use '*' for all tracts in a county.
countyNo3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower. The description adds value beyond them by disclosing the data provenance ('Source: ACS 5-year'), which tells the agent these are 5-year estimates, and by enumerating the returned demographic fields since 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.

Conciseness5/5

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

Two tight sentences, front-loaded with the subject/scope statement, followed by the concrete returned fields and the source. No filler or repetition.

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

Completeness4/5

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

With no output schema, the prose enumeration of returned counts and median age is genuinely necessary and present, and the source/vintage is disclosed. The main gap is that the hierarchical geography-level mechanics (which level pairs with which code parameter) are left entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all eight parameters (level, state, county, tract, place, msa, zcta, year) are already documented in the schema, including which are required per level. The description adds no parameter-level detail beyond that, so the baseline 3 is correct.

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

Purpose4/5

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

States a specific resource (race, ethnicity, age breakdown) and scope (US geography), plus the data source, so an agent can tell it apart from census_population or census_income_housing by subject matter. It does not, however, explicitly name or contrast any sibling tool.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no mention of alternatives such as census_population for total counts or census_geography_lookup for resolving place names. The requirement to supply a geography level is only implicit in the phrase 'for a US geography'.

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

census_geography_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoOptional filter: state, county, zcta, place.
limitNoMax matches (default 10).
queryYesFree-text: state name ('Texas'), state code ('TX'), or 5-digit ZIP ('77301').

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds some behavior (substring matching applies only to state) but says nothing about return format or match ranking, so it adds modest value on top of the structured data.

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

Conciseness5/5

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

Two tight sentences with zero waste; the core action is front-loaded and the usage routing comes second. Every clause earns its place.

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

Completeness4/5

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

For a simple, annotation-covered lookup with no output schema, the description is nearly sufficient: it conveys what is returned (FIPS codes) and how to supply input. The only gap is lack of detail on output shape, which is minor given the tool's narrow scope.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents query, level, and limit. The description restates the accepted query formats (state name, 2-letter code, 5-digit ZIP) and adds that substring matching is state-only, which is marginal beyond what the schema already conveys.

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

Purpose5/5

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

States a specific verb and resource ('Look up Census FIPS codes by name') and clearly positions itself against the many census_* data siblings by framing itself as the code-resolution prerequisite. An agent can tell what it does and where it sits in the family 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.

Usage Guidelines4/5

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

Explicitly says when to reach for it: 'Use this to find the FIPS codes needed by other census_* tools,' which gives a clear call condition and dependency role. It stops short of naming exclusions or when-not-to-use, but the intended context is unambiguous.

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

census_income_housingA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
msaNo5-digit Metropolitan Statistical Area code. Required for msa level.
yearNoACS 5-year endpoint year (default 2023).
zctaNo5-digit ZIP Code Tabulation Area. Required for zcta level.
levelYesGeography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'.
placeNoCensus place FIPS (city). Required for place level.
stateNo2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels.
tractNo6-digit census tract code. Use '*' for all tracts in a county.
countyNo3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds practical value by enumerating the returned measures, but says nothing about data vintage/ACS coverage caveats, rate limits, or suppression of small geographies.

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

Conciseness4/5

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

Front-loaded with the actual data measures in the first sentence, which is the most useful part. The trailing sentence about 'real estate AI' is weakly informational but short enough not to bloat the definition.

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

Completeness4/5

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

There is no output schema, so the description carrying the enumerated metric list is valuable for telling the agent what it will receive. With 8 parameters and a geography-hierarchy requirement, and annotations covering the safety semantics, this is reasonably complete, though geography-level prerequisites and data vintage are left entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 100% with per-parameter docs and an enum for 'level', so the schema already carries parameter semantics. The description adds no parameter-level detail (e.g. how level conditions the required msa/zcta/place/county params), so the baseline 3 applies.

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

Purpose4/5

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

The description names a concrete resource set (median household income, per capita income, housing units, occupancy, home value, rents) for 'a US geography', so an agent knows exactly what data comes back. It does not, however, name or distinguish itself from overlapping siblings such as realestate_home_values, realestate_rents, or census_demographics, which an agent would have to resolve by trial.

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

Usage Guidelines3/5

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

'Used for real estate AI, market analysis, location-based pricing' implies a usage context, so the intent is inferable. But it gives no when-to-use/when-not guidance and never mentions the closely overlapping census and realestate siblings, leaving selection ambiguous.

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

census_populationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
msaNo5-digit Metropolitan Statistical Area code. Required for msa level.
yearNoACS 5-year endpoint year (default 2023).
zctaNo5-digit ZIP Code Tabulation Area. Required for zcta level.
levelYesGeography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'.
placeNoCensus place FIPS (city). Required for place level.
stateNo2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels.
tractNo6-digit census tract code. Use '*' for all tracts in a county.
countyNo3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds useful return-field information (total, male, female, median age) but omits behavioral caveats important for census data, such as ACS vintage or margin-of-error limitations.

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

Conciseness5/5

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

Three short sentences with zero waste; the key capability and return fields are front-loaded and easy to scan.

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

Completeness4/5

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

Given eight parameters, no output schema, and annotations that cover read-only semantics, the description does a good job of stating purpose and return fields. It leaves some gaps on data vintage and limitations, but the schema handles parameter-level detail adequately.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all eight parameters, including the level enum and required identifiers. The description lists geography types that map to the enum but adds no syntax or format detail beyond what the schema provides, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Get total population for a US geography') and enumerates supported geography levels. It clearly describes what it returns (total, male, female, median age), but does not differentiate itself from closely related siblings such as census_demographics or census_business.

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

Usage Guidelines3/5

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

The phrase 'Used for market sizing, location intelligence, demographic analysis' implies usage contexts, but there is no explicit when-to-use / when-not-to-use guidance and no named alternative to route between this and the other census_* siblings.

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

cfpb_complaint_aggregationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
facetYesField to aggregate by
companyNoOptional company filter

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness5/5

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.

Completeness4/5

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

For a two-parameter read-only 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.

Parameters3/5

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.

Purpose5/5

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

The description states a specific verb and resource ('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.

Usage Guidelines3/5

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_detailA
Read-onlyIdempotent
Inspect

Fetch a single CFPB complaint by complaint_id. Returns the full record including narrative if consented.

ParametersJSON Schema
NameRequiredDescriptionDefault
complaint_idYesCFPB complaint ID

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_search_complaintsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoPagination offset (default 0)
sizeNoPage size (default 25, max 100)
stateNoTwo-letter state code
companyNoExact company name (use cfpb_suggest_company for fuzzy matching)
productNoCFPB product category (e.g. 'Credit reporting', 'Mortgage', 'Debt collection')
search_termNoFree-text search across all complaint fields
has_narrativeNoOnly complaints with consumer narratives
date_received_maxNoYYYY-MM-DD upper bound
date_received_minNoYYYY-MM-DD lower bound

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine value beyond that: the dataset scope (4M+ complaints since 2011) and the return content (metadata plus public narratives when available), which helps the agent anticipate partial narrative coverage.

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

Conciseness5/5

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

Two tight sentences with zero waste: purpose and dataset scope first, filter dimensions and return content second. Front-loaded and appropriately sized for a search tool.

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

Completeness4/5

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

With no output schema, the description carries the burden of return-value explanation and does so adequately ('complaint metadata plus public narratives when available'). Combined with 100% schema coverage of all 9 parameters, an agent has what it needs; only pagination semantics are left entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the schema. The description echoes the filter dimensions (free-text, company, product, state, date range, narrative-presence) without adding syntax, format, or default 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.

Purpose4/5

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

States a specific verb (Search) and resource (CFPB Consumer Complaint Database) with scale context (4M+ complaints since 2011). It does not differentiate itself from close siblings like cfpb_complaint_aggregations, cfpb_complaint_trends, or cfpb_complaint_detail, so an agent must infer the distinction.

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

Usage Guidelines3/5

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

The description enumerates the filterable dimensions, which implies how the tool is used, but gives no explicit when-to-use or when-not guidance and names no alternative for aggregation, trend, or single-complaint retrieval. Usage 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.

cfpb_state_complaintsA
Read-onlyIdempotent
Inspect

Complaint counts and percentages per US state, with optional product filter and date range. Useful for state-level financial-consumer risk maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoOptional product filter
date_received_maxNoYYYY-MM-DD upper bound
date_received_minNoYYYY-MM-DD lower bound

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the 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.

Conciseness5/5

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.

Completeness3/5

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

For a tool with no 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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

The description clearly identifies the tool as 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.

Usage Guidelines3/5

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_companyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesPartial company name

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states a specific action ('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.

Usage Guidelines4/5

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_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoFutures-only or futures-and-options-combined view. Defaults to futures_only, except CIT (combined only).
marketsYesTwo to eight exact CFTC contract codes or unambiguous names.
categoryYesA category valid for the selected report_type.
report_typeYesCFTC report family. Categories differ by family; use search or the evidence pack to discover available families.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, open-world behavior. The description adds a genuine boundary the annotations cannot express: it compares published aggregates only and does not recommend trades, plus it enumerates returned fields (codes, dates, long/short/net, open interest, ranking, provenance) since 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.

Conciseness4/5

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

Front-loads the verb, resource, and cardinality in the first sentence, then use cases, then the boundary. Four sentences with no filler; the return-field enumeration is justified because no output schema is provided, though it is the longest and least critical clause.

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

Completeness5/5

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

Covers scope, cardinality, cross-parameter coupling, example intents, return contents, and an advisory boundary. With no output schema, the description takes on the job of describing results and does so; nothing an agent needs to invoke this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic coupling beyond the schema: all compared markets must share one consistent report family, scope, and trader category, which explains why report_type/category are single scalars applied across the array rather than per-market. It also restates the 2-8 bound as a hard constraint.

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

Purpose5/5

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

States a specific verb (compare) and resource (latest reported CFTC COT position) with an explicit cardinality bound (two to eight contract markets). This cleanly separates it from the sibling cftc_cot_latest (single market) and cftc_cot_history (time series) 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.

Usage Guidelines4/5

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

Gives two concrete triggering scenarios ('compare managed-money positioning in oil, gold, and copper', 'which selected market has the largest commercial net position?'), which tells the agent exactly what class of question this answers. It does not, however, explicitly name alternative tools or state when not to use it (e.g. for a single market, use cftc_cot_latest).

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

cftc_cot_evidence_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYesExact CFTC contract market code or contract name. Search first when the name is ambiguous.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds real behavioral value beyond that: it discloses that all hosted views are aggregated together, that incompatible family classifications are explicitly preserved, that output is provenance-backed, and that the data is not real-time. No misleading claims.

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

Conciseness4/5

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

Three sentences, front-loaded with the core operation and followed by output contents, usage examples, and caveats. Every sentence carries information, though the middle sentence about preservation of family classifications is dense and could be tightened.

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

Completeness4/5

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

With no output schema, the description does the work of describing the pack's contents and its provenance framing, plus a clear data-freshness caveat. It is nearly complete for a two-parameter read-only aggregation tool; only explicit routing versus sibling COT tools is missing.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (market, response_format) are fully documented with constraints and enum values. The description only implies the single-market scope but adds no syntax or format guidance 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.

Purpose4/5

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

States a specific verb (combine) and resource (all hosted official CFTC COT report-family and scope views) scoped to one contract market, and describes the output contents (open interest, largest absolute category net, preserved family classifications). It distinguishes itself from single-view siblings by emphasizing aggregation of 'all ... views,' but never names the concrete alternatives (cftc_cot_latest, cftc_cot_history, cftc_cot_compare), so differentiation is inferred 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.

Usage Guidelines4/5

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

Provides concrete invocation examples ('build a COT evidence pack for gold', 'show every CFTC positioning lens for crude oil') and states the framing ('designed for research synthesis') plus exclusions ('not real-time data, a forecast, or trading advice'). It gives clear context for use but does not explicitly say when to prefer this over the sibling single-view tools.

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

cftc_cot_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum weekly observations. Default 20.
scopeNoFutures-only or futures-and-options-combined view. Defaults to futures_only, except CIT (combined only).
marketYesExact CFTC contract market code or contract name. Search first when the name is ambiguous.
offsetNoObservations to skip. Default 0.
categoryYesFamily-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_dateNoOptional latest report date, YYYY-MM-DD.
start_dateNoOptional earliest report date, YYYY-MM-DD.
report_typeYesCFTC report family. Categories differ by family; use search or the evidence pack to discover available families.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real context beyond that: the payload fields returned (long, short, spreading, net, changes, percentages, open interest, source ids, provenance), the bounded nature of the history, the enforcement of report-family categories, and a 'not trading advice' caveat. No auth or rate-limit detail, but that is a minor gap given 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.

Conciseness4/5

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

Three sentences, front-loaded with the core verb and resource, then payload contents, then usage examples. The middle field-list is somewhat dense but each item is informative. No filler or repetition of the title.

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

Completeness4/5

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

With no output schema, the description correctly takes on the burden of describing the return payload (net, open interest, provenance, pagination). Combined with 100% schema coverage and annotations covering safety, an agent has nearly everything needed; 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.

Parameters3/5

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

Schema description coverage is 100% across 9 parameters, so the schema already documents market, report_type, category, scope, limit/offset, dates and response_format in detail. The description restates the filtering dimensions in prose ('report family, scope, and trader category') without adding syntax or format guidance 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.

Purpose4/5

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

The description gives a specific verb and resource: 'Return a bounded weekly history for one CFTC contract market, report family, scope, and trader category.' The time-series framing implicitly separates it from cftc_cot_latest and cftc_cot_compare, but neither sibling is named, so an agent must infer the boundary from the tool names alone.

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

Usage Guidelines4/5

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

Concrete use cases are supplied ('managed money net positions in crude oil over time', 'commercial gold COT history', 'a reproducible positioning chart'), which clearly signals when this tool applies. However, there is no explicit when-not or routing statement toward cftc_cot_latest/compare/search, so the agent gets 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.

cftc_cot_latestA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYesExact CFTC contract market code or contract name. Search first when the name is ambiguous.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds genuinely useful behavioral context beyond that: it enumerates the returned content (open interest, long/short/spreading, net arithmetic, percentages, trader counts, report date, provenance) and warns that these are delayed aggregate positions, not a trade signal. This exceeds the annotation burden.

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

Conciseness4/5

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

Front-loaded with the core action, followed by a compact enumeration of returned fields and a closing caveat. Every sentence carries weight, though the returned-field list is fairly dense and could be trimmed, keeping it just short of optimal.

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

Completeness4/5

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

With no output schema, the description usefully enumerates what is returned, and annotations cover the safety profile, so an agent has enough to invoke correctly. The main gap is the absence of explicit routing among the four cftc_cot_* siblings, which would round out completeness.

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

Parameters3/5

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

Schema description coverage is 100% and the response_format enum is fully documented in the schema, so the description need not carry parameter detail. It adds no further param syntax or format nuance, which is the correct baseline-3 situation when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb (Return) and resource (latest official CFTC COT position snapshot for one contract market), with the word 'latest' implicitly distinguishing it from the cftc_cot_history sibling. It does not explicitly name or contrast with the sibling tools (compare, history, evidence_pack), so it stops short of full differentiation.

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

Usage Guidelines3/5

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

Two concrete usage examples ('latest managed-money positioning in crude oil', 'show current COT categories for gold') give clear positive context for when to call it. However, with four closely related cftc_cot_* siblings, there is no explicit when-not-to-use or routing to the alternative (e.g., history vs compare). Usage is implied rather than fully guided.

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

cftc_cot_search_marketsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum markets. Default 20.
queryNoCommodity, contract, exchange, or exact contract market code.
scopeNoFutures-only or futures-and-options-combined view. Defaults to futures_only, except CIT (combined only).
offsetNoMarkets to skip. Default 0.
report_typeNoCFTC report family. Categories differ by family; use search or the evidence pack to discover available families.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description contributes real context beyond that: it identifies the source as a self-hosted official CFTC snapshot, mentions snapshot provenance and pagination in the return, and states the scope restriction. It stops short of detail on how the snapshot is refreshed or how provenance is exposed.

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

Conciseness4/5

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

Three sentences, front-loaded with the verb and scope, then the return inventory, then usage examples and the boundary clause. The return list is long but each item is informative, so little is wasted.

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

Completeness5/5

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

No output schema exists, so the description must describe returns, and it does so thoroughly (codes, names, commodity/exchange labels, report families, scopes, latest date, pagination, provenance). Combined with a fully documented 6-param schema and complete annotations, 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.

Parameters3/5

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

Schema description coverage is 100%, including enum values and defaults, so the schema carries the parameter burden and the baseline is 3. The description adds only thematic context ('available report families and scopes'), not syntax or format guidance beyond what is already documented.

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

Purpose5/5

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

States a specific verb (search) and resource (CFTC contract markets) bounded to a self-hosted official COT snapshot, and enumerates exactly what is returned (codes, names, labels, report families, scopes, latest date). It also carves out the boundary ('aggregate US futures and options markets only; not quotes or prices'), separating it from price/quote siblings.

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

Usage Guidelines5/5

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

Gives concrete when-to-use examples ('find the CFTC code for gold', 'which COT markets cover crude oil?') and names the workflow position ('resolve an identifier before a history call'), routing the agent toward cftc_cot_history. The 'not quotes or prices' clause functions as an explicit when-not.

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

chemical_hazardsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA chemical name (e.g. 'acetone', 'aspirin') or a numeric PubChem CID.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a single-parameter, read-only lookup, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA chemical name (e.g. 'aspirin', 'sodium chloride') or a numeric PubChem CID (e.g. '2244').

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a one-parameter, read-only tool with 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.

Parameters3/5

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.

Purpose5/5

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

The description states a specific verb ('Resolve') and 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.

Usage Guidelines4/5

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_selectorA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoOptional city to further localize the trial-location and provider search (e.g. 'Houston'); use with state.
stateNoOptional 2-letter US state to scope trial and provider counts (e.g. 'TX'). Omit for a national read.
conditionYesMedical condition / disease to evaluate (e.g. 'melanoma', 'type 2 diabetes', 'Alzheimer disease').
specialtyNoOptional NPPES specialty taxonomy keyword to override the condition-to-specialty mapping (e.g. 'Cardiology', 'Endocrinology').

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the 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.

Conciseness4/5

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.

Completeness5/5

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

With no output schema and a 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

college_accreditationA
Read-onlyIdempotent
Inspect

Current institutional accreditation status, accreditor, and (when published by DAPIP) last action date and programmatic accreditations.

ParametersJSON Schema
NameRequiredDescriptionDefault
unit_idYesIPEDS UNITID.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already establish read-only, idempotent, open-world, and non-destructive behavior. The description adds 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.

Conciseness5/5

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.

Completeness5/5

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

For a one-parameter, read-only lookup with 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus 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_compareB
Read-onlyIdempotent
Inspect

Side-by-side comparison of 2-5 schools across cost, outcomes, and admissions metrics. Pass UNITIDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
unit_idsYesArray of 2-5 IPEDS UNITIDs.

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld, so the safety profile is covered. The description adds no behavioral context beyond that, and in fact the '2-5 schools' limit merely restates the schema's minItems/maxItems rather than disclosing behavior such as what happens with invalid UNITIDs or partial data.

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

Conciseness5/5

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

Two sentences, front-loaded with the comparison scope, and zero filler. Every clause earns its place.

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

Completeness4/5

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

With no output schema, the description usefully names what is compared (cost, outcomes, admissions), giving the agent a sense of the response. It is nearly complete for a simple one-parameter comparison tool, missing only return-shape details like metric granularity.

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

Parameters3/5

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

Schema description coverage is 100% with a single well-documented parameter (2-5 IPEDS UNITIDs), so the baseline is 3. 'Pass UNITIDs' adds no syntax, format, or source information beyond what the schema already states.

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

Purpose4/5

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

States a specific verb (side-by-side comparison) and resource (schools) plus the metric categories covered, which separates it from single-school siblings like college_metrics or college_demographics. It does not explicitly name the sibling tools, so it falls short of a 5.

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

Usage Guidelines3/5

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

The instruction 'Pass UNITIDs' implies UNITIDs must already be known, hinting that a lookup step precedes this call, but there is no explicit when-to-use guidance or reference to college_search as the way to obtain IDs. Usage is only implied.

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

college_demographicsA
Read-onlyIdempotent
Inspect

Student-body demographics for one school: race/ethnicity, gender, age (under/over 25), and geographic origin (in-state, out-of-state, foreign).

ParametersJSON Schema
NameRequiredDescriptionDefault
unit_idYesIPEDS UNITID.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple single-parameter 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.

Parameters3/5

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.

Purpose4/5

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

The description clearly identifies the resource as 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.

Usage Guidelines3/5

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_metricsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
unit_idYesIPEDS UNITID (Scorecard 'id').

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple one-parameter 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.

Parameters3/5

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.

Purpose4/5

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

The description clearly identifies the tool as 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.

Usage Guidelines3/5

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_programA
Read-onlyIdempotent
Inspect

Program-level outcomes (4-digit CIP code) for one school: median earnings one year after completion, median debt at completion, and award counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
unit_idYesIPEDS UNITID.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple one-parameter 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_value_scoreA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional 2-letter state to disambiguate the school name (e.g. 'OH').
collegeYesUS college/university name (e.g. 'University of Michigan', 'Ohio State University').
programNoOptional program name or CIP prefix (e.g. 'Nursing', 'Computer Science') to add program-level debt-vs-earnings evidence.

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoOptional lower-bound date (YYYY-MM-DD) for FDA recalls.
stateNoOptional 2-letter state to scope the CFPB complaint leg (e.g. 'CA').
companyYesCompany or brand name to profile (e.g. 'Wells Fargo', 'Peloton').

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents 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.

Purpose5/5

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

The description opens with a specific verb+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.

Usage Guidelines5/5

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_infoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., "AAPL")

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple one-parameter, read-only tool 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description gives explicit use cases 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_checkA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional 2-letter state to disambiguate the EPA facility search.
tickerNoOptional stock ticker hint to pin the SEC EDGAR match (e.g. 'LMT').
companyYesCompany or organization name to check (e.g. 'Lockheed Martin', 'Acme Widgets LLC').

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

Despite having no output schema, the description 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.

Parameters3/5

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

Schema description coverage is 100%, so the parameters 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.

Purpose5/5

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.

Usage Guidelines4/5

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_actionsA
Read-onlyIdempotent
Inspect

Get the chronological legislative action history for one bill (introductions, committee referrals, votes, becoming law). Requires Congress number, bill type, and bill number.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax actions (default 50).
congressYesCongress number.
bill_typeYesBill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres.
bill_numberYesBill number.

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds useful behavioral context 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple, read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description implies when to use it: when 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_cosponsorsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax cosponsors (default 250).
congressYesCongress number.
bill_typeYesBill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres.
bill_numberYesBill number.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose5/5

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

The description uses a specific verb ('List') and 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.

Usage Guidelines4/5

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_detailsA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number, e.g. 118.
bill_typeYesBill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres.
bill_numberYesBill number, e.g. 3076.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple three-parameter read-only 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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource ('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.

Usage Guidelines3/5

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_votesA
Read-onlyIdempotent
Inspect

List recent U.S. House roll-call votes for a Congress, with vote number, question, result, and date. Defaults to the current Congress.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax votes (default 20).
congressNoCongress number (default current, 91).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the tool 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_detailsA
Read-onlyIdempotent
Inspect

Get detailed profile for one member of Congress by bioguide ID (e.g. 'P000197'), including party history, terms served, and leadership roles.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioguide_idYesBioguide ID, e.g. 'P000197'.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple one-parameter read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_lawsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20).
congressNoCongress number (default current, 91).
law_typeNoLaw type: 'pub' or 'priv'.

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover the read-only, idempotent, non-destructive 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple three-parameter read-only 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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_billsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order, e.g. 'updateDate+desc' (default) or 'updateDate+asc'.
limitNoMax results (1-250, default 20).
queryNoOptional free-text keyword filter (e.g. 'inflation', 'semiconductor').
offsetNoPagination offset.
congressNoCongress number (e.g. 91 is current). Omit for all.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, 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.

Conciseness4/5

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

The description is compact and front-loaded with the core purpose, followed by 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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_membersA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20).
stateNoTwo-letter state code, e.g. 'TX'.
congressNoCongress number.
districtNoHouse district number.
current_memberNoLimit to currently-serving members.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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_treeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoOptional exact 20-character LEI code to anchor the tree directly (e.g. '5493006MHB84DD0ZWV18'). Overrides a name search.
companyNoCompany / organization name (e.g. 'Alphabet Inc.', 'JPMorgan') or a 20-character LEI code. Provide this or 'lei'.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource ('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.

Usage Guidelines5/5

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_indexA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
metroNoOptional 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.
stateYesUS state as a 2-letter code (e.g. 'TX', 'CA', 'NY') or 2-digit FIPS (e.g. '48'). Required.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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

With no output schema, the description 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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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

The description gives clear context for when 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_scoreA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_nameYesCompany or entity name to score. Examples: 'Lockheed Martin', 'Acme Holdings BV', 'Pfizer Inc'. Common suffixes (Inc/LLC/Ltd/Corp) are normalized automatically.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines5/5

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_citation_resolverB
Read-onlyIdempotent
Inspect

Resolve a legal citation (e.g. '410 U.S. 113') to its CourtListener case record.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationYesCitation string, e.g. '410 U.S. 113'.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple single-parameter, read-only, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus 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_lookupA
Read-onlyIdempotent
Inspect

Look up a federal docket by court ID and docket number. Returns party list and recent entries from PACER/RECAP.

ParametersJSON Schema
NameRequiredDescriptionDefault
courtYesCourt ID, e.g. 'nysd'.
docket_numberYesDocket number, e.g. '1:23-cv-04567'.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, lowering the 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple two-parameter 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description clearly implies when to use this tool: when 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_lookupA
Read-onlyIdempotent
Inspect

Look up a judge profile by name or CourtListener person ID. Returns positions, education, and bench history.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesJudge full or partial name, or numeric person ID.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple one-parameter 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description clearly implies when to use this tool: 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_recent_filingsA
Read-onlyIdempotent
Inspect

Recent docket entries filed in a specific court, ordered newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
courtYesCourt ID, e.g. 'nysd', 'cand'.
limitNoMax results (1-50, default 10).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple 2-parameter, read-only, 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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.

Usage Guidelines3/5

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_recent_recallsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recent recalls to return (default 10).
lookback_daysNoHow many days back to scan (default 90).

TDQS

A3.7/5.0
Behavior4/5

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 real behavioral context beyond that: results are date-sorted newest-first, the source is keyless (no auth needed), each row links to the official CPSC page, and the scan window is bounded and configurable.

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

Conciseness4/5

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

Four compact sentences, front-loaded with the core action and sorting, then source, window, and link behavior. No filler, though the source is stated twice ('via SaferProducts.gov' and 'Data: CPSC/SaferProducts.gov'), which is slightly redundant.

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

Completeness4/5

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

For a two-parameter, no-required-input list tool with no output schema, the description covers what is returned, ordering, lookback behavior, source, and result linking. Only the exact result fields and whether the list paginates are unaddressed, which is minor.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters (limit, lookback_days) are already fully documented with defaults and bounds. The description restates the configurable window and its 90-day default, adding marginal value but no new syntax or format detail, matching the baseline for high-coverage schemas.

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

Purpose4/5

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

The description states a specific verb and resource ('Return the most recent U.S. CPSC product recalls') and adds sorting semantics ('date-sorted, newest first'), which cleanly separates it from cpsc_recall_search. It does not name that sibling explicitly, so an agent still has to infer the boundary between 'recent' and 'search'.

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

Usage Guidelines3/5

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

Usage is implied by 'most recent' plus the configurable lookback window, but there is no explicit when-to-use statement and no routing to alternatives such as cpsc_recall_search for keyword or product-specific lookups. Adequate but leaves the sibling choice to inference.

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

crypto_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinsYesCoin names or tickers, 2-5 coins. Accept either CSV string ('bitcoin,ethereum,solana') or array (['bitcoin','ethereum','solana']).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds 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.

Conciseness5/5

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.

Completeness5/5

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

For a simple one-parameter, read-only 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.

Parameters3/5

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.

Purpose5/5

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

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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_infoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCryptocurrency name or ticker (e.g., 'bitcoin', 'BTC', 'ethereum')

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description states a specific verb and resource: '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.

Usage Guidelines4/5

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_priceA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCryptocurrency name or ticker (e.g., 'bitcoin', 'BTC', 'ethereum', 'ETH')

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish the tool as read-only, idempotent, 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.

Conciseness4/5

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.

Completeness5/5

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

For a single-parameter, read-only 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.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, 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.

Purpose4/5

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.

Usage Guidelines4/5

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.

cve_lookupA
Read-onlyIdempotent
Inspect

Full detail for a single CVE by ID (format CVE-YYYY-NNNN). Returns CVSS scores, weakness IDs, references, and affected products from the NVD.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE identifier, e.g. CVE-2024-3094.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a single-parameter read-only lookup 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.

Parameters4/5

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.

Purpose5/5

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

The description states a specific verb and resource: '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.

Usage Guidelines4/5

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_recentA
Read-onlyIdempotent
Inspect

Recent CVEs published in the last N days (default 7, max 120). Optional vendor and severity filters (CRITICAL, HIGH, MEDIUM, LOW).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days (1-120).
limitNoMax results (default 50).
vendorNoOptional vendor filter.
severityNoOptional CVSS severity filter: CRITICAL, HIGH, MEDIUM, or LOW.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description states a specific verb and resource 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.

Usage Guidelines4/5

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_keywordA
Read-onlyIdempotent
Inspect

Free-text CVE search with optional date range. Matches keyword against CVE description text in the NVD.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (1-2000, default 20).
keywordYesFree-text search phrase.
pub_end_dateNoOptional YYYY-MM-DD upper bound.
pub_start_dateNoOptional YYYY-MM-DD lower bound.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_vendorA
Read-onlyIdempotent
Inspect

Search CVEs by vendor with optional product and date range filters. Vendor is matched against the NVD CPE namespace, e.g. 'apache', 'microsoft'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (1-2000, default 20).
vendorYesVendor name, lowercase preferred.
productNoOptional product name filter.
pub_end_dateNoISO date or YYYY-MM-DD upper bound on published date.
pub_start_dateNoISO date or YYYY-MM-DD lower bound on published date.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description uses a specific verb and resource: '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.

Usage Guidelines4/5

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_lookupA
Read-onlyIdempotent
Inspect

MITRE CWE detail by ID (format CWE-NNN or NNN). Returns name, abstraction, status, description, and parent/child CWE relationships.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwe_idYesCWE identifier, e.g. CWE-79.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. 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.

Conciseness5/5

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.

Completeness5/5

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

For a one-parameter, read-only lookup tool with 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.

Parameters4/5

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.

Purpose5/5

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

The description clearly identifies the tool as 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.

Usage Guidelines4/5

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_declarationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return (1-1000, default 50).
stateNoTwo-letter state code, e.g. 'TX'.
countyNoDesignated area / county name as FEMA records it.
end_dateNoISO date upper bound on declarationDate.
start_dateNoISO date lower bound on declarationDate.
incident_typeNoIncident type filter, e.g. 'Hurricane', 'Flood', 'Severe Storm', 'Wildfire'.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

The description implies when to use the tool 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_summaryB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code.
yearsNoLookback window in years (default 10).
countyNoCounty name.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus 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_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaYesCounty or place name to profile (e.g. 'Harris', 'Orleans', 'New Orleans'). Use the name without the word 'County'.
stateNo2-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.
countyNoAlias for area; either may be supplied.
addressNoOptional street address to attach a sample parcel/property record (Maryland statewide or Texas-Harris County only).

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description opens with a specific verb+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.

Usage Guidelines4/5

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_recentB
Read-onlyIdempotent
Inspect

Recent earthquakes from USGS. Filter by region (lat/lon + radius), state name, magnitude threshold, or time window.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
limitNoMax events (default 50).
end_timeNoISO datetime upper bound (default now).
locationNoAddress, zip, city, or 'lat,lon' to center the search. Optional.
radius_kmNoSearch radius around lat/lon (max ~20000).
start_timeNoISO datetime lower bound (default 30 days ago).
min_magnitudeNoMinimum magnitude (default 2.5).

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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

For a read-only query tool, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

The use case is implied by the 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_factsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
conceptNoOptional XBRL concept name (e.g. 'Revenues', 'Assets', 'NetIncomeLoss'). If omitted, returns the catalog of available concepts.
taxonomyNoOptional XBRL taxonomy (default 'us-gaap').
identifierYesTicker symbol or CIK.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description states a specific action and resource: 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.

Usage Guidelines4/5

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_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
queryYesTicker (e.g. 'AAPL') or company-name fragment (e.g. 'Apple').

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/destructive=false, so the safety profile is covered. The description adds genuine behavior beyond them: the result ordering ('matches ranked exact-ticker first'), which affects how the agent picks among multiple matches. It omits auth or rate-limit context, but the annotation bar is already met.

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

Conciseness5/5

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

Three short sentences, front-loaded with the verb and resource, then the prerequisite, then the ordering detail. No filler or repetition of the name or title.

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

Completeness4/5

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

For a two-parameter resolver with no output schema, the description covers what it returns (ranked CIK matches) and why it matters (prerequisite for other EDGAR tools). It could be more complete by noting the shape of a returned match or the default limit, but nothing essential 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.

Parameters3/5

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

Schema description coverage is 100%, with both 'query' and 'limit' documented in the schema, so the baseline is 3. The description restates the ticker/name input modes but adds no format or syntax detail beyond what the schema already supplies, and says nothing about 'limit'.

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

Purpose5/5

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

States a specific verb (look up) plus the exact resource (a public company's CIK) and both accepted input forms (ticker symbol or company name). It also notes the returned ranking, so an agent can distinguish it from the sibling EDGAR tools that consume a CIK rather than resolve one.

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

Usage Guidelines4/5

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

Explicitly says the CIK it returns 'is required for all other EDGAR tools,' which tells the agent to call this first in an EDGAR workflow. It stops short of naming a specific alternative or a when-not condition, so it is strong context but not full routing guidance.

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

edgar_filing_contentA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikYesFiler CIK (with or without leading zeros).
max_charsNoMaximum characters of text to return (default 20000, max 200000).
accession_numberYesAccession number (e.g. '0000320193-25-000006' or '000032019325000006').

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds useful context beyond that: it returns the primary document stripped of HTML and suitable for LLM consumption. It does not discuss truncation, errors, or auth, but those are less critical for a read-only fetch.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose and return behavior, followed by the required workflow. Every sentence adds value with no repetition or filler.

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

Completeness4/5

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

No output schema exists, so the description appropriately describes the return format as primary document text stripped of HTML. Combined with rich annotations and 100% schema coverage, this is nearly complete for a simple read-only tool, though error and truncation behavior are left implicit.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are documented directly in the schema. The description adds essentially no parameter semantics beyond the prerequisite to obtain an accession number, which is usage guidance rather than parameter meaning.

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

Purpose5/5

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

The description states a specific verb and resource: 'Fetch the text content of a specific SEC filing.' It also names the exact document types and distinguishes this tool from edgar_recent_filings by explaining the relationship between them.

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

Usage Guidelines4/5

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

It gives a clear prerequisite: 'Use edgar_recent_filings first to get the accession number.' This tells the agent when and how to use the tool. It does not explicitly exclude other EDGAR search tools, 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.

edgar_filings_by_form_typeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
form_typeYesSEC form type (e.g. '8-K', 'S-1', 'DEF 14A', '13F-HR').
start_dateNoISO date lower bound (YYYY-MM-DD). Defaults to 30 days ago.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/no-destructive, so the safety profile is covered. The description adds real value by disclosing the return fields (accession numbers, filers, filing dates), which matters since there is no output schema. It does not mention pagination or rate limits, but that is a minor gap against 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.

Conciseness5/5

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

Three tight sentences, front-loaded with the core action and scope, followed by use cases and return fields. Every sentence earns its place with no filler.

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

Completeness4/5

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

For a 3-param, single-required-input read tool with no output schema, the description covers purpose, scope, use cases, and return fields, which is close to complete. It omits default behavior details (25-row limit, 30-day window), though those live in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so form_type, limit, and start_date are all fully documented in the schema. The description only alludes to the form_type concept and a date range via examples; it adds no syntax or format detail 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.

Purpose4/5

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

States a specific verb+resource ('Pull all recent SEC filings of a specific form type') and a scoping trait ('across all companies') that distinguishes it from company-scoped siblings like edgar_company_facts or edgar_recent_filings. It never names those siblings 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.

Usage Guidelines3/5

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

Provides concrete usage examples ('all 8-Ks today', 'all S-1s this week') that imply the monitoring context, but never says when to choose this over edgar_recent_filings, edgar_full_text_search, or edgar_filing_content. Usage is implied rather than routed.

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

edgar_insider_transactionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
identifierYesTicker symbol or CIK.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this as a safe read-only, idempotent, non-destructive, open-world operation. The description adds useful output behavior by saying it returns accession numbers and filing dates, and it points to the follow-up tool, though it does not discuss rate limits or pagination.

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

Conciseness5/5

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

Two tightly written sentences with zero waste. The core purpose is front-loaded, and the alternative-tool guidance is appended only after the main behavior is established.

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

Completeness5/5

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

For a simple list tool with no output schema, the description supplies the important return shape (accession numbers and filing dates) and the next tool to call for deeper data. Given the annotations already cover the safety profile, nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both the identifier and limit parameters are already documented in the schema. The description adds no parameter-specific meaning beyond what the structured schema provides, making the baseline score of 3 appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: list recent Form 4 insider transaction filings for a company. It clearly separates this tool from edgar_filing_content by naming the latter as the place to get 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.

Usage Guidelines5/5

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

It gives an explicit next-step alternative: use edgar_filing_content on each filing for detailed transaction data. This tells the agent both the scope of this tool and when to route elsewhere, matching the strongest usage-guidance pattern.

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

edgar_recent_filingsB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
form_typeNoOptional form type filter (e.g. '10-K', '10-Q', '8-K', '4').
identifierYesTicker symbol or CIK. Examples: 'AAPL', '0000320193'.
start_dateNoOptional ISO date lower bound (YYYY-MM-DD).

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully carried by structured fields. The description adds no behavioral context beyond annotations — no ordering of "recent", no pagination behavior, no rate limits — but the annotation coverage lowers the bar, keeping this at a minimum-viable 3.

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

Conciseness4/5

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

Three short sentences with the core action front-loaded and no filler. Slightly redundant in re-listing form types already enumerated in the schema, which keeps it just below a 5.

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

Completeness3/5

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

For a simple read-only list tool with annotations covering safety and no output schema, the description is adequate but thin. It omits the most valuable disambiguation — how this differs from edgar_filings_by_form_type and other EDGAR siblings — and says nothing about result ordering despite the "recent" framing.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (limit, form_type, identifier, start_date) are already documented with examples and ranges. The description only restates form types and identifier formats that the schema already provides, adding no new semantics; baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ("List recent SEC filings for a company") and names the key filters, so the purpose is unambiguous. However, it does not distinguish itself from the near-identical sibling edgar_filings_by_form_type, which appears to cover much of the same ground.

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

Usage Guidelines3/5

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

It gives implicit guidance on inputs ("Use ticker or CIK as identifier") and lists filterable form types, but never states when to choose this tool over alternatives such as edgar_filings_by_form_type, edgar_full_text_search, or edgar_company_facts. Usage is implied rather than differentiated.

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

eia_electricity_stateA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound period (ISO date or YYYY-MM).
limitNoMaximum rows to return (default 50, max 5000).
startNoInclusive lower-bound period (ISO date or YYYY-MM depending on series cadence).
stateNoTwo-letter state code (e.g. 'TX', 'CA') or 'US' for national rollup. Default 'US'.
metricNoMetric: 'price', 'sales', 'revenue', 'customers', 'generation'. Default 'price'.
sectorNoSector: 'all', 'residential', 'commercial', 'industrial', 'transportation'. Default 'all'.

TDQS

A3.7/5.0
Behavior3/5

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 useful cadence context ('monthly') and default behavior, but says nothing about row limits or how much data a default 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.

Conciseness4/5

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

Three tight sentences, front-loaded with the resource and cadence, then filters, then defaults. Minor waste in re-listing enum values that the schema already enumerates.

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

Completeness4/5

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

For a 6-parameter read-only tool with no output schema, the description covers filters, defaults, and cadence, and the schema documents the start/end/limit parameters. Complete enough to invoke correctly, though no hint about expected return size.

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

Parameters3/5

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

Schema coverage is 100%, and the description largely restates the enum values already documented in the schema ('price / sales / revenue / customers / generation'). The one incremental detail is that 'US' is a national rollup, which adds slight meaning, so baseline 3 is appropriate.

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

Purpose5/5

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

States a specific resource (monthly state-level electricity data), a named source (EIA), and the filter dimensions, which cleanly separates it from siblings like eia_energy_consumption, eia_natural_gas, and eia_renewable_generation. An agent can tell what this returns 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.

Usage Guidelines3/5

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

The description explains the filter dimensions and the defaults ('US, all sectors, price'), which implicitly tells the agent it can call with no arguments, but it never states when to prefer this tool over the other EIA/electricity siblings or what the alternatives are.

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

eia_energy_consumptionB
Read-onlyIdempotent
Inspect

Monthly US energy consumption by sector from EIA. Sectors: residential, commercial, industrial, transportation, total. Returns total energy consumed in BTU equivalents.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound period (ISO date or YYYY-MM).
limitNoMaximum rows to return (default 50, max 5000).
startNoInclusive lower-bound period (ISO date or YYYY-MM depending on series cadence).
stateNoTwo-letter state code or 'US' for national rollup. Default 'US'.
sectorNoSector: 'total', 'residential', 'commercial', 'industrial', 'transportation'. Default 'total'.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the cadence (monthly) and the return unit (BTU equivalents), but says nothing about pagination, rate limits, or data latency that would matter for an open-world data pull.

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

Conciseness4/5

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

Two sentences, front-loaded with the resource and scope, with no filler. The sector enumeration duplicates the schema enum, which is a small redundancy but useful for skimming.

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

Completeness4/5

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

With no output schema, the description usefully states what comes back (total energy consumed in BTU equivalents). All five parameters are fully documented in the schema, and annotations cover the safety profile, so the only missing element is behavioral detail like pagination.

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

Parameters3/5

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

Schema description coverage is 100%, so both the sector enum and the state/start/end/limit parameters are already documented in the schema; the description adds no format or default detail beyond it. It also frames the data as national ('US energy consumption') while the schema permits any two-letter state code, a minor mismatch that the baseline 3 reflects.

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

Purpose4/5

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

The description names a specific verb+resource (monthly US energy consumption by sector from EIA) and enumerates the sector dimension, which separates it from siblings like eia_electricity_state or eia_natural_gas. It never explicitly contrasts itself with those siblings, but the resource is unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no named alternative among the many energy/EIA siblings. Usage is only inferable from the resource statement, which is the same gap the MID calibration example scored 2 for.

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

eia_gasoline_pricesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound period (ISO date or YYYY-MM).
gradeNoFuel grade: 'all', 'regular', 'midgrade', 'premium', 'diesel'. Default 'all'.
limitNoMaximum rows to return (default 50, max 5000).
startNoInclusive lower-bound period (ISO date or YYYY-MM depending on series cadence).
regionNoPADD region code or 'national'. Examples: 'national', 'PADD1', 'PADD3'. Default 'national'.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds the weekly cadence and the available filter dimensions, but says nothing about rate limits, pagination behavior, or result shape. With annotations doing the heavy lifting, this is adequate but not rich.

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

Conciseness5/5

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

Two sentences, zero waste, with the resource and cadence front-loaded and the filter dimensions immediately after. Every clause earns its place.

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

Completeness4/5

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

For a read-only, all-optional-parameter data retrieval tool with no output schema, the description covers the resource, cadence, and both filter axes. Only the return structure/pagination story is unaddressed, which is a minor gap given the annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters including defaults and examples. The description's mention of PADD1-PADD5/national and the grade values largely restates what the schema descriptions already provide, so baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb+resource ('Weekly US retail gasoline prices from EIA') and names the two filterable dimensions, so the agent knows exactly what data it returns. It does not, however, differentiate itself from the many sibling EIA tools (eia_oil_supply, eia_natural_gas, eia_series_lookup), so routing relies on the resource noun alone.

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

Usage Guidelines3/5

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

'Useful for fuel-cost analysis, transportation logistics, and consumer price tracking' gives domain context but no when-to-use/when-not or alternative selection guidance relative to sibling EIA endpoints. Usage 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.

eia_natural_gasA
Read-onlyIdempotent
Inspect

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound period (ISO date or YYYY-MM).
limitNoMaximum rows to return (default 50, max 5000).
startNoInclusive lower-bound period (ISO date or YYYY-MM depending on series cadence).
seriesNoSubset to query: 'spot', 'futures', 'residential', 'storage'. Default 'spot'.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive, so safety is covered. The description adds the useful fact that source is EIA and the cadence per series (daily/monthly/weekly), which is context annotations don't carry, but says nothing about coverage windows, latency, or units.

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

Conciseness4/5

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

Front-loaded source and resource, then a tight enumerated list of options with the default at the end. One redundancy: the word 'spot' and the default are both stated, and 'Series options' duplicates the schema enum, but overall efficient.

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

Completeness3/5

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

For a 4-param read-only data tool with full schema coverage and annotations, the description is adequate. It is missing units, geography caveats, and whether multiple series can be requested together, small but real gaps for a data-query tool with no output schema.

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

Parameters3/5

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

Schema coverage is 100% and the series enum is fully documented in the schema, so the description largely restates it. The per-series cadence hints (daily/monthly/weekly) add modest value for choosing start/end formats, but nothing about limits or date semantics beyond the schema.

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

Purpose5/5

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

States a specific verb-like scope (US natural gas data from EIA) plus the resource and enumerates the four series with definitions, which no sibling schema exposes. Distinguishable from eia_electricity_state, eia_oil_supply, eia_series_lookup 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.

Usage Guidelines3/5

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

Provides implicit selection guidance by defining each series option, so an agent can pick the right cadence. But it never names alternatives (e.g. eia_series_lookup for non-priced series) or states when not to use this tool. Minimum-viable usage guidance.

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

eia_oil_supplyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound period (ISO date or YYYY-MM).
limitNoMaximum rows to return (default 50, max 5000).
startNoInclusive lower-bound period (ISO date or YYYY-MM depending on series cadence).
metricNoMetric: 'production', 'imports', 'stocks', 'refinery_inputs'. Default 'production'.
regionNoPADD region or 'national'. Examples: 'national', 'PADD1', 'PADD3'. Default 'national'.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds useful context — weekly cadence and metric meanings — but says nothing about pagination, row caps beyond the schema, or the shape/units of returned observations.

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

Conciseness5/5

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

Three short sentences, front-loaded with the dataset and cadence, then metrics, then filtering/defaults. No filler and nothing redundant.

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

Completeness4/5

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

For a no-required-parameter data query, the description plus 100%-covered schema gives an agent enough to invoke correctly. With no output schema present, a brief note on the returned time-series format/units would have closed the remaining gap.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description goes further by defining each metric value ('production' = US field production, 'refinery_inputs' = gross refinery inputs), which the enum descriptions alone do not. Region and default handling are also restated, adding modest extra meaning.

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

Purpose4/5

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

The description names a specific resource and cadence: 'Weekly US crude oil supply data from EIA,' which cleanly separates it from siblings like eia_natural_gas, eia_gasoline_prices, and eia_electricity_state. The verb is implicit (a retrieval tool), so it stops short of the 'specific verb+resource' ideal, but an agent can identify the dataset unambiguously.

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

Usage Guidelines3/5

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

It states the default behavior ('Default: national production') and that results can be filtered by PADD region, which implies usage. However, it never says when to choose this tool over adjacent ones such as eia_series_lookup or eia_energy_consumption, and offers no exclusions or prerequisites.

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

eia_renewable_generationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound period (ISO date or YYYY-MM).
limitNoMaximum rows to return (default 50, max 5000).
startNoInclusive lower-bound period (ISO date or YYYY-MM depending on series cadence).
stateNoTwo-letter state code or 'US' for national rollup. Default 'US'.
sourceNoGeneration source: 'all', 'solar', 'wind', 'hydro', 'nuclear', 'geothermal', 'biomass'. Default 'all'.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so the safety bar is low. The description adds real context beyond them: monthly cadence, MWh units, and the default national rollup, which the agent could not infer from the 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.

Conciseness4/5

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

Three tight, front-loaded sentences that each convey something: what it returns, the dimensionality (source), and the optional filter. The source enumeration duplicates the schema enum, slightly redundant but not wasteful.

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

Completeness4/5

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

For a simple read-only query tool with full schema coverage, strong annotations, and no output schema, the description covers resource, cadence, dimensions, default, and unit. Minor gaps (pagination/limit behavior) are handled by the schema.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description restates the source list and the state default, both already fully documented in the schema, and adds no new meaning (e.g., valid date formats for start/end or limit semantics).

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

Purpose4/5

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

States a specific verb+resource: 'Monthly US electricity generation by source from EIA,' plus the return unit (megawatt-hours). It is clearly distinguishable from generic EIA tools, though it never explicitly names a sibling (e.g., eia_electricity_state) to sharpen routing.

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

Usage Guidelines3/5

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

The description notes the state filter is 'optional (default national),' which implies usage scope, but it gives no explicit when-to-use/when-not guidance and does not contrast with the many neighboring EIA tools (eia_electricity_state, eia_series_lookup).

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

eia_series_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound period (ISO date or YYYY-MM).
limitNoMaximum rows to return (default 50, max 5000).
startNoInclusive lower-bound period (ISO date or YYYY-MM depending on series cadence).
series_idYesEIA series ID. See https://www.eia.gov/opendata/browser/ for the full catalog.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare read-only, open-world, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds that it returns time-series data, but does not disclose auth needs, rate limits, pagination behavior, or 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.

Conciseness4/5

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

Front-loaded and appropriately sized, with examples that earn their place. The first sentence is slightly redundant with the tool name and title, but overall the description is efficient and readable.

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

Completeness4/5

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

Given the rich schema and annotations, the description provides enough context to select and invoke the tool: it explains the fallback use case and gives series-ID examples. It could say more about the returned time-series format or pagination, but nothing critical is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds concrete examples of EIA series IDs (e.g. PET.RWTC.D, NG.RNGWHHD.D), which meaningfully clarifies the most important parameter beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('EIA series lookup') and clarifies that it returns time-series data for a given series ID. It distinguishes itself from sibling EIA tools by positioning itself as the flexible fallback, though it does not name specific alternatives.

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

Usage Guidelines4/5

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

Explicitly tells the agent to use this tool when no other tool covers the specific need, establishing a clear fallback condition. However, it does not name the alternative EIA-specific tools or state when not to use it beyond that general condition.

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

energy_market_snapshotA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
lookback_daysNoTrailing daily history to pull per benchmark for the derived context (default 400 ~ 1.3 years; min 60, max 2000).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive behavior, so the description adds value with new facts: source failure is "noted, not fatal" (partial-failure resilience), the data is EIA public domain, and it is informational only, not trading advice. It doesn't specify latency, caching, or result limits, keeping it below 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.

Conciseness4/5

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

Front-loads the deliverable and the benchmark list before the use case, resilience note, and disclaimer. Mostly every sentence earns its place, though the branding phrase "Premium synthesis over the EIA domain" adds little operational value.

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

Completeness5/5

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

With a single optional parameter, no output schema, and annotations covering the safety profile, the description still spells out the returned fields (latest level and date, 1-year change, percentile, trend direction) and failure behavior. An agent has everything needed to call and interpret it.

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

Parameters3/5

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

Schema description coverage is 100% and the lone lookback_days parameter is fully documented in the schema with its default, min, and max. The description never mentions the parameter, so it adds no meaning beyond the schema — baseline 3.

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

Purpose5/5

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

States a specific deliverable: a one-call US energy snapshot covering WTI (Cushing), Brent, and Henry Hub, each with derived context (level, 1-year change, percentile, trend). This precisely distinguishes it from the domain-specific siblings like eia_oil_supply or eia_natural_gas, which serve single slices rather than a synthesized three-benchmark view.

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

Usage Guidelines4/5

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

Gives a clear use case ("what is oil/gas doing right now, and is it historically high or low" in a single call) and frames itself as a synthesis layer, which implies using it instead of chaining multiple EIA calls. It does not explicitly name alternative sibling tools or 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.

entity_dossierA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCompany / organization name, e.g. 'Chevron Corporation', 'Acme Trucking LLC'.
limitNoMax records to surface per source (default 5, max 15).
stateNoOptional 2-letter US state to disambiguate location-based sources (e.g. 'TX').

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds genuinely useful behavior beyond that: a confidence score is attached to results, output is a per-source summary plus top records, and matches are name-based so identity must be verified before relying on any link — a material false-positive caveat. It stops short of describing confidence-score semantics or failure behavior when a source has no match.

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

Conciseness4/5

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

Front-loaded with the core purpose, then sources, then return shape, then the matching caveat — a sensible ordering. The 'single AI-native lookup across data that otherwise lives in separate silos' sentence partially restates the earlier 'consolidated cross-source' framing, so there is mild redundancy, but nothing is padded.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does so at a high level: per-source summary plus top records, with a confidence score. Sources and the name-matching caveat are covered. It is slightly thin on how the confidence score is derived and what a per-source summary contains, but an agent has enough to invoke and interpret it.

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

Parameters3/5

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

Schema description coverage is 100%: name, limit (default 5, max 15), and state are all documented in the schema with examples and bounds. The description adds no parameter-level detail (it never mentions the limit or state knobs), so it neither compensates nor is needed to — baseline 3 applies when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb (build) and resource (consolidated cross-source dossier) and enumerates exactly which sources are aggregated: EDGAR registration, EPA ECHO environmental/facility data, and OFAC/UN/EU/BIS sanctions screening. This clearly distinguishes it from single-source siblings like edgar_company_lookup, epa_facility_search, or sanctions_screen_entity, and from adjacent dossier tools such as issuer_diligence_dossier.

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

Usage Guidelines4/5

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

'Build ... in one call' and 'a single AI-native lookup across data that otherwise lives in separate silos' implies the selection condition: use this instead of calling the individual silo tools when you need a consolidated view. However, it never states an explicit when-not (e.g., use the single-source tools when you only need EDGAR or only need screening), so the routing guidance 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.

entity_resolveA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCompany / organization name, e.g. 'Chevron Corporation', 'Acme Trucking LLC'.
stateNoOptional 2-letter US state to disambiguate location-based sources (e.g. 'TX').

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a two-parameter read-only tool with no output schema, the description 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_riskA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesSite, facility, or operator name to screen (e.g. 'Smith Manufacturing', 'Acme Plating Inc').
stateNoOptional 2-letter state to disambiguate the EPA facility and parcel search.
addressNoOptional street address to pin the parcel record.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses 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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_facility_complianceA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
registry_idYesEPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271').

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description states a specific verb and resource: 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.

Usage Guidelines3/5

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_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
registry_idYesEPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271').

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_water_or_air_violationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaNoWhich media to report: 'air', 'water', or 'all' (default 'all').
registry_idYesEPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271').

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple two-parameter 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already 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.

Purpose4/5

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.

Usage Guidelines3/5

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_scoreA
Read-onlyIdempotent
Inspect

FIRST EPSS exploit prediction score for a CVE. Returns probability (0-1) of exploitation in the next 30 days plus the percentile rank.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE identifier.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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

For a single-parameter, read-only lookup 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
airportYesExact FAA location id, ICAO id, NASR site number, or unambiguous facility name.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare a safe read (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the description adds value by disclosing which data is deliberately excluded (contacts, remarks), that output is 'privacy-minimized', and that the profile is cycle-stamped and not a NOTAM substitute – a real freshness caveat. It does not cover error behavior for unmatched airport identifiers, which is the only notable gap.

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

Conciseness4/5

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

Front-loads the purpose, then the returned-field inventory, then usage examples, then exclusions – a sensible progression with no filler sentences. The long parenthetical field list is dense but earns its place by defining the output in the absence of an output schema.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so by enumerating the categories of fields returned, plus scope boundaries (single facility, no contacts/remarks) and a staleness caveat. An agent has everything needed to decide to call it and to interpret the response shape at a high level.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (airport, response_format) are already fully documented in the schema, including the accepted identifier forms and the default markdown format. The description adds no syntax, format, or matching-ambiguity guidance 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.

Purpose5/5

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

States a precise verb+resource+scope: 'Return one official FAA NASR facility profile' and enumerates the technical content (identifiers, coordinates, runway dimensions, ILS, declared distances, cycle, provenance). The singular 'one ... profile' plus the field list clearly distinguishes it from the sibling faa_public_aviation_search_airports / search_runways / compare_airports, which operate over sets.

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

Usage Guidelines4/5

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

Gives concrete triggering examples ('FAA profile for JFK', 'runways and approach equipment at KDEN') and a named use case (technical airport due diligence), plus explicit exclusions: contacts and remarks are omitted, and it is 'not a substitute for current NOTAMs, charts, or flight planning.' It stops short of naming the sibling search/compare tools as alternatives, so routing between sibling tools still takes inference.

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_airportsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
airportsYesTwo to eight FAA location ids, ICAO ids, site numbers, or unambiguous names.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful context beyond that: a consistent 28-day source cycle, ranking by longest published runway, and framing as a technical evidence view. It does not cover auth or rate limits, but adds real behavioral value.

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

Conciseness4/5

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

The description is front-loaded with the core action and scope, then lists compared fields, then gives usage examples and a boundary. The long enumeration of comparison dimensions is dense but informative, and no sentence is wasted. It is slightly list-heavy but well-structured.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the compared dimensions (runway dimensions, ILS, tower codes, provenance, etc.) and the ranking basis. It is complete enough for an agent to know what the tool returns conceptually, though it could say more about result structure (e.g., whether output is a ranked table).

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema. The description reinforces the 2-to-8 facility range but adds no syntax, format, or semantic details beyond what the schema provides. Baseline 3 when schema does the heavy lifting.

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

Purpose4/5

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

The description states a specific action (compare) on a specific resource (two to eight FAA NASR facilities) and enumerates the compared dimensions. It does not name sibling tools like faa_public_aviation_airport_profile or faa_public_aviation_search_airports, so it lacks explicit sibling differentiation but the compare scope is clear.

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

Usage Guidelines4/5

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

It provides concrete example queries ('compare JFK, LAX, and ORD runway capabilities') and a domain boundary (not an operational suitability decision or navigation source). However, it does not explicitly say when to use this tool versus the sibling airport profile or search tools.

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_airportsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum facilities. Default 20.
queryNoFAA/ICAO id, airport/facility name, or city.
stateNoTwo-letter U.S. state or territory code.
offsetNoFacilities to skip. Default 0.
statusNoFAA operational or closure status. Omit to include all statuses.
facility_useNoFAA public-use or private-use classification.
facility_typeNoAirport, heliport, seaplane base, balloonport, gliderport, or ultralight facility.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
min_runway_length_ftNoRequire at least one runway of this published length.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, open-world safety profile. The description adds genuinely useful context beyond them: the data is a self-hosted 28-day NASR snapshot, includes cycle provenance, and is reference-only rather than live status/NOTAMs. It stops short of describing pagination mechanics despite mentioning pagination.

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

Conciseness5/5

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

Three dense sentences, front-loaded with the data source and scope, then returns, then usage, then the freshness caveat. No filler sentences; each one carries distinct information.

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

Completeness5/5

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

With no output schema, the description compensates by enumerating the returned fields and cycle provenance, and it discloses the data source and its non-live nature. Combined with 100% parameter coverage, an agent has everything needed 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.

Parameters3/5

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

Schema description coverage is 100%, so all 9 parameters are already documented, establishing a baseline of 3. The description's example queries imply parameter combinations (state + facility_use + min_runway_length_ft, query for city/name/id), adding marginal value over the schema without explaining any single parameter further.

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

Purpose5/5

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

States a specific verb (Search) and resource (U.S. airports and other landing facilities), names the exact data source (official FAA 28-day NASR snapshot), and enumerates the returned fields. It is clearly distinguishable from the sibling profile, compare_airports, and search_runways tools.

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

Usage Guidelines4/5

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

Gives concrete use cases ('find airports near a city', 'public-use airports in Ohio with a 5,000-foot runway') and explicitly routes to the profile sibling via 'resolve an identifier before a profile call'. It also states a when-not ('not live airport status or NOTAMs'), though it does not distinguish from compare_airports or search_runways.

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_runwaysA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum runways. Default 20.
stateNoTwo-letter U.S. state or territory code.
offsetNoRunways to skip. Default 0.
surfaceNoSubstring of FAA surface code, such as ASPH, CONC, TURF, WATER, or GRVL.
ils_onlyNoRequire at least one runway end with a published ILS type. Default false.
lighted_onlyNoRequire a nonblank FAA runway-light code. Default false.
min_width_ftNoMinimum published runway width in feet; water landing areas may be much wider than paved runways.
min_length_ftNoMinimum published runway length in feet.
public_use_onlyNoRequire FAA public-use classification. Default false.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
operational_onlyNoExclude closed facilities. Default true.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the read-only, idempotent, non-destructive, open-world profile. The description adds value beyond that by disclosing the returned payload shape (pagination, cycle, provenance) and an explicit data-reliability caveat ('Reference data only; verify all performance and operational decisions independently'), which an agent needs to use the output responsibly.

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

Conciseness4/5

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

Three sentences, front-loaded with purpose, then return shape, then use cases and caveat. Every sentence contributes; the filter enumeration is slightly redundant against the schema but remains readable and appropriately sized.

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

Completeness4/5

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

For an 11-parameter, no-required-filter tool with no output schema, the description compensates by summarizing both the filter surface and the returned fields, plus a caveat. It is complete enough to invoke correctly, though it omits pagination semantics (defaults, offset interaction) that the schema only partially covers.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the schema with bounds and examples. The description only enumerates filter categories (state, length/width, surface, lighting, ILS, public use, status) without adding syntax or format detail, so baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (Search) and resource (U.S. FAA NASR runways) with scope. The runway focus cleanly distinguishes it from the sibling faa_public_aviation_search_airports, which operates at airport granularity, so an agent can route between them without opening schemas.

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

Usage Guidelines4/5

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

Gives concrete invocation examples ('operational Texas runways at least 8,000 feet', 'public-use paved runways in Alaska', airport-site screening) that clarify the intended use context. However, it never names an alternative tool or states when NOT to use this one versus the airport-level siblings, 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.

facility_care_qualityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOptional provider category to pin the CMS dataset: 'hospital', 'nursing_home', 'home_health', or 'hospice'. Omit to auto-detect.
stateNoOptional 2-letter state to disambiguate the facility (e.g. 'OH', 'AZ').
facilityYesFacility name to look up (e.g. 'Cleveland Clinic', 'Mayo Clinic Hospital', 'Burns Nursing Home').

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description names a specific operation: a 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.

Usage Guidelines4/5

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_nationalA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum monthly observations. Default 24.
stateYesTwo-letter U.S. state or District of Columbia abbreviation; US is not accepted.
offsetNoMonthly observations to skip. Default 0.
offenseYesFBI CDE summarized offense category. Aggregate categories overlap their component offenses.
end_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
start_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety and mutability are covered. The description adds useful behavioral context by listing included outputs such as both reporting-coverage series, rate difference, ratio, pagination, and provenance, plus a coverage caveat. It does not fully specify response structure, but that is mitigated by 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.

Conciseness4/5

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

The description is front-loaded with purpose and included outputs, followed by use cases and explicit exclusions. It is somewhat long, but every sentence serves routing or scoping, and there is no redundant filler.

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

Completeness5/5

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

Given no output schema, the description compensates by naming the returned components: both reporting-coverage series, rate difference, ratio, pagination, and provenance. Combined with annotations and 100% schema coverage, an agent has enough context to invoke the tool correctly and understand its limits.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter's meaning, format, and constraints. The description mentions state-to-national comparison and output components but does not add parameter-level semantics beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: compare one state's monthly FBI summarized UCR offense rate with the national rate. It identifies the exact data scope (LiveDataLink self-hosted CDE aggregate snapshot) and distinguishes the tool from sibling FBI CDE tools by emphasizing state-to-national comparison rather than trends, rankings, or snapshots.

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

Usage Guidelines5/5

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

It gives explicit example queries and states when the tool is appropriate: state-versus-national context. It also clearly says what the tool does not support: state rankings, city league tables, causal claims, and individual risk decisions. This is strong routing guidance despite not naming specific sibling functions.

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_trendA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum monthly observations. Default 24.
offsetNoMonthly observations to skip. Default 0.
offenseYesFBI CDE summarized offense category. Aggregate categories overlap their component offenses.
end_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
start_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the read-only/idempotent safety profile, so the description's job is to add characterization. It does: it warns that the endpoint does not publish reported count fields, so counts are null rather than back-calculated, and that offenses cover only those known to law enforcement. This is valuable data-quality 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.

Conciseness4/5

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

Three sentences, front-loaded with the capability, then usage examples, then the data caveat. Dense but each sentence earns its place; no filler or repetition of the title.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining returns, and it does so by stating counts come back null and describing the reporting-population/coverage fields. For a six-parameter read-only 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.

Parameters3/5

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 schema. The description adds little parameter-level meaning beyond 'bounded' (implying limit/offset pagination) and the offense-rate framing; baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Return') and resource ('U.S. monthly FBI summarized UCR offense-rate trend with national reporting population and coverage'), and the national scope implicitly separates it from the state-level fbi_cde_* siblings. An agent can distinguish it 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.

Usage Guidelines4/5

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

Gives concrete use cases ('national burglary rate trend in 2020', 'U.S. violent-crime reporting coverage by month') and a positioning hint ('national context before a state comparison'). It stops short of explicitly naming the alternative tools (e.g. fbi_cde_state_crime_trend), so it is clear context without full 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_trendA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum monthly observations. Default 24.
stateYesTwo-letter U.S. state or District of Columbia abbreviation; US is not accepted.
offsetNoMonthly observations to skip. Default 0.
offenseYesFBI CDE summarized offense category. Aggregate categories overlap their component offenses.
end_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
start_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds meaningful context beyond that: self-hosted official CDE aggregate snapshot, bounded results, coverage percentage, provenance, and the critical caveat that these are crimes known to law enforcement only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with scope, then output fields, then usage examples and exclusions. Dense but each sentence carries information; the field enumeration is slightly list-heavy but useful given no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description helpfully enumerates returned fields (offenses, clearances, rates, populations, coverage, pagination, provenance), and the law-enforcement-only caveat is important. Scope and usage are well covered, leaving only minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all seven parameters including the enum values and the two-letter state pattern. The description names returned fields but adds no syntax or constraint detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (return) plus resource and scope: a bounded monthly trend for one state and one FBI summarized UCR offense category. This clearly distinguishes it from siblings like fbi_cde_national_crime_trend, fbi_cde_compare_state_to_national, and fbi_cde_state_month_snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete example queries ('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 the specific sibling to use 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.

fbi_cde_state_month_snapshotA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
monthYesCalendar month in YYYY-MM format within the hosted snapshot.
stateYesTwo-letter U.S. state or District of Columbia abbreviation; US is not accepted.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/open-world safety, and the description adds a crucial analytical caveat not in annotations: the categories overlap and must not be summed. It also discloses that figures come from a self-hosted snapshot with reporting-population coverage and provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then use cases, then caveats/exclusions in three tight sentences. Every clause (example queries, the no-summing warning, the negative scope) earns its place by aiding selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-content burden and does so, naming counts, rates, reporting-population coverage, and provenance. Combined with full parameter coverage and safety annotations, an agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so state, month, and response_format are fully documented in the schema. The description adds no format or syntax detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (returns all ten FBI summarized UCR offense categories for one state-month) and names its source (CDE aggregate snapshot). It also implicitly distinguishes itself from trend and national siblings by naming what 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete example queries ('FBI crime snapshot for Ohio in June 2022') and explicit exclusions (not a jurisdiction score, person-level search, or incident feed), and points to trend queries as the follow-on. It is slightly ambiguous about the sibling fbi_cde_state_reporting_coverage, since it claims coverage inspection as its own use case without naming that tool.

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_coverageA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum monthly observations. Default 24.
stateYesTwo-letter U.S. state or District of Columbia abbreviation; US is not accepted.
offsetNoMonthly observations to skip. Default 0.
end_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
start_monthYesCalendar month in YYYY-MM format within the hosted snapshot.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavior: the response fields (reporting population, full population, coverage percentage), an explicit warning emitted below 90 percent coverage, pagination, and provenance. It also flags an interpretive limit ('coverage is not data quality proof'), which is behavioral guidance annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and return contents, then the use cases, then the caveat. Dense but each sentence earns its place; the second sentence is long and carries several distinct ideas at once.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly compensates by enumerating what is returned (populations, coverage percentage, warning, pagination, provenance). Combined with the usage framing and the interpretation caveat, an agent has everything needed to call and correctly contextualize the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter is documented there, including the two-letter state constraint and the YYYY-MM month format. The description adds only the scoping phrase 'for one state,' so the schema does the heavy lifting and the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Inspect monthly FBI UCR population coverage for one state in LiveDataLink's self-hosted CDE aggregate snapshot.' It also situates itself against the crime-trend sibling ('before interpreting its summarized crime trend'), so an agent can distinguish it from fbi_cde_state_crime_trend 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete trigger phrasings ('was California's 2021 FBI reporting coverage complete?', 'find low-coverage months') and a clear role: 'to qualify an analysis' and 'must accompany, not replace, methodological review.' No named alternative tool or explicit when-not condition, 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.

fbi_wantedA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-25, default 10).
queryNoName or keyword to search (optional; omit for the current featured list).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context beyond those annotations: it is 'public' and 'Keyless,' and it returns matching subjects with aliases, field offices, and a link. It does not discuss rate limits or update frequency, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four short sentences with no wasted words. It is front-loaded with the core action and resource, then adds return details and a usage note efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the burden of explaining return values, which it does: 'Returns matching subjects with aliases, the responsible field offices, and a link.' Combined with annotations that cover safety and the simple two-parameter schema, the description is complete enough 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents both the query and limit parameters. The description repeats 'by name or keyword' but adds no syntax, format, or additional meaning beyond the schema, making the baseline of 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Search the FBI's public Wanted/fugitive list by name or keyword.' It also distinguishes the tool from sanctions screening by saying it 'Complements sanctions screening for person due diligence,' so an agent can tell it apart from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context with 'Complements sanctions screening for person due diligence,' indicating when to use it alongside other checks. However, it does not name explicit alternatives or state when not to use this tool, so it falls 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.

fda_device_510kA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
queryNoManufacturer (applicant) name or device name search term.
end_dateNoInclusive ISO date upper bound (YYYY-MM-DD).
start_dateNoInclusive ISO date lower bound (YYYY-MM-DD).
product_codeNoOptional product code (e.g. 'DXJ' for ECG).

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the filterable dimensions but says nothing about result cardinality, pagination behavior beyond the schema, or dataset scope/coverage. With annotations carrying safety, minimal added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the resource and domain explanation, then filter fields, then use cases. Each sentence contributes, though the 510(k) pathway explainer is somewhat educational rather than operational.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with 100% schema coverage and no output schema, the description covers the necessary ground. However, it doesn't describe the result shape or clarify what 'query' matches (manufacturer OR device name, per schema), leaving some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters are documented with types and descriptions in the schema. The description's mention of filter fields (manufacturer, device name, product code, decision date range) aligns with the schema, adding marginal context but no syntax or format detail beyond it. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: retrieving FDA 510(k) clearances for medical devices. It also explains the domain context (the 510(k) pathway for non-high-risk devices) and names the exact filterable fields, making it clearly distinguishable from siblings like fda_device_recalls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names concrete use cases ('competitive intel, device R&D scouting, M&A research'), giving the agent a clear sense of when this tool applies. It lacks explicit when-not-to-use guidance or named alternatives, but the domain framing supplies sufficient context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fda_device_recallsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
queryNoOptional device name or recalling firm search term.
end_dateNoInclusive ISO date upper bound (YYYY-MM-DD).
start_dateNoInclusive ISO date lower bound (YYYY-MM-DD).
classificationNoRecall classification: 1 (Class I, most severe), 2, 3.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral detail beyond that — no pagination, result ordering, or rate-limit notes — so it neither contradicts nor meaningfully extends the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler: identification first, filterable fields second, use-case context last. Every clause earns its place and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, zero-required-parameter query tool with no output schema and annotations covering safety, the description supplies purpose, filters, and use cases adequately. It does not explain return shape or result ordering, but with annotations present and no output schema required, that omission is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (limit, query, start_date, end_date, classification) is already documented in the schema, including the Class 1 severity note. The description mirrors those facets but adds no syntax or format detail beyond what the schema provides, matching the baseline for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb/resource pair ('FDA medical device recalls') and immediately enumerates the filterable facets (device name, manufacturer, classification, date range). This clearly distinguishes it from siblings like fda_drug_recalls, fda_food_recalls, and cpsc_recall_search 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (medical device supply chain monitoring, hospital biomed compliance), which gives an agent clear context for when this tool applies. It stops short of explicit when-not guidance or naming an alternative sibling for overlapping recall queries, so it is not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fda_drug_adverse_eventsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
drugYesDrug name (brand or generic) to query FAERS for. Example: 'Lipitor' or 'atorvastatin'.
limitNoMaximum rows to return (default 25, max 100).
end_dateNoInclusive ISO date upper bound (YYYY-MM-DD).
reactionNoOptional MedDRA-preferred-term reaction filter (e.g. 'headache', 'nausea', 'liver injury').
start_dateNoInclusive ISO date lower bound (YYYY-MM-DD).
serious_onlyNoIf true, only return serious adverse events (death, hospitalization, life-threatening, disability).

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile fully. The description adds value by detailing what each result contains (patient demographics, reactions, outcome, seriousness), which goes beyond the annotations and helps the agent understand output content. However, with annotations covering behavior so thoroughly, the bar is lower, and the description doesn't add much beyond that basic content listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the first states the data source and scope, the second describes return content, and the third states the intended use case. No waste, and the purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query tool with full schema coverage and no output schema, the description covers what the tool does, what it returns, and its general domain. It lacks guidance on when to choose this over sibling tools, which would make it complete, but it is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all six parameters. The description adds no parameter-specific guidance. Baseline 3 is appropriate when the schema does all the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific source (FAERS), a specific resource (adverse event reports), and a specific scope (for a specific drug). It is distinguishable from siblings like fda_drug_lookup and fda_drug_recalls, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage via 'used for pharmacovigilance and post-market safety analysis,' giving implied context. However, it does not explicitly state when to use this tool versus alternatives like fda_drug_lookup or fda_drug_recalls, nor does it set exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fda_drug_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
queryYesNDC code (e.g. '0002-1407'), brand name (e.g. 'Lipitor'), or generic name (e.g. 'atorvastatin').

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the full safety profile (readOnly, idempotent, openWorld, non-destructive), so the description doesn't need to restate it. It adds genuine value by listing the label content returned (indications, dosage, warnings, contraindications, mechanism, manufacturer, DEA scheduling), which is important since no output schema exists. It omits behavior like multiple-match handling or error cases, hence not 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core capability front-loaded and the return fields enumerated. The trailing 'Used for...' sentence is the weakest element, leaning toward audience framing rather than actionable instruction, but it is short and does not bloat the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with 100% schema coverage and no output schema, the description supplies the return-field inventory an agent needs and the accepted identifier forms. Minor gaps remain: behavior on ambiguous matches, label-version selection, and how the limit interacts with results are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented with examples in the schema itself. The description restates the three accepted query forms but adds no syntax, format, or edge-case detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ('Look up') with a precisely scoped resource ('FDA drug label info') and enumerates the identifier forms (NDC, brand, generic) plus the fields returned. That field list makes the resource unambiguous against neighbors such as fda_drug_adverse_events and fda_drug_recalls, which cover different FDA drug data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives audience-oriented context ('clinical decision support, pharmacy automation, drug-info chatbots') but never states when to pick this tool over alternatives, nor any exclusions or prerequisites. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fda_drug_recallsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
queryNoOptional product description / generic name / brand name search term.
stateNoOptional 2-letter state filter.
end_dateNoInclusive ISO date upper bound (YYYY-MM-DD).
start_dateNoInclusive ISO date lower bound (YYYY-MM-DD).
classificationNoRecall severity: I (most severe), II, III.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the classification severity meaning (I=most severe), but does not disclose result ordering, pagination/limit behavior, or data freshness beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the resource identity followed by filters and use cases. No padding, though the use-case clause is somewhat generic.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A read-only, filter-based search over FDA data with full schema coverage and rich annotations; no output schema is needed since return values are self-evident. The only gap is disambiguation from sibling recall tools, which is a routing rather than completeness issue.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only restates the filter dimensions (product name, classification, state, date range) already documented in the schema, including the severity semantics for classification that the schema also provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'FDA drug enforcement actions (recalls)'. The 'drug' qualifier implicitly distinguishes it from fda_device_recalls and fda_food_recalls, but the description never names those siblings or clarifies the boundary against recall_screen / product_liability_screen.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Lists use cases ('pharmacy compliance, supply chain monitoring, pharmacovigilance'), which implies when it is relevant, but gives no when-not guidance and no routing to the many sibling recall tools (fda_device_recalls, fda_food_recalls, cpsc_recall_search).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fda_food_recallsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
queryNoOptional product description search term.
stateNoOptional 2-letter state filter.
end_dateNoInclusive ISO date upper bound (YYYY-MM-DD).
start_dateNoInclusive ISO date lower bound (YYYY-MM-DD).
classificationNoRecall severity: I (most severe), II, III.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the safety and idempotency profile is fully covered. The description adds only that these are authoritative FDA 'enforcement actions', which is modest context. It says nothing about result ordering, pagination, or the practical meaning of a recall record beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first identifies the dataset and the filterable axes, the second lists target use cases. No filler, and the core identity is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter search tool with 100% schema coverage and no output schema, the definition covers identity, filters, and audience adequately; annotations carry the safety profile. The only minor gap is that it does not characterize the shape of returned recall records, which matters somewhat given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: all six parameters including limit bounds, classification enum values I/II/III, state format, and ISO date bounds are documented in the schema. The description merely restates the filterable dimensions (product description, classification, state, date range), adding no format or edge-case detail beyond the structured fields. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific dataset and resource: 'FDA food enforcement actions (food recalls)', which the parenthetical disambiguates from the sibling fda_drug_recalls and fda_device_recalls. It does not explicitly name those siblings, but the 'food' scope is unambiguous. An agent can identify what this returns 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It lists intended domains – 'retail food safety monitoring, supply chain compliance, restaurant management' – which implies when the tool is useful. However, it gives no when-not guidance and does not route the agent to alternatives like cpsc_recall_search, recall_screen, or fda_drug_recalls, which are the natural confusables in this catalog.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fdic_depositsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name
limitNoMax branches (default 25)
stateNoTwo-letter state code

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuine context not in the annotations: the data is an annual snapshot and results are sorted by deposit volume. It does not, however, say what happens with no state/city filter or how the 200-row cap interacts with results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the data source and scope followed by the return shape and a use case. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully states what is returned and how it is ordered. The main gap is the unaddressed unfiltered case (all three parameters are optional) and whether geography beyond state/city is supported, which an agent might need before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so city, state, and limit (default 25, max 200) are fully documented in the schema. The description adds nothing about parameter behavior (e.g., whether state and city combine as a filter), so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (branch-office deposits), the source dataset (FDIC Summary of Deposits, annual snapshot), and the output ordering (by deposit volume). It is clearly not the same as fdic_financials or fdic_failures, but it never explicitly contrasts itself with the other FDIC_* siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers one implied use case ('useful for measuring local-market banking concentration'), which hints at context, but gives no explicit when-to-use versus when-not, no mention of alternatives like fdic_search_institutions for institution-level data, and no prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fdic_failuresA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 25)
stateNoTwo-letter state code
offsetNoPagination offset
end_dateNoEnd date YYYY-MM-DD
start_dateNoStart date YYYY-MM-DD

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description still adds real traits the annotations don't: default sort order ("most-recent first") and the exact returned fields, which matters since 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the core action and filters before the use cases. Efficient overall, though the trailing use-case sentence is the softest and could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by enumerating the returned fields and the sort order. All five parameters are covered by the schema, and the filter/sort/return picture is complete 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents limit, offset, state, start_date, and end_date. The description only restates the state/date filtering at a high level and adds no syntax or format detail, so it sits at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb + resource ("List FDIC bank failures") and even names the content it returns (failure date, resolution type). It's unambiguous versus the other fdic_* siblings, but it never explicitly differentiates itself from them (e.g., fdic_search_institutions, fdic_history).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear domain context for when to reach for it ("systemic-risk research, historical bank-stability analysis, or compliance work") plus the filter conditions. It stops short of naming alternatives or any when-not-to-use case, so it's context without routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fdic_financialsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
certYesFDIC Certificate Number (get this from fdic_search_institutions)
limitNoNumber of recent quarters (default 4)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description adds genuine behavioral context by disclosing what is returned (assets, deposits, loans, capital ratios, income, asset quality) and the ordering ('most recent quarters first'), which matters because there is no output schema. It stops short of auth/rate-limit details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb+resource+key, then the payload contents, then the ordering. No wasted words and the most decision-relevant information comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-param read-only tool with full schema coverage and no output schema, the description supplies the return contents and ordering that the structured fields omit. It is nearly complete; only the absence of sibling disambiguation keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both params documented (cert sourced from fdic_search_institutions, limit bounded 1-40 default 4). The description reinforces the CERT identifier but adds no syntax or 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get'), resource ('quarterly financial data for a specific bank'), and identity key ('CERT number'), then enumerates the returned fields (assets, deposits, loans, capital ratios, income, asset quality). It is clearly distinct from a lookup tool, but it never names or contrasts with close siblings like fdic_deposits, fdic_summary, or bank_health_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no exclusions. The description implies it is a per-bank quarterly financials tool, but with siblings like fdic_summary, fdic_deposits, and bank_health_report in the same family, the agent gets no help choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fdic_historyA
Read-onlyIdempotent
Inspect

Institution history events for a specific bank by CERT: mergers, acquisitions, name changes, charter conversions, failures. Returns most-recent first.

ParametersJSON Schema
NameRequiredDescriptionDefault
certYesFDIC Certificate Number
limitNoMax events (default 25)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds one genuine behavioral fact beyond the annotations: results are ordered most-recent first. It does not disclose pagination or truncation behavior, so it remains a modest addition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the resource and scope front-loaded, followed by the event list and ordering. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully characterizes the return as a most-recent-first list of named event types, which an agent needs to interpret results. It is largely complete for a simple two-parameter read tool, though it omits any note on pagination or result volume.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (cert and limit, including the default 25 and max 100) are already fully documented in the schema. The description restates that filtering is by CERT but adds no syntax or semantic detail beyond the structured fields, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (institution history events) and scope (a specific bank by CERT), plus enumerates the event types it returns. An agent can tell what it produces, though it does not differentiate itself from the closely related fdic_failures sibling, which overlaps on the 'failures' event type it lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for a specific bank by CERT' implicitly signals that a CERT identifier is required and must be obtained first (e.g., via fdic_search_institutions), which is mild implied guidance. However, there is no explicit when-to-use vs when-not, and no routing away from fdic_failures or fdic_summary despite the overlapping subject matter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fdic_search_institutionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name (exact)
nameNoInstitution name (partial match)
limitNoMax results (default 25)
stateNoTwo-letter state code (e.g. 'CA', 'TX')
offsetNoPagination offset (default 0)
active_onlyNoOnly currently-active banks (default true)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by enumerating the returned fields and explaining that CERT is the key for follow-up queries. It does not cover pagination defaults, rate limits, or authentication needs, but those are not critical 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with zero waste. The primary search action is front-loaded, followed by the return fields and the downstream CERT linkage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description lists the key returned fields and explains how to use the result for follow-up tools. Combined with the annotations covering safety and the 100%-covered input schema, an agent has everything needed to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters, including limit, offset, and active_only. The description mentions the name, state, and city filters but adds no syntax or format detail beyond what the schema provides. Baseline 3 is appropriate when the schema carries the parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search') and resource ('FDIC-insured banks and savings institutions') and identifies the searchable fields (name, state, city). It also distinguishes the tool from downstream siblings by telling the agent to use the returned CERT number for fdic_financials or fdic_history, making the boundary clear without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the filter dimensions and explicitly routes follow-up work to fdic_financials or fdic_history using the CERT number. It does not state when not to use this tool or name an alternative institution-search tool, 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.

fdic_summaryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of years (default 20)
stateNoTwo-letter state code (omit for national)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds the aggregate/scope nature and the optional state filter, but does not disclose return shape, default year window behavior, or data vintage. Adds some value over annotations but not rich context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what it returns before the usage hint. The final sentence is slightly soft ('Useful for...') but earns its place as a routing cue. Minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter, no-output-schema aggregate tool whose safety profile is carried by annotations, the description covers what the tool returns and its scope. It could say more about which financial aggregates are included, but nothing critical to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — 'limit' (number of years, default 20) and 'state' (two-letter code) are both fully documented in the schema. The description restates the state filter ('optionally filtered to a single state') but adds no syntax or format detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Returns year-by-year aggregates across all FDIC-insured institutions') and states the aggregation scope, which implicitly distinguishes it from institution-level siblings like fdic_financials or fdic_search_institutions. It stops short of explicitly naming the sibling it contrasts with, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful for macro banking-sector analysis' implies when to reach for it, but there is no explicit when-to-use versus alternatives (e.g., use fdic_financials for a single bank, this for the whole sector). Usage is only implied, not directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fec_candidate_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
candidate_idYesFEC candidate ID (e.g. 'P80001571', 'S2MA00170').

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only lookup, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_financialsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cycleNoTwo-year election cycle (even year, e.g. 2024). Optional.
limitNoMaximum cycles to return (default 10, max 50).
candidate_idYesFEC candidate ID (e.g. 'S2MA00170').

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds genuine behavioral value by enumerating the returned metrics (total receipts, disbursements, individual contributions, cash on hand, debts), which tells the agent what data it will get. It stops short of return format or pagination/cap behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with no waste: purpose first, returned contents second, and the cycle-filtering hint last. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the returned fields and the annotations carry the safety profile, so an agent has what it needs to call it. It omits minor details like the default limit of 10 and that no cycle returns all cycles, but these are documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema itself documents candidate_id, cycle, and limit with examples and defaults. The description only reiterates the cycle filter and adds no syntax or format detail beyond the schema. Baseline 3 is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get aggregate campaign finance totals for a candidate by FEC candidate_id') and explicitly frames it as cycle-broken-down aggregates. This clearly separates it from siblings like fec_candidate_details (profile data) or fec_candidate_search (finding candidates). An agent can tell what it returns 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete usage hint ('Filter to one cycle with the cycle parameter') but offers no when-to-use/when-not guidance and never names an alternative such as fec_candidate_details. Usage is implied rather than spelled out for the agent deciding between FEC tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fec_independent_expendituresA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cycleNoTwo-year election cycle (even year, e.g. 2024). Optional.
limitNoMaximum expenditures to return (default 20, max 100).
candidate_idNoFEC candidate ID the spending targets (e.g. 'P80001571'). Provide this or committee_id.
committee_idNoFEC committee ID of the spender (e.g. 'C00804856'). Provide this or candidate_id.

TDQS

A3.6/5.0
Behavior3/5

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 the returned field set (spender, amount, date, support/oppose, description), which is useful behavioral context, but says nothing about pagination, result ordering, or completeness limits beyond the schema's limit param.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler: the first defines scope and returned content, the second front-loads the required-input constraint. Nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the fields returned and states the input requirement, and annotations carry the safety profile. Minor gap: no note on result volume/ordering behavior for a list endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents cycle, limit, candidate_id, and committee_id with examples and defaults. The description's 'Provide candidate_id or committee_id' merely restates the schema's own constraint, adding no syntax or format detail beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('independent expenditures'), plus the FEC Schedule E provenance and the directionality (supporting/opposing a candidate or made by a committee). Clear enough to distinguish from generic search tools, though it does not name a sibling like fec_candidate_financials to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence 'Provide candidate_id or committee_id' gives a real usage constraint, implicitly ruling out parameterless calls. However it offers no when-to-use-vs-alternative guidance relative to the other FEC tools (candidate financials, committee search).

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_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoISO date YYYY-MM-DD.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/destructive/openWorld. The description adds real value beyond them: 'provenance-backed' signals sourcing, and the explicit disclaimer that values are historical observations, not a forecast, recommendation, or real-time quote, is a meaningful freshness/limitation disclosure an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the composition of the pack, then the use cases and the disclaimer. Efficient, though 'provenance-backed' is slightly jargon-y filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates what the pack contains (policy rates, full curve, two headline spreads) and its historical nature. Adequate for a zero-required-param, read-only aggregator, though it doesn't describe return shape or units.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both the date pattern and the response_format enum. The description adds no syntax or format detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Combine') and enumerates the exact resource components: H.15 policy/reference rates, the complete nominal Treasury curve, and the 10y-2y/10y-3m spreads. It implicitly distinguishes itself from the single-facet siblings (rate_history, yield_curve, rate_spread) by being the aggregator, though it never names them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit trigger phrases ('summarize the current rate environment', 'build a Federal Reserve rates evidence pack') and positions itself as a 'direct-Board macro leg alongside other datasets'. This is clear when-to-use guidance, but it names no alternatives or when-not conditions.

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_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum observations. Default 30.
offsetNoObservations to skip. Default 0.
seriesYesExact H.15 series_name, descriptive name, or Treasury alias such as '10-year Treasury', '2y', or '3-month Treasury'.
end_dateNoISO date YYYY-MM-DD.
start_dateNoISO date YYYY-MM-DD.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: data comes from a 'self-hosted official snapshot', results are bounded/paginated, and each response carries coverage, a raw-package hash and attribution. It stops short of stating rate limits or what happens on an unknown series.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core verb/resource, then the returned contents, then usage examples and scope. Mild redundancy between 'bounded history' and the 'pagination' item in the contents list, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description responsibly enumerates what comes back (series metadata, values, pagination, D1 coverage, raw-package hash, attribution) and bounds the temporal scope. The one gap for a 6-parameter tool is that it doesn't explain how to obtain a valid series identifier if the exact H.15 name is unknown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the series alias formats and date patterns is already documented in the schema, making 3 the baseline. The description only reinforces the bounding concept via 'bounded history' and does not add syntax or resolution behavior beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return a bounded history for one ... H.15 business-day rate series') plus scope ('2000-present', 'not a live market quote'), which is enough to distinguish it from fed_board_h15_yield_curve and fed_board_h15_rate_spread. It never names those siblings explicitly, so the differentiation is by inference rather than declaration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Three example queries ('show the effective federal funds rate history', 'get daily 10-year Treasury yields', 'what was prime over this period?') imply when the tool fits, and the '2000-present ... not a live market quote' line excludes real-time use. However, it never points to fed_board_h15_search_series for discovering valid series identifiers, nor explains when the evidence_pack or yield_curve siblings are preferable.

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_spreadA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum aligned observations. Default 30.
offsetNoAligned observations to skip. Default 0.
end_dateNoISO date YYYY-MM-DD.
series_aYesExact H.15 series_name, descriptive name, or Treasury alias such as '10-year Treasury', '2y', or '3-month Treasury'.
series_bYesExact H.15 series_name, descriptive name, or Treasury alias such as '10-year Treasury', '2y', or '3-month Treasury'.
start_dateNoISO date YYYY-MM-DD.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world, idempotent, and non-destructive behavior. The description adds useful behavioral context about aligning on business dates and what the response includes (both canonical series, component values, percentage-point and basis-point spreads, pagination, provenance, hosted coverage), though it omits auth, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the core operation, followed by use cases, alias acceptance, and a scope disclaimer. Every sentence adds distinct value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden and does so by enumerating returned data (both series, spreads, pagination, provenance, coverage). It still omits edge cases such as non-aligned dates or coverage-range limits and does not reference sibling alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 7 parameters. The description only notes that Treasury aliases such as '10y' and '2y' are accepted, which duplicates the schema's own examples and adds no new parameter syntax or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation: calculate a time series of one Federal Reserve Board H.15 rate minus another on aligned business dates. The term 'spread' and examples like '10-year minus 2-year Treasury spread' clearly distinguish it from sibling tools such as fed_board_h15_rate_history and 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete use cases ('10-year minus 2-year Treasury spread', 'prime minus fed funds', 'compare 30-year and 5-year yields') and clarifies it is not a forecast or trading signal. However, it does not explicitly name alternative sibling tools 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.

fed_board_h15_search_seriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum series. Default 20.
queryNoOptional words, instrument code, maturity, or series name.
offsetNoSeries to skip. Default 0.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so safety behavior is covered. The description adds useful non-annotation context: it returns canonical names, descriptions, instruments, maturities, coverage, pagination, and a source hash, and it clarifies the data provenance as direct Board data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and source in the first sentence, then efficiently covers returns, usage examples, and provenance. Every sentence earns its place with no redundant or vague filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search/catalog tool with no output schema, the description explains the return payload and usage context adequately. Safety and idempotency are carried by annotations, parameter details by the schema, and source distinction is clarified, leaving no material gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all four parameters documented in the input schema, including the response_format enum and limit/offset defaults. The description does not add syntax, matching behavior, or format details beyond what the schema already provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search') and resource ('active business-day series') within a clearly named source ('Federal Reserve Board H.15 snapshot'). It distinguishes itself from FRED proxies and from sibling history/spread tools, so an agent can tell what it retrieves 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage examples ('find the Fed funds series', 'what Treasury maturities are available?') and says to use it 'to resolve a series before a history/spread call', which implicitly routes to the H.15 history and spread siblings. It does not explicitly name those alternative tools or state when-not to use this search, so it falls 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.

fed_board_h15_yield_curveA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoISO date YYYY-MM-DD.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description earns credit for adding the non-obvious resolution rule: it uses 'the latest business day on or before a date' rather than an exact-date match. It also discloses provenance and a source hash in the return payload, which is useful for auditability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by return contents and usage examples. The second sentence is dense with a long enumeration, but nearly every clause carries distinct information; the closing disclaimer is brief and justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description enumerates the return payload (maturities, yields, canonical series names, spreads, curve-shape classification, provenance, hash), so an agent knows what to expect. With annotations covering safety and the schema covering inputs, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: the 'date' parameter is not an exact-match filter but a snap-back-to-latest-business-day anchor. That clarification materially changes how an agent picks a value for the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (build) and resource (nominal US Treasury constant-maturity yield curve) plus the exact source (Fed Board H.15 snapshot). It is clearly distinguishable from siblings like fed_board_h15_rate_history and fed_board_h15_rate_spread, which handle single series and spreads respectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides three concrete invocation examples ('show today's Treasury curve', 'was the curve inverted on 2024-06-03?', 'compare short and long rates') and a scope exclusion ('Not security pricing or investment advice'). It does not, however, explicitly route the agent to sibling tools (e.g. rate_spread for a single spread series), so the when-not-this-tool guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fed_z1_catalogA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum series. Default 20.
queryNoOptional substring of slug, official series ID, or title.
offsetNoSeries to skip. Default 0.
categoryNoOptional curated category.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds real value beyond that: it discloses the enumerated return fields (IDs, slugs, line metadata, units, release hash, attribution) and warns the result set is intentionally small. It does not mention auth or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose before scope caveat and use cases; the enumerated return-field list is dense but earns its place given no output schema exists. Minor verbosity in the field list, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by enumerating the fields returned. Combined with scope bounds and use cases, an agent has nearly everything needed; only pagination mechanics (deferred to schema) are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all five parameters including the two enums and their bounds. The description adds no param-level syntax or format detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List and search) plus resource (aggregate U.S. balance-sheet and debt series in the Fed Z.1 snapshot), and explicitly bounds scope with 'deliberately small catalog' and 'This is not the full Z.1 universe', which distinguishes it from fed_z1_series and fed_z1_snapshot 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger examples ('what household balance-sheet measures are available?', 'find the mortgage debt series') and a routing rule ('resolve a series before another Z.1 call'). It stops short of naming the sibling Z.1 tools to use instead, so the guidance is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fed_z1_changeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
seriesYesExact curated slug or official Z.1 series ID. Call fed_z1_catalog to discover supported values.
end_periodYesQuarter in official Z.1 YYYY:Qn form, such as 2020:Q4.
start_periodYesQuarter in official Z.1 YYYY:Qn form, such as 2020:Q4.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds value beyond that by enumerating the response payload (both observations, dollar change, percent change, series definitions, release provenance, source hashes) and by scoping the tool as descriptive arithmetic rather than forecast.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core verb and scope, then examples, then a scope disclaimer. Four sentences with no filler, though three example queries are slightly redundant with the already-explicit purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description's enumeration of returned fields (observations, dollar and percent change, definitions, provenance, hashes) fills that gap. Purpose, inputs, outputs, and scope limits are all covered for a four-parameter read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: series, start_period/end_period patterns, and response_format enum are all documented in the schema, including the pointer to fed_z1_catalog. The description adds no format or constraint detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: calculating absolute and percentage change in one curated Z.1 aggregate between two exact quarters. The two-quarter framing distinguishes it in scope from point-in-time siblings like fed_z1_snapshot and full-history siblings like fed_z1_series, even though it does not name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three concrete example questions ('how much did household net worth change from 2019 Q4 to 2024 Q4?', 'growth in mortgage debt since 2020') that clearly map to the tool, and explicitly excludes forecasting/recommendation use. It does not name an alternative tool or state when to prefer fed_z1_series/snapshot instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fed_z1_seriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum observations, newest first. Default 24.
offsetNoObservations to skip. Default 0.
seriesYesExact curated slug or official Z.1 series ID. Call fed_z1_catalog to discover supported values.
end_periodNoQuarter in official Z.1 YYYY:Qn form, such as 2020:Q4.
start_periodNoQuarter in official Z.1 YYYY:Qn form, such as 2020:Q4.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely useful context beyond that: the self-hosted release snapshot provenance, the fields returned (units, seasonal-adjustment basis, source hash, release provenance), and the important caveat that 'values are aggregate historical estimates that may be revised.' It does not discuss rate 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action followed by return contents and usage examples. Dense but each sentence carries information; the 'Includes...' enumeration is somewhat list-like but earns its place given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by enumerating returned fields and adds a revision caveat, so an agent knows what to expect. It is complete enough to call correctly, though it could have noted how to expand or validate the series identifier beyond the schema's pointer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (limit, offset, series, start/end_period, response_format all documented), so the baseline is 3. The description alludes to 'bounded' history and 'pagination' but adds no syntax, default, or behavioral 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Return a bounded quarterly history for one curated Federal Reserve Financial Accounts (Z.1) aggregate series.' The word 'one' and 'curated aggregate series' implicitly separates it from a catalog/enumeration tool, but the description never names fed_z1_catalog, fed_z1_change, or fed_z1_snapshot to make the distinction explicit. Clear purpose, weak sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger phrasings ('show household net worth since 2019', 'quarterly federal debt outstanding', 'consumer credit history') that map well to the tool, establishing clear context. However it offers no exclusions or named alternatives, and the routing hint ('Call fed_z1_catalog to discover supported values') lives only in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fed_z1_snapshotA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
seriesYesOne to eight unique exact curated slugs or official series IDs.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value beyond that: the output carries units in millions and trillions, official IDs, adjustment bases, release quarter, hashes, and attribution, plus an explicit caveat about comparing levels across differing definitions. It does not state behavior on unknown slugs or ordering of results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope, followed by the payload contents and usage triggers. It is dense but every sentence carries information; the enumeration of output fields is the only mild padding, though it compensates for the absent output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates what is returned (values in two units, official IDs, adjustment bases, release quarter, hashes, attribution) and gives use cases plus a definitions caveat. It is nearly complete for an agent to call it correctly, lacking only edge-case behavior (invalid slug handling, multi-series alignment) to reach a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented (series as 'one to eight unique exact curated slugs or official series IDs', response_format enum). The description only restates the one-to-eight cardinality and the curated-aggregate framing, adding no new syntax or format guidance. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Return the latest hosted quarter for one to eight curated Federal Reserve Z.1 balance-sheet or debt aggregates on one consistent release.' The phrase 'latest hosted quarter' and 'one consistent release' implicitly distinguishes this snapshot from the historical/change-oriented siblings (fed_z1_series, fed_z1_change, fed_z1_catalog), but none of those siblings are named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete trigger phrases ('latest household net worth and liabilities', 'compare current household, business, and federal debt levels') and positions itself 'as a macro evidence leg alongside FRED and Treasury tools,' which tells the agent when to compose it with others. It adds a caution ('Do not compare levels without considering definitions and adjustment bases') but stops short of naming which sibling to use for history or deltas.

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_itemsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dfirm_idsYesTwo to ten distinct exact FEMA DFIRM IDs.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds real value beyond that: it states what is returned (requested-order rows, missing IDs, total estimated bytes, provenance) and clarifies 'No geometry is hosted or downloaded,' which prevents misassumptions about data transfer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action and scope, followed by the return summary and the routing hint. Every sentence carries distinct information; nothing is redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description steps in to describe the return payload (ordered rows, missing IDs, total bytes, provenance) and the no-geometry constraint. Combined with annotations, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents dfirm_ids and response_format. The description echoes the 2-10 exact-ID constraint and adds the word 'exact' plus the cross-county/community framing, but contributes no syntax or format 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (compare), resource (FEMA NFHL inventory units), and scope (2-10 exact IDs), plus what is compared: coverage freshness and advertised download size. This clearly distinguishes it from fema_nfhl_get_inventory_item, fema_nfhl_search_inventory, and fema_nfhl_summarize_state_inventory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes point/address flood-zone questions to flood_zone_lookup, which is a genuine alternative. It does not, however, differentiate from its closest siblings (get_inventory_item, search_inventory), so the guidance is clear but not exhaustive.

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_itemA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dfirm_idYesExact six-character FEMA DFIRM ID, optionally suffixed -NFHL.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.5/5.0
Behavior4/5

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: it enumerates what is returned (including 'immutable provenance' and a canonical download URL) and draws a hard boundary ('does not fetch or inspect the geodatabase'), which prevents misuse of the tool as a data-fetch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the operation and key, then return payload, then usage routing and exclusion. 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with full schema coverage and no output schema, the description supplies the lookup semantics, the return shape, and the sibling routing an agent needs. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema carries the parameters (including the regex pattern). The description still adds value by stressing 'exact DFIRM ID', signaling exact-match lookup semantics rather than fuzzy search, which complements the schema's syntactic pattern with intent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get), a specific resource (one self-hosted FEMA NFHL inventory unit), and the exact lookup key (DFIRM ID). It also enumerates the returned fields and names the sibling it is not (flood_zone_lookup), so the agent can place it 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly positions usage: 'Use this to produce acquisition evidence after search' establishes the workflow slot, and 'use flood_zone_lookup for address/coordinate zone questions' names an alternative and the condition selecting it. It stops short of naming fema_nfhl_search_inventory directly, but the sequencing is clear.

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_metadataA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_inventoryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoStable sort. Default jurisdiction.
limitNoMaximum rows. Default 20.
queryNoDFIRM ID, item ID, jurisdiction, state, code, or filename search terms (maximum 8 terms).
stateNoTwo-letter state/territory code or full FEMA state name.
offsetNoRows to skip. Default 0.
updated_fromNoInclusive displayed inventory update date floor, YYYY-MM-DD.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
updated_throughNoInclusive displayed inventory update date ceiling, YYYY-MM-DD.
jurisdiction_kindNoInventory coverage-unit kind derived conservatively from FEMA identifiers/names.
max_advertised_mbNoMaximum FEMA-advertised package size in approximate MiB.
min_advertised_mbNoMinimum FEMA-advertised package size in approximate MiB.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe idempotent read, but the description adds real value beyond them: it is a 'complete pinned projection' (snapshot semantics), returns bounded pagination, both displayed and filename-derived dates, and snapshot hashes, and is explicitly 'inventory metadata only'. This return-shape disclosure is substantial for a tool with 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose followed by return contents and a routing note; every sentence carries information. It is slightly dense with internal jargon ('LiveDataLink's complete pinned projection', 'canonical FEMA download evidence') but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, no-required, no-output-schema tool the description is complete enough to invoke correctly: it names the filter dimensions, the snapshot/pinning nature, the returned artifacts, the metadata-only limitation, and the alternative for point flood-zone queries. Nothing an agent needs to call it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter carries its own description, so the schema does the heavy lifting. The description restates the filter axes (jurisdiction, state, unit kind, update date, advertised ZIP size) without adding syntax or semantics beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (search FEMA's NFHL coverage/download inventory) and enumerates the filterable dimensions, so the agent knows exactly what the tool returns. It differentiates from flood_zone_lookup, but does not distinguish itself from its nearest siblings (fema_nfhl_get_inventory_item, fema_nfhl_compare_inventory_items, fema_nfhl_summarize_state_inventory), which share the same resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage context ('screen coverage/freshness and plan acquisition before property diligence') and names an alternative with its selecting condition ('for an address or coordinate flood-zone question use flood_zone_lookup'). No exclusion guidance against the other NFHL inventory siblings, but the when-to-use framing is clear.

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_inventoryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state/territory code or full FEMA state name.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds genuinely useful semantic context beyond annotations: that the inventory does not imply digital NFHL geometry exists everywhere and is not a flood determination. It does not add auth or rate-limit details, keeping it from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the summary contents and then the usage scope. Every clause earns its place by covering output fields, intended use, and a misuse caveat. Slightly dense but no wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the returned fields (unit counts by kind, oldest/latest package dates, total download-volume estimate, largest unit). Combined with the scope caveat, an agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the state and response_format parameters are fully documented in the schema. The description aligns with 'one state/territory' but adds no syntax or format detail beyond what the schema already provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (summarize) plus resource (FEMA NFHL inventory units for one state/territory), and it enumerates exactly what the summary contains (counts by kind, package dates, download-volume estimate, largest unit). This distinguishes it from the sibling search/get/compare inventory tools 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it: 'state coverage/freshness comparisons and data-acquisition budgeting.' It also guards against misuse with 'is not a flood determination.' It does not name the specific sibling tools as alternatives, 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.

fhfa_hpi_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
placesYesTwo to eight exact FHFA place ids or geography names.
frequencyNoObservation frequency. Default quarterly.
hpi_flavorNoFHFA index flavor. Default purchase-only.
index_basisNoIndex column to use. Default seasonally_adjusted.
geography_levelNoOptional exact FHFA geography level to disambiguate state, metro, division, or national series.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, open-world and non-destructive, so safety is covered. The description adds real value beyond them by enumerating the returned measures (latest level, 1y/5y change, CAGR, direction, stable place_id/geography_level, provenance) and stating the ranking behavior. No auth, rate-limit, or pagination context is offered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the action and scope, then returns, then example use cases, then the boundary. Each sentence contributes distinct information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the return-value burden by listing the measures produced. Annotations cover the safety profile, parameters are fully documented, and both positive and negative usage boundaries are stated. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning by framing the call as operating 'on a consistent FHFA HPI series', implying frequency/flavor/basis apply uniformly across all requested places, which the schema does not state. It also reinforces the 2-8 cardinality constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource (compare US geographies on a consistent FHFA HPI series) plus scope (two to eight) and the ranking key (one-year price-index change). It strongly differentiates from single-series siblings like fhfa_hpi_series by virtue of the multi-geography comparison, but it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Two concrete example invocations ('compare home-price momentum in Texas and Florida', 'which of these metros has stronger five-year appreciation?') plus a negative exclusion ('Not a property valuation or investment recommendation') make the intended use clear. It stops short of naming an alternative tool for the excluded cases, so 5 is not warranted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fhfa_hpi_seriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum observations. Default 24.
placeYesExact FHFA place_id or geography name, such as 'CA', 'California', a 5-digit CBSA id, or an FHFA metro name.
offsetNoObservations to skip for pagination. Default 0.
end_yearNoOptional latest observation year.
frequencyNoObservation frequency. Default quarterly.
hpi_flavorNoFHFA index flavor. Default purchase-only.
start_yearNoOptional earliest observation year.
index_basisNoIndex column to use. Default seasonally_adjusted.
geography_levelNoOptional exact FHFA geography level to disambiguate state, metro, division, or national series.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld, so the safety profile is covered. The description adds that the data comes from a 'self-hosted official snapshot' and mentions a snapshot hash and required attribution, which is useful provenance context. It does not add further behavioral detail such as rate limits or exact pagination semantics, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the core purpose, followed by returned fields, usage examples, and a scope clarification. No wasted filler. The final sentence earns its place by preventing misuse as a valuation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety and a fully-described 10-parameter schema, the description covers purpose, return fields, provenance, and a key scope limit. It could be stronger by explicitly routing users to fhfa_hpi_trend and fhfa_hpi_compare, but it is otherwise complete for a read-only index query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, establishing the baseline of 3. The description adds no syntax or format detail beyond the schema (e.g., no guidance on how place names are matched), so it does not exceed baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return a bounded FHFA House Price Index history for one US geography') and enumerates the returned fields including stable place_id, geography level, year/period, and both index flavors. It does not explicitly contrast itself with the sibling tools fhfa_hpi_trend and fhfa_hpi_compare, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete example queries ('show California house-price history', 'chart the Austin metro HPI') and names a use context ('as a federal price-index leg alongside realestate_trend'). However, it never states when NOT to use it versus the closer siblings fhfa_hpi_trend and fhfa_hpi_compare, leaving the boundary ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fhfa_hpi_trendA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
placeYesExact FHFA place_id or geography name, such as 'CA', 'California', a 5-digit CBSA id, or an FHFA metro name.
frequencyNoObservation frequency. Default quarterly.
hpi_flavorNoFHFA index flavor. Default purchase-only.
index_basisNoIndex column to use. Default seasonally_adjusted.
geography_levelNoOptional exact FHFA geography level to disambiguate state, metro, division, or national series.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4/5.0
Behavior3/5

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 useful framing with the 'not a forecast, appraisal, or investment recommendation' disclaimer and 'self-hosted official series' provenance note. It doesn't discuss failure modes (unknown geography, series gaps) or output verbosity, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope, then a bullet-style enumeration of outputs, then example queries, then an explicit exclusion. Every sentence carries information with no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, 6-parameter (1 required), fully-described-schema tool with no output schema, the description sufficiently explains what is returned (index, prior period, 1y/5y changes, CAGR, direction, identifiers, provenance) and what it is not. Minor gap: no guidance on disambiguating place when multiple geographies match.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter has a description and enums where applicable, so the schema carries the semantic load. The description adds only the geography constraint ('one US geography') which the schema already conveys via the place parameter. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (Summarize) + resource (latest FHFA HPI trend) + scope (one US geography from self-hosted official series). The description also enumerates what the return contains, which distinguishes it from sibling fhfa_hpi_series and fhfa_hpi_compare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete example queries ('how fast are home prices rising in Texas?', 'is the Miami HPI falling?') and names a specific integration use case (corroboration leg for realestate_market_screen). Does not explicitly state when NOT to use it, e.g. versus fhfa_hpi_compare or fhfa_hpi_series, 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.

flood_zone_lookupB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
locationNoAddress or zip to geocode.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description 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.

Purpose4/5

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.

Usage Guidelines2/5

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_authorityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dot_numberYes

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dot_numbersYes2-5 USDOT numbers, as an array or comma-separated string.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mc_numberNo
dot_numberNo

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_safety_scoresA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dot_numberYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_seriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 50 for observations, 25 for catalog queries).
category_idYesFRED category ID. See https://fred.stlouisfed.org/categories/ for the hierarchy.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds one behavioral detail beyond that – results are popularity-ordered – but says nothing about return shape or pagination, which matters since there is no output schema. Modest value-add against an already-annotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, with the core purpose front-loaded before the examples and the routing guidance last. The three ID examples are useful but slightly redundant with the schema's own category reference, so it's efficient rather than maximally lean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only catalog listing with full schema coverage and no output schema, the description covers purpose, ID semantics, and routing versus search. What's returned (series IDs/titles) and any page-size behavior are left implicit, though the limit default is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema's generic 'See https://fred.stlouisfed.org/categories/' pointer by supplying concrete ID-to-topic mappings (32991 = Interest Rates, 32263 = Money Stock, 9 = National Accounts), which materially helps the agent map intent to a value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (List) and resource (FRED series within a category) and adds scope ('most popular'). It also distinguishes itself from search-based siblings with 'browse FRED structurally rather than via search,' so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear selective condition ('browse FRED structurally rather than via search'), which routes the agent away from fred_search. It stops short of naming the sibling tool explicitly or stating when-not to use this tool, so it's clear context without full alternatives coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound ISO date (YYYY-MM-DD).
limitNoMaximum rows to return (default 50 for observations, 25 for catalog queries).
startNoInclusive lower-bound ISO date (YYYY-MM-DD).
series_idsYes2 to 5 FRED series IDs.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is low. The description adds that it returns observations for each series, a useful return-shape hint, but says nothing about truncation, alignment of differing frequencies, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the core action front-loaded and no filler. The use-case sentence is slightly illustrative rather than essential, but overall the structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with full schema coverage and annotation-provided safety profile, the description covers the action, scope and return hint. No output schema exists, so the brief return note is sufficient, though alignment/pagination behavior is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so series_ids, start, end and limit are all documented in the schema. The description restates the 2-to-5 bound and shared date range but adds no new parameter semantics such as frequency alignment or default range behavior, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (compare FRED series) and quantifies the scope (2 to 5 series, same date range). This clearly differentiates it from the single-series siblings like fred_observations and fred_series_info, though it never names those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides motivating use cases ('ratio analysis (e.g. compare 10Y vs 2Y yield) or cross-series correlation'), which helps an agent recognize the right scenario. However, it gives no explicit when-not-to-use guidance and doesn't point to the singleton fred_series_info/fred_observations tools for the non-comparison case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_observationsA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound ISO date (YYYY-MM-DD).
limitNoMaximum rows to return (default 50 for observations, 25 for catalog queries).
startNoInclusive lower-bound ISO date (YYYY-MM-DD).
unitsNoUnits transformation: 'lin' (default), 'chg' (change), 'ch1' (change YoY), 'pch' (% change), 'pc1' (% change YoY), 'log', etc.
frequencyNoAggregate to a different frequency: 'd', 'w', 'bw', 'm', 'q', 'sa', 'a'.
series_idYesFRED series ID (e.g. 'GDP', 'UNRATE'). See https://fred.stlouisfed.org/ for the catalog.
aggregation_methodNoAggregation method when changing frequency: 'avg', 'sum', or 'eop' (end of period).

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint, destructiveHint=false), so the bar is lower. The description adds no further behavioral context — no pagination behavior, default row behavior, rate limits, or what happens with invalid series IDs — but it doesn't contradict annotations either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the primary purpose and followed by the optional parameters. Efficient overall, though trailing 'etc.' and bare code abbreviations leave some ambiguity that a slightly more explicit phrasing would remove.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only series-observation query with a fully documented schema and no output schema, the description gives enough to call the tool correctly (identifier required, optional time/transform/aggregation controls). Return-value format is not described, but that is a minor gap for a well-known time-series shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all seven parameters (start/end, limit, units, frequency, aggregation_method, series_id). The description restates the units codes ('lin, chg, pch, log') and frequency codes ('m, q, a'), which the schema already provides in greater detail, adding no meaning beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Get') plus resource ('time-series observations for a FRED series ID') and a scope statement ('workhorse query for any economic indicator'). It is clear what it returns, but it does not distinguish itself from FRED siblings like fred_series_info, fred_search, or fred_quick_indicator, which share the FRED series-ID domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'workhorse query for any economic indicator' implies broad usage for pulling observations, but the description never states when to prefer this over fred_search (discovery) or fred_series_info (metadata). Usage is only implied, with no explicit alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_quick_indicatorB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoInclusive upper-bound ISO date (YYYY-MM-DD).
limitNoMaximum rows to return (default 50 for observations, 25 for catalog queries).
startNoInclusive lower-bound ISO date (YYYY-MM-DD).
indicatorYesFriendly indicator name. See description for valid options.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds only the wrapper framing and the indicator vocabulary, without disclosing return shape, pagination, or data-vintage behavior that a FRED consumer would care about.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is tight and front-loaded, but the second is a 26-item enumeration that duplicates the schema's indicator enum verbatim, consuming most of the description's length without adding information. That bulk fails the 'every sentence earns its place' test.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with full schema coverage and annotations, the definition is adequate but stops short of complete: it does not say what a response looks like (dates plus values), how the default limit behaves, or which sibling to use for arbitrary series. No output schema exists, so return-value framing was the description's to supply and is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% – start, end, and limit are each documented in the schema, and the indicator enum carries its own description. The description's re-listing of the 26 enum values adds no semantics beyond what the schema already declares, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (FRED indicators) and access mode (quick-access wrapper by friendly name), and implicitly distinguishes itself from series-ID-based siblings by noting it 'avoids needing to memorize FRED series IDs.' It never names a sibling like fred_observations or fred_search 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: reach for this when you want a common macro indicator by friendly name rather than a raw series ID. There is no explicit 'use X instead when Y' guidance, and nothing tells the agent when fred_observations, fred_search, or fred_compare would be the better choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_releasesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 50 for observations, 25 for catalog queries).
release_idNoOptional. If provided, return only that release's metadata.
upcoming_datesNoIf true, return upcoming release date schedule instead of release metadata. Default false.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds real value beyond that by disclosing the mode-switching behavior: with upcoming_dates=true the return payload changes from release metadata to a release calendar, which is not evident 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; the primary browse purpose is front-loaded, followed by the conditional mode toggle and the use case. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, all-optional-parameter catalog tool with rich annotations and a fully documented schema, this is close to sufficient. It conveys both return modes, though it does not describe what a release record contains, which an agent might want given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so limit, release_id, and upcoming_dates are already fully documented in the schema, and the baseline is 3. The description only restates the upcoming_dates behavior and adds nothing about release_id filtering or limit defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Browse FRED economic releases') and grounds it with concrete examples (Employment Situation, CPI, GDP). It does not explicitly differentiate itself from siblings like fred_observations or fred_search, so an agent must infer the boundary from the resource noun alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage with 'Useful for knowing when fresh data is expected,' which hints at the calendar-discovery use case, and the upcoming_dates toggle is explained. However, it never says when to pick this over fred_search, fred_series_info, or fred_observations, and gives no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_series_infoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYesFRED series ID (e.g. 'GDP', 'UNRATE', 'CPIAUCSL', 'DGS10').

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_addressA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNoZIP code for a structured query.
cityNoCity for a structured query.
stateNoTwo-letter state code for a structured query (e.g. 'DC').
streetNoStreet line for a structured query (e.g. '4600 Silver Hill Rd').
addressNoOne-line address, e.g. '4600 Silver Hill Rd, Washington, DC 20233'. Provide this OR the structured parts.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds valuable behavioral context beyond 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by 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.

Parameters4/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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_batchA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressesYesArray of one-line address strings. Max 10.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real value beyond that: it discloses the return shape (one block per input address containing matched address, coordinates, and county/tract GEOIDs) and the 10-item ceiling, which tells the agent how failures/successes map back to inputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with what the tool does and how many rows it accepts, then the return contract, then the scale boundary. No filler and nothing repeated from the annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description supplies the return structure itself, and the annotations cover safety and idempotency. For a one-parameter batch tool, an agent has everything needed to call it correctly and interpret the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage and a single parameter, the baseline is 3; the description adds two constraints not spelled out in the schema's short text — that addresses must be US and formatted as one-line strings — plus the practical batch-size intent behind maxItems: 10.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (geocode), a resource (US addresses), and a hard scope (up to 10, one-line, in a single call). The final sentence contrasts small ad-hoc batches against the 10k-row Census batch file API, which lets an agent separate this tool from the single-address geocode siblings 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it (small ad-hoc batches) and when not to (large jobs, which belong to the Census batch file API). The only gap is that the named alternative is an external API rather than the sibling MCP tools geocode_address / geocode_coordinates, so it doesn't route the agent among invocable tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geocode_coordinatesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude (y), e.g. 38.84
longitudeYesLongitude (x), e.g. -76.92

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context clear: use this 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_repoA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository as 'owner/repo', e.g. 'facebook/react'.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case: '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_pathA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bill_typeYesHosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot.
bill_numberYesNumeric bill number within the fixed 118th Congress.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint/openWorldHint already declared, the bar is lower, yet the description adds real operational context: it is a static snapshot scoped to 118th-Congress HR/S, descending committee->subcommittee hierarchy is preserved with parent links and dated activities, and an empty result is a data-absence signal rather than an error. It does not discuss rate limits or auth, but for a read-only provenance tool the scoping and hierarchy semantics are the material traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and preserved fields, then the when-to-use triggers, then the coverage caveat. Three sentences, all load-bearing. Slightly dense with enumerated field lists, but nothing is redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-output-schema, read-only provenance tool, the description covers the return shape (full hierarchy path), the identity keys (stable committee codes, parent links, chambers, types), temporal data (dated activities), and the snapshot boundary plus absence semantics. An agent has everything needed to invoke and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents the HR/S enum, the 118th-Congress bill_number range, and response_format. The description adds no parameter-level syntax beyond what the schema provides, and the 3-param / 100%-coverage rule sets the baseline at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Return the complete committee and subcommittee path published in GovInfo Bill Status XML for one bill.' It enumerates the preserved fields (stable committee codes, parent links, chambers, types, dated activities), which is far more precise than any sibling (govinfo_legislation_relationships, govinfo_legislation_evidence_pack).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three explicit use-case phrasings ('which committees handled H.R. 2?', 'show subcommittee referrals for this bill', 'build a committee-routing audit trail') and boundaries: 'Coverage is 118th-Congress HR/S only; absence means the captured XML supplied no committee record.' This tells the agent both when to use it and what an empty result means.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govinfo_legislation_evidence_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bill_typeYesHosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot.
bill_numberYesNumeric bill number within the fixed 118th Congress.
action_limitNoMaximum most-recent actions in the pack. Default 15; stored total is always returned.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the lower bar applies, yet the description still adds real behavior: the 118th-Congress HR/S-only coverage limit, default limits of 15 actions and 20 relationships, and that explicit stored totals plus truncation flags are returned. It does not mention auth requirements or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two densely packed sentences with the aggregated payload up front and the coverage/defaults caveats second; almost every clause carries information. The long clause list in sentence one is heavy but not redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the work of enumerating the returned fields (identity, aggregates, citations, subjects, lineage, actions, related measures, URLs, per-record hash, provenance), which is exactly what an agent needs to judge fitness. Coverage limits and truncation semantics are stated; only permission/auth and error behavior are left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents bill_type, bill_number, action_limit, and response_format, making 3 the baseline. The description restates action_limit's default of 15 and adds that stored totals are always returned, but it also mentions a 'relationships to 20' bound that has no corresponding schema parameter, which could mislead slightly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (build an evidence pack for a hosted bill) and enumerates exactly what the pack aggregates: identity, sponsor/cosponsor aggregates, citations, subjects, committee path, version lineage, actions, related measures, URLs, hashes, and provenance. This composition distinguishes it from siblings like govinfo_legislation_committee_path or govinfo_legislation_version_lineage, which return only one slice each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger phrases ('build an evidence pack for H.R. 2670', 'document the source trail for S. 1') and states the applicability boundary that coverage is the complete 118th-Congress HR/S slice only. It does not explicitly say when to prefer a narrower sibling tool over this pack, 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.

govinfo_legislation_relationshipsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum relationship records. Default 25.
offsetNoRelationship records to skip. Default 0.
bill_typeYesHosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot.
bill_numberYesNumeric bill number within the fixed 118th Congress.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: the data source (GovInfo Bill Status XML), pagination, and an explicit coverage constraint ('coverage starts from 118th-Congress HR/S bills; related targets may be resolution types that are not otherwise hosted as primary records').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and payload contents are front-loaded in the first sentence, followed by use cases and a coverage caveat. It is dense but every clause carries information; only the enumeration of relationship types borders on verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the fields each relationship record returns (measures, identifier, latest action), and it discloses the congress/measure-type coverage boundary. Little is missing for correct invocation, though return shape details like ordering are not specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents limit, offset, bill_type, bill_number, and response_format, including enum constraints. The description does not add 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return a paginated related-measure map for one bill') and enumerates exactly what the map contains: companion, identical, related, and procedurally related measures, who identified each, and the target's latest action. This clearly separates it from sibling tools like govinfo_legislation_search, _committee_path, and _version_lineage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete triggering scenarios ('find the Senate companion to this House bill', 'which rule resolution governed this bill?', 'map CRS-identified related measures') that tell the agent exactly when this tool is the right choice. It does not explicitly name sibling alternatives or exclusions, 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.

govinfo_legislation_version_lineageA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bill_typeYesHosted measure type: HR for a House bill or S for a Senate bill. Resolutions are outside this v1 snapshot.
bill_numberYesNumeric bill number within the fixed 118th Congress.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds genuine behavioral context the annotations don't: the hard scope limit '118th-Congress HR/S only,' that package identifiers are immutable, and that this is metadata rather than diff content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the return payload, followed by use cases and a scope caveat. Three quoted example phrasings are slightly redundant but each clarifies a distinct trigger, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing the return shape, and it does: version type/code, date, immutable package identifier, package page, and official XML URL. Combined with the explicit coverage boundary, an agent has everything needed to call and interpret it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so bill_type, bill_number, and response_format are already documented in the schema, including the enum semantics and the 'resolutions outside this v1 snapshot' note. The description adds no parameter-level 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Return every published GovInfo text-version link for one hosted bill,' and enumerates exactly what is returned (version type/code, date, package identifier, page, XML URL). The closing 'version metadata, not a text diff' cleanly separates it from text-diff tooling an agent might otherwise pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Concrete usage examples ('show the introduced, reported, engrossed, enrolled, and law versions of H.R. 2670', 'what version codes exist for S. 1?') make the trigger condition explicit, and the coverage note shapes expectations. It stops short of naming a sibling alternative (e.g. govinfo_legislation_relationships) for the case where the agent wants relationships rather than lineage, so it isn't fully exclusive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grants_get_opportunityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunityIdYesNumeric opportunity id from a grants_search result (e.g. '334326').

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

gsa_per_diem_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNoExactly five ZIP digits, preserving leading zeroes. Do not combine with state or city.
cityNoOptional city within state, e.g. 'O'Fallon'. GSA punctuation quirks are normalized safely.
limitNoMaximum locations returned; default 10 and hard maximum 25.
stateNoTwo-letter code for a contiguous state or DC. Required with city; omit when using zip.
offsetNoLocations to skip for state-result pagination; default 0.
fiscal_yearYesFour-digit federal fiscal year. GSA generally publishes the current three fiscal years.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: state-only results are paginated and capped at 25 per call, and the fiscal-year window (Oct 1 – Sep 30) is disclosed. Return-shape detail is also present. Rate limits and cost hints are absent, keeping it 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, all front-loaded: purpose and scope first, then input selection, then pagination, then temporal/geographic caveats. No filler and nothing redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description lists what is returned (12 monthly lodging limits, daily M&IE, locality/county coverage, source metadata), and covers pagination and scope limits. The main gap is the unmentioned relationship to gsa_per_diem_mie_breakdown for agents wanting a breakdown view.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema carries the per-field syntax. The description adds meaning beyond the schema by defining the fiscal-year boundary and the CONUS-only geographic constraint, which the schema fields alone do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Look up official GSA lodging and M&IE reimbursement rates") and pins the scope to federal fiscal year + CONUS destination. An agent can tell it apart from most lookup siblings, but the description never mentions the related gsa_per_diem_mie_breakdown tool, so it doesn't fully differentiate within its own family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete input selection rules ("Provide either a five-digit ZIP, or a two-letter state with an optional city") and clear scope exclusions (Alaska, Hawaii, territories, foreign locations use other sources). It stops short of naming an alternative tool, so it lacks the explicit when-to-use-this-vs-that routing that would earn a 5.

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_breakdownA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fiscal_yearYesFour-digit federal fiscal year. GSA generally publishes the current three fiscal years.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/destructive=false, so safety is covered. The description adds meaningful scope beyond that: it is CONUS-only (excluding OCONUS/foreign), and it discloses the returned components (breakfast, lunch, dinner, incidental, first/last travel-day amounts), which is 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler, front-loading the resource and scope before the sibling routing instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with annotations covering the safety profile, the description supplies scope (CONUS), returned fields, and routing to the companion tool. Nothing critical is missing, though it could note OCONUS handling more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single fiscal_year parameter is already documented in the schema, including its range and publishing window. The description only restates 'federal fiscal year' without adding 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and a well-defined resource (CONUS M&IE tiers for a federal fiscal year), then enumerates the exact amounts returned. It clearly distinguishes itself from the gsa_per_diem_lookup sibling by naming it explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence routes the agent: use gsa_per_diem_lookup to find the applicable total for a destination, implying this tool is for inspecting the tier structure itself. This is a clear contrast with an alternative, though it stops short of an explicit when-not condition for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hud_fha_lender_exposureA
Read-onlyIdempotent
Inspect

Aggregate confirmed HUD FHA multifamily mortgage maturities by holder, state, or maturity month for an exact date window. Returns mortgage count, unpaid principal balance, and units with the monthly HUD snapshot provenance. Use this for 'which FHA lenders have maturities in 2027?' or 'FHA maturity exposure by state'. It does not estimate default risk, ownership, borrower intent, or refinancing likelihood.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
stateNo
offsetNo
end_dateYesInclusive YYYY-MM-DD window end.
group_byNo
start_dateYesInclusive YYYY-MM-DD window start.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description still adds real context beyond them: it declares the returned measures (mortgage count, UPB, units) and the monthly HUD snapshot provenance, plus a clear negative-capability list. It does not mention pagination or the limit/offset ceiling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with the core action, followed by return shape, usage triggers, and exclusions. No filler and nothing redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the return-value burden (count, UPB, units, provenance) and marks the read-only scope. Remaining gaps are the undocumented pagination/filter parameters, which leaves the 7-param surface only partially covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 43%, so the description should compensate but only partly does. It surfaces the group_by dimensions (holder/state/month) and the exact date window, but says nothing about the state filter, limit, offset, or response_format parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Aggregate confirmed HUD FHA multifamily mortgage maturities,' and scopes it to by-holder/state/month over a date window. It implicitly contrasts with the sibling hud_fha_maturity_search via the 'Aggregate' framing, but never names that sibling, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete trigger phrases ('which FHA lenders have maturities in 2027?', 'FHA maturity exposure by state') and an explicit exclusion list (no default risk, ownership, borrower intent, refinancing likelihood). It stops short of naming the alternative tool (hud_fha_maturity_search) for raw per-loan lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hud_lihtc_year15_radarA
Read-onlyIdempotent
Inspect

Find HUD LIHTC properties whose placed-in-service year reaches the federal 15-year reference date in an exact window. Returns source project fields, unit counts, and a clearly labeled screening date. Use this for 'LIHTC projects reaching year 15 in 2027'. Year 15 is not proof that affordability restrictions expire; extended-use rules vary by state and property documents, so this is not legal, compliance, or investment advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
stateNo
offsetNo
end_dateYesInclusive YYYY-MM-DD window end.
min_unitsNo
start_dateYesInclusive YYYY-MM-DD window start.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine value beyond that: it discloses the return shape (source project fields, unit counts, a labeled screening date) and a critical interpretive caveat that year-15 status is not legal/compliance proof.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core operation before the use case and disclaimer. The disclaimer earns its place given the legal/financial stakes, though it is slightly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description partially compensates by naming returned fields and the screening date. But with 7 parameters and low schema coverage, parameter behavior is under-specified, leaving the definition only marginally adequate for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 43% across 7 parameters; the description mentions none of the filters (state, min_units, limit, offset, response_format), so it does not compensate for the documentation gap. An agent gets no guidance from the description on how parameters shape the query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource+scope: 'Find HUD LIHTC properties whose placed-in-service year reaches the federal 15-year reference date in an exact window.' An agent immediately knows what this tool returns and the exact computation it performs, which is a specialized operation rather than a generic property search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit use case ('LIHTC projects reaching year 15 in 2027') and clear boundaries on what the result does NOT mean ('Year 15 is not proof that affordability restrictions expire'). However, it names no alternative tool for related housing/refinance questions, so routing between siblings 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.

hurricane_trackerA
Read-onlyIdempotent
Inspect

Currently-active hurricanes and tropical systems from NOAA NHC, with category, wind/pressure, current position, movement, and forecast cone link.

ParametersJSON Schema
NameRequiredDescriptionDefault
basinNoOptional basin filter: 'AL' (Atlantic), 'EP' (Eastern Pacific), 'CP' (Central Pacific).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this read-only, idempotent, and non-destructive, so the description 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_mapA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoOptional 4-digit lobbying filing year (e.g. '2024'); defaults to the most recent year with filings.
stateNoOptional 2-letter state to scope the FEC committee search.
companyNoAlias for organization.
organizationYesOrganization / company name (e.g. 'Lockheed Martin', 'Boeing').

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_reputationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address to screen.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only lookup 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as 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.

Usage Guidelines4/5

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_dossierA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional 2-letter state hint for disambiguation (currently informational).
tickerNoOptional stock ticker hint to pin the SEC EDGAR match (e.g. 'LMT').
companyYesPublic company / SEC issuer name (e.g. 'Lockheed Martin', 'Pfizer').

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_analyticsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNoOptional as-of date (YYYY-MM-DD); defaults to the latest available day.
tickerYesUS stock ticker with listed options (e.g. 'AAPL', 'SPY').
lookback_daysNoTrailing window for rank/percentile (default 252 ~ 1 trading year).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, so the bar is lower, but the description adds real context: the underlying source (LiveDataLink historical volatility series), the 2019-2024 coverage window, and the 'analytical aid, not investment advice' disclaimer. It does not cover rate limits or behavior on tickers lacking options, so it falls 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, and the metric parentheticals each add discriminating value rather than filler. The single long sentence is dense but every clause earns its place; a minor readability cost keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the returned metrics, which is exactly what an agent needs. It also discloses the data source and coverage window; only edge-case behavior (missing options history, error cases) is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents ticker, as_of, and lookback_days including defaults and bounds. The description adds only light framing ('where current implied vol sits in its own range over the lookback window'), which is baseline-3 territory when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Compute') and resource ('derived options-volatility analytics') and enumerates the exact outputs (IV Rank, IV Percentile, VRP, 52-week high/low, momentum). This clearly distinguishes it from raw-data siblings like options_history_volhist or options_history_atm_iv.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage ('Premium synthesis over the options-history store') but never states when to prefer this over sibling volatility tools or when it is inappropriate. An agent can infer intent but gets no explicit routing guidance or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kev_status_checkA
Read-onlyIdempotent
Inspect

Check whether a CVE is in the CISA Known Exploited Vulnerabilities catalog. Returns date added, due date, ransomware association, and required action.

ParametersJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE identifier.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check whether') 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.

Usage Guidelines4/5

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_fileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
einNoOptional EIN hint for nonprofit identity.
leiNoOptional 20-character LEI to anchor the ownership chain.
stateNoOptional 2-letter state.
formatNoCase-file format. Defaults to markdown.
tickerNoOptional SEC ticker hint.
companyYesCompany or organization name.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '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.

Usage Guidelines4/5

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_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoReport format. Defaults to markdown.
origin_areaNoOptional origin county/place for FEMA history.
origin_stateNoOptional origin 2-letter state, required with origin_area.
origin_addressYesFull US origin street address.
destination_areaNoOptional destination county/place for FEMA history.
destination_stateNoOptional destination 2-letter state, required with destination_area.
destination_addressYesFull US destination street address.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 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.

Usage Guidelines4/5

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_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
exclusion_idYes24-character evidence ID from a LEIE result.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only tool with 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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_npiA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npiYesExactly 10 digits; placeholder NPI 0000000000 is rejected.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only lookup 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_exclusionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesIndividual or business name, at least 2 characters.
limitNoMaximum rows, default 10 and maximum 50.
stateNoOptional two-letter US state code.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey read-only, idempotent, non-destructive, open-world behavior. The description adds value beyond them: it states the output shape ('Returns evidence IDs') despite no output schema, and warns that 'Name similarity alone does not establish identity', a critical false-positive caveat for this domain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action, each carrying distinct information (scope, return value, identity caveat). No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return shape, the follow-up routing hint, and the match-confidence caveat. For a simple 3-param read tool with rich annotations, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name, state, and limit with constraints. The description only restates those parameters and adds no syntax or format details, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search), a named resource (self-hosted HHS OIG LEIE), and the lookup keys (individual or business name, optional state, limit). An agent can tell this is a lookup/search entry point rather than a detail-fetch like 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: name search with optional narrowing, and it points to a next step by noting it 'Returns evidence IDs for follow-up'. It stops short of explicitly naming leie_exclusion_details or stating 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.

lei_hierarchyA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA company legal name (e.g. 'Apple Inc') or a 20-character LEI code. Names resolve to the top-ranked match.
children_limitNoMax direct children to list (default 15, max 50). The total count is always reported.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, open-world, non-destructive behavior. The description adds value beyond them: keyless access, CC0 data provenance, and the important edge-case disclosure that unregistered relationships return 'none reported' rather than an error. It stops short of covering rate limits or failure modes, so 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the source and output shape, no filler. Minor redundancy in the parenthetical 'keyless, CC0 open data' and the drill-down note slightly dilutes it, but it is efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full return-shape burden and does so: it names each returned field (LEI, legal name, jurisdiction), the relationship fields, the subsidiary count, and the exception semantics. An agent can call this correctly with no other reference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both query (name or 20-char LEI, top-ranked match) and children_limit (default 15, max 50, total always reported) are fully documented in the schema. The description adds no syntax or constraint detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (maps a corporate family tree from the GLEIF relationship register) and precisely enumerates the return set: direct parent, ultimate parent, children, total count. It does not, however, differentiate itself from close siblings like corporate_ownership_tree or beneficiary-ownership tools, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context by framing the questions it answers ('who ultimately owns this company?', 'what does this company own?') and tagging them as due-diligence/beneficial-ownership work. There are no explicit exclusions or named alternatives, so it stops at a solid 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lei_lookupA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax candidate records for a name search (default 10, max 25). Ignored for an exact LEI.
queryYesA company legal name (e.g. 'Apple Inc') or a 20-character LEI code (e.g. 'HWUPKR0MPOU8FGXBT394').

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond that: keyless access, CC0 open data, the exact return fields (with status and jurisdiction enums spelled out inline), and the ranked-candidate behavior of name search. No output schema exists, so enumerating returns is genuinely useful; only rate limits/pagination are unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then inputs and usage context. The long return-field enumeration is dense but earns its place given there is no output schema. Slightly long, but no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, single-input lookup with no output schema, the description covers purpose, both input modes and their matching behavior, and the full return shape with inline enums. An agent has everything needed 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description adds meaning beyond the schema: it clarifies that the name path is a fuzzy match returning ranked candidates while the LEI path is exact. This disambiguates the two accepted input forms in a way the raw schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb (resolve/look up) and resource (LEI) and names the data source (GLEIF public register). The dual mode — name-to-LEI or direct LEI lookup — plus the explicit field list makes it distinguishable from generic entity-resolution siblings like entity_resolve or resolve_entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: use the LEI as a join key to disambiguate a company and cross-reference against sanctions, SEC EDGAR, federal spending, and due-diligence tools, and explains the name (fuzzy) vs LEI (exact) selection. It does not, however, explicitly name a sibling alternative or state when NOT to use this versus those tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tool_groupsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional substring to filter group names (case-insensitive).

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on 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_shieldA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcNoMC/MX number without the prefix.
dotNoUSDOT number (preferred).
nameNoCarrier legal name when DOT/MC is unavailable.
formatNoReport format. Defaults to markdown.
load_idNoOptional internal load/tender identifier to echo in the report.
carrier_addressNoAddress supplied with the tender or onboarding packet, used for a coarse location consistency check.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, so the description is free to spend its words on substance. It does: it discloses the decision taxonomy (CLEAR/REVIEW/BLOCK), the specific red flags detected, the fact that source coverage and links come back, and an explicit scope limitation that this is an analytical aid rather than authoritative FMCSA/insurance verification — a genuinely useful expectation-setter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, no filler, and the actionable scoping (when to call, what it does) is front-loaded before the output description and the limitation caveat. Every clause carries new information about behavior or output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and six inputs, the description carries the return contract itself — decision values, reasons, source coverage, primary links, and a verification checklist — plus the governing caveat. An agent knows both what it will get back and the limits of the answer before invoking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter is documented in-schema (dot marked preferred, mc without prefix, format default, carrier_address used for the consistency check). The description mentions carrier resolution and 'the supplied tender context' but adds no syntax, precedence, or identifier-resolution rules beyond what the schema states, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Screen a carrier'), pins the moment of use ('before accepting or dispatching a load'), and enumerates exactly which evidence classes are fused (FMCSA authority, insurance, safety, sanctions, court, federal awards). It reads distinctly from a raw lookup like fmcsa_carrier_lookup, but it never names a sibling, so the differentiation is inferential 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening clause gives a clear when-to-use trigger (pre-tender/pre-dispatch screening), which is more than most tools offer. However, it never says when NOT to use it or which alternative fits better — carrier_vetting_score, carrier_vetting_evidence_pack, and carrier_monitor_recheck all sit in the same family with no routing guidance, and no prerequisites (e.g. what identifier is required) are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lobbying_contributionsA
Read-onlyIdempotent
Inspect

Search LDA contribution reports (political contributions disclosed by lobbyists/registrants). Filter by year, registrant, or lobbyist name.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoResults per page (default 20).
filing_yearNoFiling year, e.g. 2025.
lobbyist_nameNoLobbyist name, partial match.
registrant_nameNoRegistrant (firm) name, partial match.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 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.

Conciseness5/5

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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines3/5

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_detailA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filing_uuidYesFiling UUID from lobbying_search results.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_lobbyistsA
Read-onlyIdempotent
Inspect

Search individual lobbyists by name (and optionally by their registrant firm). Returns lobbyist records with their associated firm.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination.
page_sizeNoResults per page (default 20).
lobbyist_nameNoLobbyist name, partial match.
registrant_nameNoOptional registrant (firm) name to scope the search.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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_registrantsB
Read-onlyIdempotent
Inspect

Search registered lobbying firms (registrants) by name. Returns registrant profile records.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoResults per page (default 20).
registrant_nameNoRegistrant (firm) name, partial match.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

location_risk_reportA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude (use with lon instead of address).
lonNoLongitude (use with lat instead of address).
stateNoOptional 2-letter state override (helps EPA/parcel/declaration scoping).
addressNoFull US street address to geocode.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_estimatorA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
metroNoOptional 5-digit CBSA/metro code (e.g. '12420' Austin, TX). Census leg only; requires the Census key.
naicsNoExplicit 2 to 6 digit NAICS industry code (e.g. '722' food services, '5112' software publishers). Overrides 'industry'.
stateNoOptional 2-letter state code or 2-digit FIPS (e.g. 'TX', '48'). Omit for a national estimate.
industryNoFree-text industry to map to a NAICS code (e.g. 'restaurants', 'software publishers', 'construction'). Provide this or 'naics'.

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on 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_firesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
eastYesEastern longitude; must be greater than west.
westYesWestern longitude of the bounding box.
limitNoMaximum detections returned. Default 25.
northYesNorthern latitude; must be greater than south.
southYesSouthern latitude of the bounding box.
offsetNoRows to skip for pagination. Default 0.
sourceNoNASA FIRMS sensor product. Default VIIRS_NOAA20_NRT.
data_modeNoauto uses the D1 mirror when configured; hosted requires D1; live requires NASA_FIRMS_MAP_KEY. Default auto.
day_rangeNoNumber of days from start_date, or most recent days when omitted. Default 1.
start_dateNoOptional first UTC date in YYYY-MM-DD form.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent/destructive/openWorld profile, and the description adds substantial context beyond them: the D1 mirror vs NASA Area API fallback behavior, the NASA_FIRMS_MAP_KEY requirement for live mode, pagination support, and the critical semantic caveat that a hotspot is a thermal anomaly and not confirmation of a wildfire.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with purpose, then data-source mechanics, then return fields, then the safety caveat and box-size constraint. Every sentence earns its place, especially the return-field enumeration, which compensates for the absent output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description steps in by enumerating the returned fields (acquisition time, sensor, confidence, FRP, brightness, day/night). Combined with the data-mode/auth and bounding-box constraints, an agent has everything needed to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 11 parameters including the enum values, defaults, and bounds. The description restates some of this (limit/offset pagination, data_mode behavior) but adds little syntax or meaning the schema does not already carry, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Search) and resource (NASA FIRMS satellite active-fire/hotspot detections) scoped to a bounded latitude/longitude box. It is unambiguous and no sibling tool overlaps this fire-detection domain, so an agent can route to it confidently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for use (querying fire detections within a region) and practical guidance such as splitting regions larger than 60x30 degrees into multiple calls. It stops short of explicitly naming alternatives or stating when NOT to use it, but the caveat to verify consequential decisions with incident authorities is a useful usage signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nfip_flood_claimsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNoFive-digit zip code.
limitNoMax rows (default 200).
stateNoTwo-letter state code.
countyNoFEMA county code.
end_yearNoLatest year of loss.
start_yearNoEarliest year of loss.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The 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.

Purpose5/5

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.

Usage Guidelines4/5

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_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
einYesEmployer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418".

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_einA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
einYesEmployer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418".

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_locationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo5-digit ZIP code.
cityNoCity name (combine with state for best results).
limitNoMax results to return (default 20, max 100).
stateNo2-letter US state/territory code, e.g. "TX".

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds the minimum-filter requirement and a result cap, but 'Returns up to 100 organizations' glosses over the schema's default of 20 and the adjustable limit, giving only modest extra 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the operation and its filter set, followed by the precondition and result scope. No filler and nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-purpose read-only search with no output schema and full schema descriptions, the definition covers operation, filter constraint, intent, and result volume. Only minor gaps remain, such as the discrepancy between the stated 100-result cap and the schema default of 20.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents zip, city, state, and limit formats and ranges. The description restates the location filters and combines them implicitly with 'and/or' but adds no format or combination guidance 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find tax-exempt organizations by location') and enumerates the geographic filter set (city, state, ZIP), which implicitly separates it from the name/EIN siblings. It does not explicitly name nonprofit_search_name or nonprofit_lookup_ein as the alternatives, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'At least one filter is required' gives a concrete precondition for calling the tool, and 'Useful for discovering charities, churches, and foundations in an area' frames the intended scenario. No when-not guidance or explicit alternative routing is provided, so it does not reach 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nonprofit_search_nameA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesOrganization name or partial name to search for.
limitNoMax matches to return (default 10, max 50).
stateNoOptional 2-letter US state/territory code to narrow results, e.g. "NY", "TX", "CA".

TDQS

A4.3/5.0
Behavior4/5

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 adds genuinely useful behavior beyond that: fuzzy tolerance to word reordering and spelling, and ranked output with named fields (EIN, location, IRC subsection). It does not discuss result caps beyond the schema's limit param.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, all front-loaded with the core purpose first, then matching behavior, then return contents, then the next-step pointer. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter read-only search with no output schema, the description covers purpose, matching behavior, returned fields, and follow-up tools. Combined with annotations that carry the safety profile, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so name, limit, and state are already documented in the schema. The description only restates the state filter at a high level and adds no syntax or format detail beyond what the schema provides, matching the baseline for a fully-covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (fuzzy-search tax-exempt organizations by name) with scope, and its 'by name' focus distinguishes it from the sibling nonprofit_search_location which searches by location. An agent can route between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent onward ('Use the returned EIN with nonprofit_details or nonprofit_lookup_ein') and explains the optional state filter. It lacks an explicit when-not statement (e.g., when to prefer location search), 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.

nonprofit_statusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
einYesEmployer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418".

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npiYes10-digit NPI number.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only lookup 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_organizationB
Read-onlyIdempotent
Inspect

Search healthcare organizations (hospitals, clinics, group practices, labs) by name. Requires organization_name; state and city optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity to narrow results (optional).
limitNoMax results (1-50, default 10).
stateNoTwo-letter state code to narrow results (optional).
organization_nameYesOrganization name (required).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond that — no note on result truncation, the default/limit behavior, pagination, or data source recency. It essentially restates the schema's required/optional split.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the action and resource front-loaded and the required-parameter constraint placed second. Nothing could be cut without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, read-only search tool with full schema coverage and annotations covering safety, the description supplies enough to invoke it correctly. The one gap is the absence of sibling disambiguation against npi_search_provider/npi_search_specialty, and no hint about result-set behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including the limit range and state code format) are already documented in the schema. The description only repeats that organization_name is required and state/city optional, adding no syntax or semantic detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search healthcare organizations') and enumerates the resource types (hospitals, clinics, group practices, labs), so the agent knows what it returns. It does not, however, distinguish itself from the close siblings npi_search_provider and npi_search_specialty, which also live in the NPI namespace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'By name' plus 'Requires organization_name' implies the usage context — a name-based organization search — but there is no explicit when-to-use, no exclusion of the provider/specialty search siblings, and no statement about what to do if the name is unknown. Usage is inferable 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_providerA
Read-onlyIdempotent
Inspect

Search individual US healthcare providers by name. Requires a last_name (first_name, state, city optional). Returns NPI, specialty, location for each match.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity to narrow results (optional).
limitNoMax results (1-50, default 10).
stateNoTwo-letter state code to narrow results (optional).
last_nameYesProvider last name (required).
first_nameNoProvider first name (optional).

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered structurally. The description adds that it returns NPI, specialty and location per match, which is useful beyond the annotations, but says nothing about result limits, partial matching, or how 'open world' coverage (all US providers) affects reliability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with zero filler, front-loaded with the searchable resource and immediately followed by the required parameter. The only minor loss is that the return-value sentence could have been merged with the input sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully covers return fields (NPI, specialty, location), which is the main gap an agent would otherwise face. Nothing critical is missing for a read-only search, though pagination/limit behavior is left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema. The description only restates requiredness (last_name required; first_name, state, city optional) without adding synonyms, matching rules, or formatting guidance beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search individual US healthcare providers by name'), and the word 'individual' implicitly distinguishes it from npi_search_organization. However, it never names the sibling tools (npi_search_organization, npi_search_specialty, npi_lookup), so an agent must infer the routing boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'by name' signals this is the name-based path, and the required last_name establishes the minimum input. There is no explicit guidance on when to prefer this over npi_search_specialty or npi_lookup, nor any stated exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

npi_search_specialtyA
Read-onlyIdempotent
Inspect

Find healthcare providers by specialty (taxonomy description) in a location. Requires taxonomy (e.g. 'Cardiology', 'Pediatrics', 'Nurse Practitioner'); state and city optional but recommended.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity to narrow results (optional).
limitNoMax results (1-50, default 10).
stateNoTwo-letter state code to narrow results (optional).
taxonomyYesSpecialty / taxonomy description, e.g. 'Cardiology'.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only the specialty-scoped search framing and the optional-but-recommended location hint, with nothing about result counts, pagination, or the limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the core action and followed by the key parameter constraint. Little wasted text, though the taxonomy examples repeat what the schema already states.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, high-schema-coverage search tool with no output schema, the description covers the required input and the primary optional narrowing. Return format and default result handling are left unstated, but the annotations and schema make this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so city, state, limit, and taxonomy are all documented in the schema with examples. The description's taxonomy examples ('Cardiology', 'Pediatrics') largely duplicate the schema's own example, though the 'state and city optional but recommended' note is a small semantic addition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find) and resource (healthcare providers) with the narrowing facet ('by specialty (taxonomy description) in a location'). This distinguishes it in spirit from name/org-oriented siblings like npi_search_provider and npi_search_organization, but it never names or contrasts those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives useful parameter-level guidance ('Requires taxonomy... state and city optional but recommended'), which tells the agent how to fill the call. It does not say when to prefer this tool over npi_lookup, npi_search_provider, or npi_search_organization, so usage is only implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

npm_packageA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesnpm package name, e.g. 'express' or '@scope/pkg'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only lookup 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_fundsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum shared securities; default 25.
fund_aYesFirst EDGAR series ID, mapped ticker, or fund name.
fund_bYesSecond EDGAR series ID, mapped ticker, or fund name.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so basic safety and idempotency are covered. The description adds value by disclosing output components (common securities, portfolio percentages, weighted overlap, identifier lineage) and explicit caveats ('as-filed public data, not live holdings or investment advice'), but it does not cover potential rate limits, authentication needs, or data update frequency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and scope, followed by a list of returned artifacts and a caveat. No waste; every phrase is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and only three parameters, the description is quite complete: it enumerates the main outputs and includes caveats about data freshness and intended use. However, it could be more complete with guidance on handling identical funds or error cases, but that is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters (fund_a, fund_b, limit). The description does not add any additional parameter semantics beyond what the schema provides; baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Compare two funds in the same self-hosted SEC Form N-PORT snapshot') and specifies the scope (same snapshot). This clearly differentiates it from nport_fund_holdings and other financial siblings like stock_compare or crypto_compare by anchoring to N-PORT data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives such as nport_fund_holdings, stock_compare, or other comparison tools. It only states what the tool does, leaving the agent to infer the use case (e.g., fund overlap analysis) without any when/when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nport_fund_holdingsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fundYesEDGAR series ID, mapped ticker, or fund name (at least 2 characters).
limitNoMaximum holdings; default 25.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and openWorld, so the safety profile is covered. The description adds genuinely new behavioral context: values are 'as-filed' (not adjusted), and it warns of a 'public-reporting-lag' issue, which materially affects result interpretation. No return-shape or pagination detail, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences that are front-loaded with the core purpose and scoped immediately to the corpus. Nearly every clause carries information; the return-value enumeration is slightly list-heavy but still earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by enumerating the returned fields (percentages, security identifiers, report date, accession, quarter) and flagging the reporting lag. Resolution methods and return contents are both covered, so an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, making 3 the baseline. The description reinforces the accepted identifier forms for 'fund', but adds no syntax, matching rules, or constraints beyond what the schema states, and says nothing about 'limit'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (largest holdings for a fund) and names the exact corpus (self-hosted SEC Form N-PORT), which separates it from the sibling nport_compare_funds. An agent knows this is a per-fund holdings lookup rather than a cross-fund comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives input-resolution guidance ('Resolve by EDGAR series ID, mapped ticker, or fund-name substring'), which is useful, but never states when to choose this tool over nport_compare_funds or any other alternative, and offers no exclusions or prerequisites. Usage is implied rather than directed.

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_detailA
Read-onlyIdempotent
Inspect

Detailed info for a single alternative fuel station by station ID. Get the ID from nrel_alt_fuel_stations results.

ParametersJSON Schema
NameRequiredDescriptionDefault
station_idYesStation ID from the alt-fuel stations dataset.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the ID-provenance dependency and does not disclose return format, rate limits, or data freshness, so it adds moderate but not rich behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core purpose and followed by the essential ID-sourcing hint. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter detail lookup with rich annotations and full schema coverage, the description is sufficient to invoke correctly. It could say a bit more about the returned detail contents, but the low complexity means little is genuinely missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3, but the description adds meaningful provenance: it tells the agent the station_id should come from nrel_alt_fuel_stations results, which the schema alone does not convey. That is genuine value beyond the parameter definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: 'Detailed info for a single alternative fuel station by station ID.' It is clearly differentiable from the sibling nrel_alt_fuel_stations (search) tool, so an agent can pick between detail-lookup and search without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence, 'Get the ID from nrel_alt_fuel_stations results,' establishes the workflow precondition and points to the alternative sibling, giving clear context for when this tool applies. It stops short of explicitly stating when NOT to use it, but the routing intent is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nrel_alt_fuel_stationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude. Use with lon as alternative to location.
lonNoLongitude. Use with lat as alternative to location.
limitNoMax stations to return (default 25, max 200).
stateNoOptional 2-letter state code filter.
radiusNoSearch radius in miles (default 5, max 500).
statusNoOptional status filter: E (available, default), P (planned), T (temporarily unavailable).
locationNoAddress or city/state. Either location OR lat+lon required.
fuel_typeNoComma-separated fuel types: ELEC (default), CNG, LNG, E85, HY, LPG, BD.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, idempotent, and non-destructive, so the safety profile is covered. The description adds little beyond that — no mention of defaults (limit 25, radius 5 miles), result ordering, or pagination behavior, which for an open-world search with 8 params would be genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and zero padding. The audience sentence is the only part that does not fully earn its place, keeping this just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 100% schema coverage and rich annotations, the description need not restate parameter mechanics. It conveys the domain (alternative fuel types) and spatial intent adequately; the only real omission is the location-vs-coordinates requirement and default radius/limit, which the schema covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 8 parameters are already documented; baseline is therefore 3. The description lists human-readable fuel names (electric, CNG, hydrogen, propane) that loosely map to the fuel_type codes but adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find alternative fuel stations') with a clear spatial scope ('near a location') and enumerates the fuel types covered. It does not, however, differentiate itself from the sibling nrel_alt_fuel_station_detail, so an agent cannot tell where this search tool ends and the detail tool begins.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence names intended audiences (route planning agents, fleet operators, EV/clean-fuel tech), which implies a use context but gives no explicit when-to-use, when-not-to-use, or named alternative. It never states that either location or lat+lon is required to make a call, a condition the schema alone carries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nrel_pvwattsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees. Use with lon as alternative to address.
lonNoLongitude in decimal degrees. Use with lat as alternative to address.
tiltNoArray tilt angle in degrees (default 20).
lossesNoTotal system losses percent (default 14).
addressNoStreet address, city/state, or place name. Either address OR lat+lon required.
azimuthNoArray azimuth in degrees (default 180 = south for northern hemisphere).
array_typeNo0=fixed open rack, 1=fixed roof (default), 2=1-axis tracking, 3=1-axis backtracking, 4=2-axis tracking.
module_typeNo0=standard (default), 1=premium, 2=thin film.
system_capacityYesSystem size in kilowatts DC (e.g. 5 for a 5 kW residential system).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds value beyond that by enumerating the returned quantities (annual and monthly AC kWh, solar resource, capacity factor), which is genuinely useful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler; the core capability and model version are front-loaded before the audience note. Nothing here repeats structured fields verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stateless estimation endpoint with full schema coverage and annotations covering safety, the description is nearly complete, and the return-value summary compensates for the missing output schema. It stops short of mentioning the address-or-coordinates requirement, which is the main practical trap when calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all nine parameters are individually documented with units, defaults and enum-like mappings, so the schema does the heavy lifting. The description adds nothing about parameters — notably it omits that either address or lat+lon is required — so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Estimate solar PV system production') and names the underlying model (NREL PVWatts v8), which pins down exactly what the tool computes. It does not, however, differentiate itself from the sibling nrel_solar_resource, leaving the agent to infer the boundary between resource lookup and production estimation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The audience sentence ('used by solar developers, homeowners, and ESG analysts to size and estimate solar arrays') implies a sizing/estimation use case but gives no explicit when-to-use condition, no prerequisites (API key, address vs lat/lon), and never names an alternative such as nrel_solar_resource. Usage is only inferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nrel_solar_resourceA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees. Use with lon as alternative to address.
lonNoLongitude in decimal degrees. Use with lat as alternative to address.
addressNoStreet address, city/state, or place name. Either address OR lat+lon required.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_ratesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees. Use with lon as alternative to address.
lonNoLongitude in decimal degrees. Use with lat as alternative to address.
addressNoStreet address, city/state, or place name. Either address OR lat+lon required.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context by 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_alertsA
Read-onlyIdempotent
Inspect

Currently-active National Weather Service alerts (tornado, flood, severe thunderstorm, winter, heat, fire) for a point, state, or NWS zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
zoneNoNWS zone id, e.g. 'TXZ123'.
stateNoTwo-letter state code (e.g. 'TX').
locationNoAddress, zip, or city. Will be geocoded to a point.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate that the tool is read-only, idempotent, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

open_payments_by_companyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of companies (default 20, max 50)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower. The description adds genuine behavioral value by disclosing the aggregation scope ('across all years', pre-aggregated) and the returned measures ('total dollars and payment count per manufacturer/GPO'), which the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the aggregation semantics and granularity before the use case. Every sentence carries information; no filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the burden of describing returns, and it does so ('total dollars and payment count per manufacturer/GPO'). Combined with the annotation coverage and the documented limit parameter, the definition is nearly complete, with only the absence of sibling routing as a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the single 'limit' parameter is fully documented in the schema (default 20, max 50). The description adds no parameter-level detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (payment summary grouped by reporting company) with a clear scope ('across all years'). The grouping dimension ('grouped by reporting company', 'per manufacturer/GPO') implicitly distinguishes it from siblings like open_payments_by_specialty and open_payments_state_totals, though those alternatives are never named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The final sentence gives a use case ('rank companies by their pharma-influence spend'), which is a clear context hint. However, it offers no exclusions or routing guidance against the many near-identical siblings (open_payments_top, open_payments_national_summary, open_payments_by_specialty), leaving the agent to infer when this tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_payments_by_specialtyA
Read-onlyIdempotent
Inspect

Payment totals grouped by medical specialty. Reveals which specialties receive the most pharma money: orthopedic surgeons, cardiologists, psychiatrists, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax specialties (default 50)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds that results are grouped and effectively ranked by volume, but says nothing about the underlying time window, data vintage, or pagination behavior of the aggregation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation and followed by a useful illustration of what the output surfaces. No waste, though the example list is decorative rather than operational.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only aggregation with no output schema, the description plus annotations and schema give an agent enough to call it correctly. Only the data timeframe and expected result shape are unspecified, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One parameter with 100% schema coverage (limit, default 50, max 200), so the schema already carries the semantics. The description adds no syntax or format 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation (payment totals grouped by medical specialty) on a specific dataset implied by the name, which cleanly separates it from siblings like open_payments_by_company and open_payments_national_summary. It does not explicitly name those alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for specialty-level aggregation and rankings, but never says when to pick it over open_payments_top or open_payments_by_company, nor any prerequisites. Usage must be inferred from the name and grouping statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_payments_national_summaryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_ownershipA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoProgram year (auto-discovers latest if omitted, e.g. '2024')
limitNoMax rows (default 20, max 100)
stateNoTwo-letter state code (e.g. 'CA', 'TX')
doctorNoDoctor last name (case-insensitive)
companyNoManufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson'
specialtyNoMedical specialty (partial), e.g. 'Cardiology', 'Orthopaedic'

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds semantic context about the data's significance but no behavioral detail such as pagination, auth, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with an em-dash plus a short second sentence. Every phrase earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A read-only search tool with six optional, fully documented parameters and rich annotations. The description identifies the data category well, but with no output schema it does not describe returned fields, which is a minor gap for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six filters (year, limit, state, doctor, company, specialty) are already documented. The description adds no parameter syntax or semantics, leaving it at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search') and resource ('Open Payments OWNERSHIP / investment-interest data'), clarified by 'doctors with equity stakes in pharma/device companies'. It distinguishes the dataset category from sibling tools implicitly, but does not name any alternative among the many open_payments_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not guidance, and no alternatives named despite siblings like open_payments_search and open_payments_by_company. The phrase 'strongest conflict-of-interest signal' hints at a use case (COI research) but does not give real selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_payments_researchA
Read-onlyIdempotent
Inspect

Search Open Payments RESEARCH payments -- clinical research grants and study funding from pharma/device companies to doctors. Separate dataset from general payments.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoProgram year (auto-discovers latest if omitted, e.g. '2024')
limitNoMax rows (default 20, max 100)
stateNoTwo-letter state code (e.g. 'CA', 'TX')
doctorNoDoctor last name (case-insensitive)
companyNoManufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson'
specialtyNoMedical specialty (partial), e.g. 'Cardiology', 'Orthopaedic'

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds context about the dataset's nature (clinical research grants, pharma/device to doctors) but no additional behavioral traits such as rate limits, pagination, or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste, front-loading the resource and the key differentiator (separate dataset) immediately. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple search tool with no output schema and annotations covering safety, the description adequately conveys the dataset scope and differentiator. It could go slightly further by naming the alternative sibling tool or mentioning default limit behavior, but the essentials are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all six parameters. The description adds no parameter-level 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (Open Payments RESEARCH payments), and clarifies it is a separate dataset from general payments. It distinguishes from the general open_payments_search sibling implicitly but does not name it explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Separate dataset from general payments' implies when to use this tool versus the general payments search, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_payments_state_totalsA
Read-onlyIdempotent
Inspect

State-level Open Payments totals. Returns payment totals and average per recipient per state. Useful for state-level pharma-influence research.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax states (default 60)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds return content (totals and averages per state), but does not disclose pagination, auth needs, rate limits, or how the aggregation is scoped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with scope and return values, with the use case last. Nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple aggregation tool with no output schema and one well-documented parameter, the description adequately covers what is returned and why to use it. Minor gaps remain around response structure and default limit, but the schema handles the parameter detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single 'limit' parameter is fully documented in the schema. The description adds no additional meaning about the parameter, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (state-level Open Payments totals) and what it returns (payment totals and average per recipient per state), which implicitly separates it from national, company, and specialty siblings. However, it does not explicitly name or route against those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Useful for state-level pharma-influence research' gives a usage context, but there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance versus open_payments_national_summary or other 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_topA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoProgram year (auto-discovers latest if omitted, e.g. '2024')
limitNoMax rows (default 20, max 100)
stateNoTwo-letter state code (e.g. 'CA', 'TX')
doctorNoDoctor last name (case-insensitive)
companyNoManufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson'
specialtyNoMedical specialty (partial), e.g. 'Cardiology', 'Orthopaedic'

TDQS

A4.2/5.0
Behavior3/5

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 the descending sort order, a meaningful behavioral trait, but says nothing about default/max rows, pagination, or return shape beyond what the schema states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler, and the distinguishing trait (sorted by amount descending) is front-loaded ahead of the usage hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only top-N query with full schema coverage and a safety-covering annotation set, the description supplies the essential distinguishing behavior. It stops short of describing result volume/pagination, but the limit parameter and annotations cover most of that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented in the schema. The description only notes that filters match open_payments_search and adds no syntax or format detail, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (top open payments) and explicitly distinguishes itself from the sibling open_payments_search by the sort order. An agent can tell what this returns and how it differs from the plain search 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative (open_payments_search) and the condition that selects this one instead: it is the sorted-descending variant used to find the LARGEST payments. It also enumerates the qualifying dimensions (company, state, specialty), 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.

opportunity_zones_compare_jurisdictionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jurisdictionsYesTwo to ten distinct state/territory selectors.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower; the description still adds that results are sorted by total, that they include complete-corpus provenance and tract-vintage/cycle warnings, and that only the final 2018 cycle is covered. These are meaningful behavioral traits 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core comparison question, then comparison dimensions, then caveats. Slightly dense with the negative-coverage list, but every clause carries scope-relevant information and nothing reads as filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must convey what comes back, and it does: sorted designation counts broken into total/LIC/Non-LIC Contiguous/covered-county buckets, plus provenance and vintage warnings. Combined with annotation coverage, an agent has enough to call it correctly; only the response_format behavior is left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters fully (including the 2-10 item bounds and the markdown/json enum). The description reinforces that jurisdictions are state/territory selectors that get resolved exactly, but adds no syntax or format detail the schema lacks, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (compares) plus resource (final 2018-cycle QOZ designations) and scope (2-10 states/territories), and enumerates the comparison dimensions (total, LIC, Non-LIC Contiguous, covered county counts). It is readily distinguishable from sibling tools such as opportunity_zones_lookup_designation and opportunity_zones_summarize_designations because it is explicitly the multi-jurisdiction comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It frames the exact question the tool answers ('which of 2-10 requested states/territories has more...') and lists what it does NOT cover (investment quality, land area, population, current eligibility, 2027 cycle), which implicitly routes the agent away from misusing it. However, it does not name the alternative sibling tool to use for single-jurisdiction lookups or summaries, so it stops short of explicit 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.

opportunity_zones_lookup_designationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tract_geoidYesExact 11-digit 2010 census tract GEOID: 2-digit state + 3-digit county + 6-digit tract.
tract_vintageNoMust be 2010. The designation boundaries and identifiers do not change with the 2020 Census.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, open-world behavior, so the safety profile is covered. The description adds real context beyond that: the size of the corpus (8,764 CDFI Fund rows), the enumerated return contents (listed/not-listed status, geography, tract type, ACS source, notices, provenance), and the fixed-vintage rule. It stops short of auth or rate-limit details, but adds substantive value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core question, then the mechanics, then the vintage warning and scope caveat. The enumerated return list is somewhat long, but each sentence carries distinct information and nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating what is returned, and it covers the critical vintage constraint and a scope disclaimer. For a single-identifier lookup tool, an agent has everything needed to call 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds a genuine usage warning: tract_vintage is fixed to 2010 and a 2020 identifier must not be substituted. That reinforces and operationalizes the schema's 'Must be 2010' note rather than merely restating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb (exact lookup) and resource (2010 census tract GEOID against the final 2018-cycle Qualified Opportunity Zone corpus), framed as a direct yes/no question. It is clearly distinguishable from the search/compare/summarize siblings because 'exact lookup' implies a known identifier rather than a query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'exact lookup' plus the constraint 'never submit a 2020 tract identifier as if it were equivalent' gives clear conditions for correct use, and 'not parcel confirmation or tax/legal advice' sets scope boundaries. However, it never explicitly names the alternative (e.g., opportunity_zones_search_designations) for when the agent lacks an exact GEOID, so routing 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.

opportunity_zones_search_designationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum designations. Default 20.
queryNoWords matched against exact 2010 GEOID, state name/code, or county name.
countyNoExact county/county-equivalent name within the optional jurisdiction.
offsetNoDesignations to skip. Default 0.
tract_typeNoOfficial tract type in the designation workbook.
jurisdictionNoExact state/territory name, USPS abbreviation, or two-digit state FIPS in the 2018 designation corpus.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: results are bounded and paginated, carry 2010 GEOIDs, a source hash, IRS authority provenance, and a 2010-vs-2020 boundary warning, plus the caveat that the corpus is an archived final cycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, each earning its place: purpose, mechanism, return shape, and usage caveat, with the identifying scope front-loaded in the first clause. It is dense but not padded; nothing reads as filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and discharges it by enumerating the returned fields and the GEOID-vintage warning. It does not state the no-filter default behavior, but the schema supplies defaults for limit/offset/response_format, so an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all seven parameters documented, so the schema does the heavy lifting. The description restates the jurisdiction, county, and tract-type filters but adds no syntax, default, or format detail beyond what the schema already provides, which lands at the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening question names the exact resource and scope: final 2018-cycle Qualified Opportunity Zone designations from the CDFI Fund workbook, with the searchable dimensions (tract, county, jurisdiction) spelled out. The 'Use for discovery' framing plus the explicit 2018-vs-2027 vintage scoping cleanly separates it from the sibling lookup/summarize/compare tools without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use ('Use for discovery') and two concrete when-not-to-do conditions: don't query with a 2020-vintage GEOID and don't treat this archived final cycle as the still-unfinalized 2027 cycle. It stops short of naming the alternative siblings (lookup_designation, summarize_designations, compare_jurisdictions) that an agent should route to for other needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

opportunity_zones_summarize_designationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum groups. Default 50.
offsetNoGroups to skip. Default 0.
group_byNoAggregation dimension. Default jurisdiction.
tract_typeNoOfficial tract type in the designation workbook.
jurisdictionNoExact state/territory name, USPS abbreviation, or two-digit state FIPS in the 2018 designation corpus.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, open-world. The description adds genuinely useful context beyond them: results are bounded and paginated, include LIC/non-LIC and county counts plus source evidence, and are scoped strictly to the 2018 cycle corpus.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core question the tool answers, then layers in return shape, filters, and caveats. Dense but each sentence carries distinct information; slightly longer than strictly necessary but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the burden of explaining returns (bounded paginated aggregate groups with LIC/non-LIC and county counts plus source evidence), which it does. Filters and scope limitations are covered; only pagination defaults are left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (limit, offset, group_by, tract_type, jurisdiction, response_format) are already documented in the schema. The description references the grouping dimensions and optional jurisdiction/tract_type filters but adds no format or syntax detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (summarize) and resource (final 2018-cycle QOZ designations) and enumerates the exact aggregation dimensions (overall, jurisdiction, county, tract type, ACS eligibility source). The aggregate nature clearly separates it from sibling lookup/search designation tools 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for coverage and market-screening summaries" gives clear context, and it adds two important exclusions: counts are not a measure of investment attractiveness and do not cover 2026-2027 redesignation tracts. It does not, however, name a specific sibling (e.g. search_designations) as the alternative for non-aggregate needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

options_chainA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by option type (default: "both")
symbolYesStock ticker symbol (e.g., "AAPL")
expirationNoExpiration date in YYYY-MM-DD format. Defaults to nearest expiration.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_ivA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker
call_putNoCall (default) or Put
expirationYesExpiration date YYYY-MM-DD (pick the same expiration across dates for consistency)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context by listing 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_chainA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format. Coverage: 2019-02-09 to 2024-11-11.
tickerYesStock ticker (uppercase)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+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.

Usage Guidelines4/5

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_contractA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
strikeYesStrike price (e.g. 450.00)
tickerYesStock ticker
call_putYesContract type
expirationYesExpiration date YYYY-MM-DD

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_volhistA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker (uppercase)
end_dateNoOptional YYYY-MM-DD upper bound
start_dateNoOptional YYYY-MM-DD lower bound

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
einNoOptional EIN for an exact IRS 990 match.
stateNoOptional 2-letter state to disambiguate a nonprofit name search.
organizationYesOrganization / company / nonprofit name.
include_opportunitiesNoAlso list open Grants.gov funding opportunities (available, not awarded). Default false.

TDQS

A4.1/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool produces a 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this 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_trackA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tracking_numberYesPackage tracking number from any carrier

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: 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_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOpenAlex id ('W...') or DOI ('10.x/...'). For arXiv ids, use paper_get_text or paper_search instead.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_get_textA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_seqNoPassage index to start from (0-based, default 0).
paper_keyYesCorpus key of an indexed paper, e.g. 'arxiv:2310.12345' or 'pmc:PMC1234567'.
max_passagesNoMaximum passages to return per call (default 40, max 200).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe read-only/idempotent/open-world profile, but the description adds non-obvious behavior: output is paginated by passage, and non-indexed works return a pointer rather than an error. That pointer-vs-text behavior is genuinely useful and not derivable from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with zero filler: purpose first, paging mechanics second, edge case third. Every sentence carries distinct information and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description partially covers returns (paginated passages, or a pointer for unindexed works), which is the key thing an agent needs. It stops short of describing the exact response shape (passage sequence numbering, how to detect the end of pagination), a minor gap for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are fully self-documenting. The description reinforces the intent of from_seq + max_passages for paging but adds no syntax or constraints beyond what the schema already states (0-based, default, max 200). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return the full text'), a specific resource ('indexed open-access paper'), and the identifying input format with a concrete example ('arxiv:2310.12345'). It also distinguishes itself from paper_search/paper_details by noting those are the fallback for non-indexed works, so an agent can route correctly without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear guidance: use from_seq + max_passages to page, and use paper_search/paper_details when the work isn't indexed locally. This names alternatives and the condition that selects them. It does not, however, contrast itself against the sibling paper_fulltext_search, which an agent might reasonably confuse with this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

paper_statusA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_coverageA
Read-onlyIdempotent
Inspect

List which states/counties the parcel tools currently cover and how many parcels each holds. Coverage grows by state over time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema description coverage, so 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and 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.

Usage Guidelines4/5

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_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNo2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD.
account_idYesParcel account id (from parcel_search).

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents 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.

Purpose4/5

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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is 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_historyA
Read-onlyIdempotent
Inspect

Get the recorded sale history (price + date, no party names) for one parcel by account id. Useful for valuation, appreciation, and comp analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNo2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD.
account_idYesParcel account id (from parcel_search).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The 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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when 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.

patent_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
patent_idYesUSPTO patent id, e.g. '10757852'.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only lookup 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_recentA
Read-onlyIdempotent
Inspect

List the most recently granted US patents since a start date (defaults to 30 days ago), newest first. Useful for monitoring newly issued patents.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 25, max 100).
start_dateNoGrant-date lower bound (YYYY-MM-DD). Defaults to 30 days ago.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description usefully adds the default 30-day window and newest-first ordering, but says nothing about result size, rate limits, or data freshness beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the operation and scope, followed by the use case. No redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with full schema coverage, complete annotations, and no output schema, the description covers what an agent needs: scope, default window, and ordering. It could note the sibling alternatives, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented in the schema (limit max/default, start_date format/default). The description restates the start_date default and ordering 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (recently granted US patents) with explicit scope (since a start date, default 30 days, newest first). This clearly distinguishes it from sibling tools like patent_search or patent_details, which are keyword/detail oriented rather than recency feeds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds a use case ('useful for monitoring newly issued patents') which implies when to reach for it, but never names or excludes alternatives such as patent_search or patent_assignee_search. Usage is implied rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prescriber_ties_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npiNoOptional exact 10-digit NPI; overrides name search.
yearNoOptional 4-digit CMS program year (e.g. '2023'); defaults to the most recent year with disclosed payments.
stateNoOptional 2-letter state to disambiguate the NPPES match (e.g. 'OH').
last_nameNoPrescriber last name (e.g. 'Nissen'). Provide this or an npi.
first_nameNoOptional prescriber first name to disambiguate (e.g. 'Steven').

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's 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.

Usage Guidelines4/5

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_ratioA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesMetro or state name/id (e.g. 'Austin, TX', 'California', or a Zillow region id).
region_typeNoOptional region type filter: 'metro' or 'state'.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only 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.

Conciseness4/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, read-only 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both 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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when this tool is appropriate: when 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_screenA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoOptional lower-bound date (YYYY-MM-DD) for FDA recalls.
stateNoOptional 2-letter state to scope the CFPB complaint leg (e.g. 'CA').
companyNoAlias for manufacturer; either may be supplied.
manufacturerYesManufacturer or brand name to screen (e.g. 'Peloton', 'Fisher-Price').

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

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_lookupA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesStreet address or appraisal district account number
countyNoCounty name (default: montgomery)montgomery

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_areaA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo5-digit ZIP code to search within
countyNoCounty name (default: montgomery)montgomery
streetNoStreet name to search (e.g., 'Main St')
subdivisionNoSubdivision or neighborhood name

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. 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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '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.

Usage Guidelines4/5

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_ownerA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countyNoCounty name (default: montgomery)montgomery
owner_nameYesFull or partial owner name to search for

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only tool with 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: '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.

Usage Guidelines4/5

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_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countyNoCounty name (default: montgomery)montgomery
account_numberYesCounty appraisal district account number

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, read-only 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, 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.

Purpose5/5

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.

Usage Guidelines4/5

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_packageA
Read-onlyIdempotent
Inspect

Look up a Python (PyPI) package: latest version, summary, license, author, homepage, and required Python version. Keyless.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPyPI package name, e.g. 'requests'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_domainA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name, e.g. 'example.com'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, open-world, 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_ipA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address, e.g. '8.8.8.8'.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter read-only lookup 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_valuesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesMetro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, non-destructive profile. 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool with 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('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.

Usage Guidelines4/5

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_screenA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesMetro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, read-only tool 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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_rentsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYesMetro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '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.

Usage Guidelines3/5

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_statusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and schema description coverage is 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.

Purpose5/5

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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for 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_trendA
Read-onlyIdempotent
Inspect

Get the monthly time series of home values (ZHVI) or rents (ZORI) for a metro or state, to chart or analyze the trend.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNo'home_value' (ZHVI, default) or 'rent' (ZORI).
monthsNoHow many recent months to return (default 24, max 360).
regionYesMetro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful domain context, specifying monthly Zillow ZHVI/ZORI series and metro/state geography, but it does not add behavioral details beyond the annotations, such as pagination, missing-data behavior, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single, front-loaded sentence that states the operation, the two metrics, the granularity, the geography, and the use case. Every clause carries information and there is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is read-only with a simple three-parameter schema that is fully documented, and no output schema exists. The description adequately covers what the tool returns (a monthly time series) and the supported metrics, but it could be slightly stronger with a note about default month behavior or the nature of the series beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines metric values, month defaults and maximums, and accepted region formats. The description echoes the metric and region concepts but adds no syntax, constraints, or examples 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Get), resource (monthly time series of home values or rents), and scope (metro or state), making the core purpose clear. It does not, however, differentiate itself from nearby siblings like realestate_home_values or realestate_rents, leaving the agent to infer why this combined trend tool should be chosen over those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'to chart or analyze the trend' implies the intended use case, so usage is more than absent. But there is no explicit when-to-use guidance, no when-not-to-use condition, and no named alternative among the many realestate siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recall_screenA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoProduct, keyword, or manufacturer to screen (e.g. 'infant formula', 'Acme Corp').
sinceNoOptional lower-bound date (YYYY-MM-DD) for FDA recalls.
domainsNoOptional subset of sources to check; default checks all applicable.
vehicle_makeNoVehicle make (e.g. 'Toyota').
vehicle_yearNoVehicle model year (required with make+model for NHTSA).
vehicle_modelNoVehicle model (e.g. 'Camry').

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds rich behavioral context beyond annotations: results are normalized, deduped within and across sources, severity-rolled with FDA Class I or death-related as high, summarized by classification, and source failures are noted but not fatal. Annotations cover read-only/idempotent/open-world safety, and the description adds processing and resilience semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and mostly tight, with the source scope and input modes stated first. The phrase 'Premium cross-source synthesis' is a marketing claim that does not add actionable meaning, though the rest of the description earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-source aggregation tool with no output schema, the description covers input modes, normalization, dedupe, severity roll-up, classification summary, and failure tolerance. Annotations already cover the safety profile, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters. The description adds only the and/or pattern for query versus full vehicle input, without further detail on since or domains. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (sweep) and resource (product-safety recalls) across named sources CPSC, openFDA, and NHTSA. It distinguishes itself from single-source siblings like cpsc_recall_search, fda_drug_recalls, and vehicle_recalls by being a one-call cross-source aggregate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains input modes: product/keyword/manufacturer query and/or full vehicle year+make+model. It positions itself as a one-call comprehensive sweep, implying use over individual source tools, but does not explicitly name when to prefer or avoid alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recreation_facility_detailA
Read-onlyIdempotent
Inspect

Full record for a single federal recreation facility by its RIDB FacilityID: contact, GPS, reservation URL, accessibility, agency.

ParametersJSON Schema
NameRequiredDescriptionDefault
facility_idYesRIDB FacilityID, e.g. '234064'.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: '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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for 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_nearbyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesCenter latitude.
lonYesCenter longitude.
limitNoMax rows (1-50, default 10).
activityNoOptional activity filter.
radius_kmNoRadius in kilometers (default 30, max ~320).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety and idempotency are covered. The description adds a genuine scope disclosure ('federal' facilities) and the radius unit, but says nothing about pagination, result ordering, or whether the radius is a hard cutoff. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core behavior before the use-case examples. The trailing unit note slightly duplicates the schema, keeping it from a perfect score, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, idempotent proximity list tool with a fully documented 5-parameter schema and annotations covering the safety profile, the description is essentially sufficient. With no output schema, a brief note on what a facility record contains or on default result size would have closed the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (lat, lon, limit, activity, radius_km) already carries its own description with units and defaults. The description's 'Radius is in kilometers' merely repeats radius_km's schema text, adding no new meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List), resource (federal recreation facilities), and scoping mechanism (within a radius of a coordinate), which is clear enough for an agent to distinguish it from keyword-based siblings like recreation_search_facilities. It never names those siblings, however, so the differentiation is inferred 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives concrete usage context (campgrounds near a property, fishing spots near a city), which tells the agent the right scenario: coordinate-anchored proximity search. It stops short of any when-not guidance or explicit routing to the other recreation_* search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recreation_search_campsitesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (1-50, default 10).
queryNoFree-text match on campsite name. Optional.
facility_idNoRIDB FacilityID to list campsites within. Optional.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is fully covered and the description carries a lighter burden. The description adds only the returned attribute set (loop, accessibility, type, reservable) and confirms the facility/query split; it says nothing about pagination, result caps, or empty-result behavior beyond what the schema's limit 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, zero filler, with the capability statement front-loaded before the calling instructions. The second sentence is slightly dense with the two-branch instruction, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, three-parameter search tool with no output schema, the definition covers purpose, the two input modes, and the attributes of interest, and the annotations cover the safety profile. It is nearly sufficient; only sibling routing and paging behavior are absent, which are minor for this shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (limit, query, facility_id) are already documented in the schema. The description restates the facility_id and query semantics at roughly the same level of detail as the schema, adding no new syntax, format, or precedence rules, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Search") and a precisely scoped resource ("individual campsites (sites within a campground)"), and clarifies the granularity with the parenthetical. It does not explicitly distinguish itself from siblings like recreation_search_facilities or recreation_search_recareas, so an agent must infer the campsite-vs-campground boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful routing between its own two input modes ("Provide facility_id to list sites ... or query to free-text search"), which is genuine usage context. However, it never says when to use this tool versus the sibling recreation_* search tools, nor any when-not condition, so 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.

recreation_search_facilitiesA
Read-onlyIdempotent
Inspect

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').

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (1-50, default 10).
queryNoFree-text match on facility name.
stateNoTwo-letter state code, e.g. 'CA'.
activityNoActivity name (CAMPING, FISHING, HIKING, etc.).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the useful context that results span six federal agencies (open-world breadth), but says nothing about result count behavior, default limits, or empty-result handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: capability and scope first, filter options second. No filler and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, filter-based search with no output schema, the description covers what the tool returns (facility types), where it searches (six agencies), and the filter dimensions. It could optionally note result limits or how to drill into a single facility via recreation_facility_detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description restates the same filters (name, state, activity) and gives activity examples ('CAMPING', 'FISHING', 'HIKING') without adding format detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Search US federal recreation facilities') and enumerates the facility types and agencies covered, so the scope is concrete. It does not, however, distinguish itself from close siblings like recreation_search_campsites or recreation_search_recareas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by naming filterable fields (name, state, activity), but never says when to pick this tool over recreation_search_campsites, recreation_search_recareas, or recreation_facility_detail. Usage is inferable but not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recreation_search_recareasA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (1-50, default 10).
queryNoFree-text match on recreation-area name.
stateNoTwo-letter state code.
activityNoActivity name.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds the limited extra context that results are federal recreation areas, but says nothing about pagination, result size, or matching behavior beyond what annotations already imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, zero filler. The resource scope is front-loaded before the sibling-routing sentence, so the most important selection cue comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool whose annotations cover the safety profile and whose four simple parameters are fully described in the schema, the description supplies what an agent needs to select it. Since no output schema exists, a sentence on return shape or pagination would have made it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (limit, query, state, activity) is already documented in the schema. The description echoes the same three filter dimensions (name, state, activity) but adds no syntax, format, or matching semantics beyond it; baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (federal recreation AREAS) and immediately defines the granularity with concrete examples (whole national forest, park unit, BLM management area). It also names the sibling it is meant to be distinguished from, so an agent can place it correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes between this tool and recreation_search_facilities: higher-level place search here, specific facilities (campgrounds, trailheads) there. This is exactly the when-to-use/when-to-use-something-else guidance the dimension asks for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reg_cfr_sectionA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional point-in-time ISO date yyyy-mm-dd; defaults to current.
partYesCFR part, e.g. '98'.
titleYesCFR title number 1-50, e.g. 40.
sectionYesCFR section, e.g. '98.411'.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), lowering the bar. The description adds genuine value by disclosing what comes back: the section's plain text, its current-as-of date, and the official eCFR URL. It does not mention rate limits or the point-in-time behavior of the date parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose first, then a concrete example, then return contents. Every sentence earns its place and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by naming the return fields (plain text, currency date, eCFR URL). Combined with full schema coverage and safety annotations, an agent has what it needs to invoke it correctly; only the optional date parameter's semantics go unaddressed in prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description reinforces title/part/section with a concrete example but adds no new syntax or constraints, and does not mention the optional 'date' parameter at all. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Get') plus precise resource ('current text of a specific Code of Federal Regulations section'), and the example citation (title 40, part '98', section '98.411') makes the identifier-based retrieval unambiguous. It does not explicitly name or contrast with siblings like reg_cfr_search or reg_cfr_titles, so differentiation is only implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'specific ... section' combined with a worked example implies the use case (you already know the exact citation), but there is no explicit when-to-use statement, no when-not, and no routing to reg_cfr_search for keyword lookup. Usage is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reg_cfr_titlesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool, the description 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema description coverage is 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'List', and 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.

Usage Guidelines4/5

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_documentA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_numberYesFederal Register document number, e.g. '2026-09905'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup tool with 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 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.

Usage Guidelines4/5

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.

resolve_entityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikNoOptional SEC CIK hint.
einNoOptional EIN for an exact IRS 990 nonprofit match.
nameYesCompany or organization name to resolve (e.g. 'Apple', 'Lockheed Martin', 'Red Cross').
stateNoOptional 2-letter state to disambiguate nonprofit/EPA name searches.
tickerNoOptional stock ticker hint to pin the SEC EDGAR match (e.g. 'AAPL').

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_changesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matches to return. Defaults vary per tool.
sinceYesISO date string (e.g. 2026-01-01) to compute the delta from.
sourceYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the bar is lower. The description adds real value by disclosing the data-freshness model: results come from filtering a cached snapshot by listedOn rather than a live upstream delta feed, which affects how stale results may be.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero padding. The primary behavior is front-loaded and the mechanism note follows as supporting context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys what is returned (added/updated entities) and the underlying mechanism. Minor gaps remain around pagination/limit defaults and return shape, but nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%; 'since' and 'limit' are documented in the schema, while the 'source' enum has no description. The description compensates by clarifying that 'since' is an ISO date and, crucially, that the delta is computed against the listedOn field, which the schema never states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: return entities added or updated since an ISO date for a chosen source list. The 'delta feed' framing implicitly separates it from the sibling screen/search tools (sanctions_screen_entity, sanctions_search_alias), but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the delta semantics, and the rationale ('the four official lists do not all expose a public delta feed') explains why the tool exists. However, it never states when to prefer this over sanctions_status_summary or a full snapshot pull, and gives no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sanctions_get_entityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEntity ID from a screening result, e.g. "OFAC_SDN-44705".

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup with 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_addressA
Read-onlyIdempotent
Inspect

Match a physical address against listed addresses. Useful for KYC / supplier vetting when the counterparty's name is generic but the address is distinctive.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matches to return. Defaults vary per tool.
addressYesFree-form address string.
sourcesNoRestrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL.
thresholdNoMinimum confidence score (0..1) for a result to be returned. Defaults to 0.85.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that – nothing about how matching/scoring works, source freshness, or rate limits. Adequate but thin against a lower bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler; the operational scope is front-loaded and the use case follows. Nothing is redundant with the name or the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations and full parameter coverage make the call itself unambiguous, but there is no output schema and the description says nothing about what a match result contains (score, matched list entry, source). For a screening tool that gap is noticeable, though not fatal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: address, limit, sources, and threshold are each documented in the schema itself. The description mentions 'listed addresses' only generically and adds no syntax, format, or threshold guidance. Baseline 3 is correct when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Match a physical address against listed addresses.' This clearly separates it from name-based screening siblings, though it never explicitly names sanctions_screen_entity or sanctions_screen_batch as the alternatives. An agent can infer the distinction from the word 'address' alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete when-to-use condition: KYC / supplier vetting where the counterparty name is generic but the address is distinctive. That is genuine routing guidance, but it stops short of naming the sibling tool to use for name-based screening or stating any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sanctions_screen_batchA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matches to return. Defaults vary per tool.
namesYesArray of names to screen. Max 50.
sourcesNoRestrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL.
thresholdNoMinimum confidence score (0..1) for a result to be returned. Defaults to 0.85.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/open-world hints, but the description adds billing semantics ('each name counts as one screen for billing purposes') which is meaningful behavioral context not present in annotations. It also notes return ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, all front-loaded with the key operational facts: batch limit, return shape, and billing impact. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so the description adequately describes return behavior (one result block per input, in order). For a batch screening tool with no output schema and full annotation coverage, this is nearly complete, missing only explicit alternative routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds the max names constraint (50) which is already in the schema's maxItems, but reinforces it; no additional 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb (Screen) and resource (names), and quantifies the batch limit. Distinguishes itself from single-screen siblings like sanctions_screen_entity by implying batch behavior, though it doesn't explicitly name the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'up to 50 names in a single call' implies when to use the batch version over the single-entity version, but there's no explicit guidance on when to prefer it vs sanctions_screen_entity or sanctions_screen_address.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sanctions_screen_entityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName or entity string to screen.
limitNoMaximum matches to return. Defaults vary per tool.
sourcesNoRestrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL.
thresholdNoMinimum confidence score (0..1) for a result to be returned. Defaults to 0.85.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, open-world behavior, so the description earns credit mainly for the quota/cost disclosure (1,000 free queries/month, paid plan pricing) and for noting that results carry confidence scores. That is real behavioral context beyond the structured fields, though it omits anything about match ordering or result volume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded in the first sentence and the return behavior follows immediately. The pricing sentence is the weakest link, mildly tangential, but it does convey cost awareness rather than pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by stating that matches are returned with confidence scores, and all four parameters are documented in the schema. It stops short of explaining match shape, ordering, or how threshold interacts with returned results, which would fully round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name, limit, sources, and threshold with defaults and ranges. The description only gestures at the source lists and confidence scoring, adding no syntax or interpretation beyond the schema, which is the expected baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ("Screen") and resource ("a single name or entity") and enumerates the exact source lists (OFAC SDN, EU consolidated, UN consolidated, BIS DPL), which is highly concrete. The word "single" implicitly separates it from sanctions_screen_batch, but no sibling is named outright, so differentiation still requires inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by "single name or entity" and by the batch sibling's existence, but the description never states when to prefer sanctions_screen_batch, sanctions_search_alias, or sanctions_get_entity, nor any exclusions or prerequisites. Adequate but leaves 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_search_aliasA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matches to return. Defaults vary per tool.
queryYesAlias / AKA to search for.
sourcesNoRestrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL.
thresholdNoMinimum confidence score (0..1) for a result to be returned. Defaults to 0.85.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds a genuine behavioral trait beyond that: matching is restricted to alias/AKA fields only, not primary names. It doesn't discuss result format, but with annotations carrying the safety burden this 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core action and immediately followed by the differentiating scope. Every clause earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search with full schema coverage and no output schema, the description supplies the two things an agent most needs – the resource matched (aliases/AKAs) and how it differs from the entity screen. It stops short of noting how to interpret confidence/threshold results, a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents query, sources, threshold and limit with defaults and ranges. The description adds no additional syntax, format, or fuzzy-matching detail about the query parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Search aliases / AKAs across selected lists') and explicitly distinguishes itself from a sibling ('Distinct from screen_entity in that only the alias fields are matched'). An agent can tell it apart from sanctions_screen_entity without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear use condition ('helpful when the primary listed name differs sharply from the popular spelling') and contrasts scope with the sibling screen_entity. It lacks an explicit when-not-to-use, but the context is strong 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.

sanctions_status_summaryA
Read-onlyIdempotent
Inspect

Counts and last-update timestamps for all four lists in the cache. No screening is performed; this call is free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already 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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_datasetsA
Read-onlyIdempotent
Inspect

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 381 tools across 82 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat data the user is looking for (e.g., 'trucking safety', 'stock prices', 'property records', 'VIN lookup')

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: the tool returns exact tool names for matched domains, logs every search to a roadmap database, and costs no credits. The disclosed server-side query logging is a side effect worth surfacing even under readOnlyHint. It does not, however, describe match granularity or what an empty result means, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The routing instruction and cost/next-step guidance are front-loaded and earn their place, but the middle is a ~300-word catalog dump of 82 domains that largely duplicates what the tool itself returns on invocation. Shorter guidance plus letting the search do the enumeration would be tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explaining what comes back (exact tool names for matched domains), that queries are logged and can influence the roadmap, and the pricing/API-key path. Nothing an agent needs to select or invoke this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single 'query' parameter is fully documented in the schema (100% coverage) with its own examples, so the schema carries the burden. The description's 'Call for:' phrase list loosely illustrates acceptable query framing but adds no format or constraint 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) plus resource (available datasets / the entire data catalog) and its role as a router to every other tool. An agent can immediately distinguish it from all 380+ domain-specific siblings like fmcsa_carrier_lookup or edgar_filings_by_form_type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call this FIRST when unsure which tool to use, enumerates concrete triggering phrases ('what data do you have?', 'do you have Y data?'), and names the follow-on step (get_free_api_key with a real email, or the pricing page). When-and-what-next guidance is unusually complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_ftd_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesTwo to eight unique exact ticker symbols.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
settlement_dateNoSettlement date in YYYY-MM-DD format, within the hosted hot window.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description earns credit by adding substantive behavioral context beyond that: missing rows are never coerced to zero, and returned content includes missing-row status, ranking, coverage, and provenance, plus an explicit scope caveat (point-in-time balances are not daily flows or wrongdoing evidence).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core comparison purpose, then the returns, then the scope caveat. Dense but every clause carries information; only the closing disclaimer slightly pads an otherwise tight definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates well by enumerating the return shape (quantities, missing-row status, issuer labels, ranking, coverage, provenance) and the missing-row handling rule. Combined with full schema coverage and rich annotations, an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents symbols (2-8 unique exact tickers), response_format (markdown/json), and settlement_date (YYYY-MM-DD, hot window). The description's 'two to eight' simply restates the schema bounds and adds no new parameter semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (compare), resource (SEC fails-to-deliver balances), cardinality (two to eight tickers), and constraint (same settlement date, self-hosted official snapshot). It is immediately distinguishable from siblings like sec_ftd_latest, sec_ftd_history, sec_ftd_top, and sec_ftd_search_securities by its comparison scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete example utterances ('compare GME, AMC, and TSLA FTD balances', 'which selected symbol had the largest published balance on 2026-08-14?') that make the intended use clear. However, it never names the alternative tools (e.g. sec_ftd_latest for a single symbol) or states when not to use it, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_ftd_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum published dates. Default 30.
offsetNoPublished dates to skip. Default 0.
symbolYesExact ticker symbol as published by the SEC. Use sec_ftd_search_securities for issuer-name searches.
end_dateNoSettlement date in YYYY-MM-DD format, within the hosted hot window.
start_dateNoSettlement date in YYYY-MM-DD format, within the hosted hot window.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower; the description still adds real value by disclosing that records are limited to nonzero published entries, bounded to a hot window, and that omitted dates are not zero-filled. The 'do not sum as daily flow' caveat is a genuinely useful interpretive warning. It stops short of describing pagination mechanics or response size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, then contents, then usage examples and a caveat. Every sentence contributes; the content-list sentence is slightly dense but earns its place given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating what comes back (settlement dates, quantities, SEC price fields, source-row counts, pagination, provenance) and by flagging the nonzero-only and no-zero-fill behaviors. Combined with annotations that carry the safety profile, an agent has enough to call it correctly, though pagination behavior across pages is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (limit, offset, symbol, start_date, end_date, response_format) are already documented in the schema. The description only implies their existence via 'bounded, paginated' and 'settlement dates', adding no format or default detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource — a bounded, paginated history of published nonzero SEC fails-to-deliver balance records for one ticker — and scopes it to the self-hosted hot window. This cleanly separates it from siblings like sec_ftd_latest (single point), sec_ftd_top (ranked aggregation), and sec_ftd_compare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use-case phrasing ('show GME FTD balances over time', 'chart TSLA published fail balances this quarter', inspect point-in-time changes) that pins down the intended scenario. It does not explicitly name when to prefer a sibling such as sec_ftd_latest or sec_ftd_top instead, so it falls short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_ftd_latestA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNoSettlement date in YYYY-MM-DD format, within the hosted hot window.
symbolYesExact ticker symbol as published by the SEC. Use sec_ftd_search_securities for issuer-name searches.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds genuine extra context: the 'hosted hot window' scope constraint, the enumerated return payload (settlement date, quantity, issuer label, price field, source file, snapshot hash, provenance), and an interpretation disclaimer about long vs short sales. That is real value beyond the annotations, though no rate-limit or freshness caveats are given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero waste: capability and scope first, payload enumeration second, usage examples and disclaimer last. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description compensates by enumerating the returned fields, and the input schema is fully described. The scope ('hosted hot window') is noted, though finer detail on the window's boundaries or error behavior is absent — a minor gap for a single-record lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema, including the as_of format and the ticker pattern. The description only restates 'one exact ticker' and 'optionally as of a date', adding no syntax or constraints beyond what the schema delivers — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Return the latest published official SEC fails-to-deliver balance for one exact ticker'), with 'latest' and 'one exact ticker' distinguishing it from sec_ftd_history, sec_ftd_top, and sec_ftd_search_securities. An agent can tell what it does and how it differs from siblings 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides two concrete invocation examples ('latest reported FTD balance for GME', 'most recent AMC fail balance by June 30?') that show the intended use case clearly. It does not, however, explicitly state when NOT to use it or name the alternative sibling (sec_ftd_search_securities appears only in the schema, not the description).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_ftd_search_securitiesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matches. Default 20.
queryYesTicker fragment or issuer-name phrase.
offsetNoMatches to skip for pagination. Default 0.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: the corpus is a 'bounded, self-hosted mirror', it enumerates what is returned, and it discloses a real limitation ('does not expose licensed CUSIP identifiers').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then return fields, then use cases and a limitation. The return-field enumeration is long but earns its place given the absence of an output schema; no sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates return contents (symbols, names, coverage, observation counts, max balance, pagination, snapshot hash, provenance), which an agent would otherwise lack. Combined with the CUSIP limitation, it covers what is needed for correct invocation, though it does not clarify pagination semantics in depth.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents query, limit, offset, and response_format, giving a baseline of 3. The description only loosely references pagination and returns; it adds no syntax, format, or constraint detail beyond what the schema supplies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (ticker symbols and issuer names) within a clearly scoped corpus (SEC fails-to-deliver files in a bounded self-hosted mirror). The 'resolve a symbol before a lookup' clause hints at its position relative to lookup-style siblings, but no sibling tool is named explicitly, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides three concrete use-case examples ('find the FTD ticker for GameStop', 'which SEC fail records mention Tesla?', 'resolve a symbol before a lookup') that give an agent clear trigger conditions. There are no explicit exclusions or named alternative tools, so it is context-rich but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_ftd_topA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum ranked symbols. Default 20.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
settlement_dateNoSettlement date in YYYY-MM-DD format, within the hosted hot window.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/openWorld/non-destructive, so the bar is lower; the description still adds real context — it defaults to the latest date in the hosted snapshot, and it enumerates what is returned (exact quantities, issuer labels, SEC price fields, symbol count, provenance). It also pre-empts a common misinterpretation of FTD data. It does not mention rate limits or the size of the hosted window.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action and scope, then examples, then the disambiguating negative. Every sentence carries information an agent needs; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the returned fields, and annotations carry the safety profile. The only gap is that it says nothing about ranking criteria or how the default limit affects the result set, which is minor given the schema documents limit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds meaning beyond the schema by explaining that settlement_date defaults to the latest date in the hosted snapshot, clarifying the otherwise vague 'hosted hot window' wording. The limit and response_format parameters are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (rank) plus a precisely scoped resource (largest ticker-level aggregate fails-to-deliver balances published by the SEC for one settlement date). An agent can distinguish it from sec_ftd_latest, sec_ftd_history, sec_ftd_compare, and sec_ftd_search_securities from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit example phrasings ('largest SEC fail balances today', 'top FTD securities on 2026-08-14') and a use case (market-structure screen), plus a clear exclusion: 'not a misconduct list or short-squeeze signal.' It stops short of naming the sibling tools an agent should use instead for history or comparison, so 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.

security_exposureA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
vendorNoOptional vendor to narrow the NVD CPE match (e.g. 'apache', 'openbsd').
productYesProduct or package name to assess (e.g. 'log4j', 'openssl', 'struts').
versionNoOptional version string (informational; shown in the report).
max_cvesNoMax CVEs to pull from NVD for analysis (default 40).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent/openWorld annotations: it documents the fan-out behavior, the operational constraint ('Exactly one NVD call per invocation'), the graceful empty case ('No matches returns a friendly 0-exposure result'), per-source unavailability handling, and the KEV-present->high rollup logic. This is rich behavioral disclosure an agent cannot get 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, and despite its length every sentence carries distinct information (sources, return fields, edge cases, scope). It is dense and somewhat list-heavy, which slightly hurts readability but not waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully compensates by enumerating the returned fields (total CVEs, severity-band counts, KEV membership, highest EPSS, critical CVEs, top CWE types, exposure rollup, evidence list) and edge-case behavior. An agent has everything needed to call and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents vendor, product, version, and max_cves. The description adds only marginal semantics (vendor+product narrows NVD CPE match; keyword fallback), leaving the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('one-call known-vulnerability exposure for a vendor/product/package') and enumerates exactly which sources it fans out to (NVD, CISA KEV, EPSS, MITRE CWE). This clearly differentiates it from the single-source siblings cve_lookup, cve_search_by_vendor, kev_status_check, and epss_score, which it aggregates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit scope exclusions ('Package-registry maintenance/staleness signals are out of scope', routing away from npm_package/pypi_package/cargo_crate) and a framing note ('INFORMATIONAL security research, not advice'). However it never explicitly states the condition under which an agent should prefer this aggregate over the individual cve_* / kev_status_check / epss_score tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shipper_receiver_counterparty_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional 2-letter state to disambiguate either party.
formatNoReport format. Defaults to markdown.
shipperNoShipper legal or trading name.
receiverNoReceiver legal or trading name.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use 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_listA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_statusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYesCatalog source id, for example cisa-kev, leie, fda-orange-book, ntsb-aviation, or cfpb-complaints.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. Beyond that, the description adds real value: it discloses that the manifest is 'immutable' (stable across calls) and enumerates the returned evidence fields (URL, retrieval time, rights class, byte counts, SHA-256, record counts, chunk vs single-object storage). It does not cover failure behavior for an unknown source_id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the verb and resource, then the returned payload, then the disambiguating scope note. No filler and every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description enumerates precisely what the returned manifest contains, so the agent knows what to expect. With annotations covering the safety profile and full schema coverage on the single parameter, nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single source_id parameter is already well documented with format and examples, so the baseline is 3. The description only adds the constraint that the source is self-hosted LiveDataLink, which is marginal extra detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return') and resource ('the current immutable ingestion manifest') scoped to 'one self-hosted LiveDataLink source', which cleanly distinguishes it from the sibling source_snapshot_list (plural) and from raw-data export tools. The closing clause 'This is provenance/status, not a raw-data export' nails the boundary of what the tool is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context for when to reach for it (per-source provenance/status rather than raw data), and the explicit exclusion of raw-data export helps route the agent. It does not, however, explicitly name source_snapshot_list as the alternative to use when the agent needs the full catalog, leaving that 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.

spending_award_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
award_idYesGenerated award id from spending_search_awards.

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup tool, 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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_summaryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoTop awards to list (default 5, max 25).
categoryNoAward category: 'contracts' (default), 'grants', 'loans', or 'other'.
recipientYesRecipient company/org name.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the federal scope and the aggregation behavior (totals + top N, contracts as default category), which is useful, but says nothing about result format, ordering, or how totals are computed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no filler; the deliverable (totals and top awards) comes first and the scope details follow. Slightly dense but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the work of naming the return content (total dollars, top awards) and the default category. An agent has enough to invoke it correctly; only ordering/formatting of results remains unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented, and the description merely restates the default category value that the schema already specifies. Baseline 3 applies since the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (summarize) plus a precise resource (a company's federal awards), and enumerates the output content: total dollars and top awards, scoped by recipient name and category. An agent can distinguish this from the sibling spending_search_awards (raw search) and spending_award_details (single award) 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a use case ("due diligence", "see who the government pays") but never states when to prefer this over its close siblings spending_search_awards or spending_award_details, nor any exclusions or prerequisites. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spending_search_awardsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 10, max 50).
agencyNoAwarding agency name, e.g. 'Department of Defense'.
keywordNoFree-text keyword across the award.
categoryNoAward category: 'contracts' (default), 'grants', 'loans', or 'other'.
recipientNoRecipient company/org name, e.g. 'Lockheed Martin'.
min_amountNoMinimum award amount in USD.
fiscal_yearNoFederal fiscal year, e.g. 2024.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds genuine context beyond them: the upstream source (USAspending.gov), the sort order (by amount), and the returned field set, which is valuable since 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and scope, then the return contract. No filler or redundancy; every clause carries information the caller needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, open-world search with full schema coverage and no output schema, the definition supplies what is missing: data source, sorted-by-amount behavior, and the exact result fields. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters with examples. The description restates the filterable fields (recipient, keyword, agency, fiscal year, minimum amount) without adding syntax, defaults, or combination semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (federal awards: contracts, grants, loans), names the data source (USAspending.gov) and the filterable dimensions, so the agent knows exactly what is retrieved. It is clearly a search tool distinct from spending_award_details, but it never names or contrasts with that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Filter options imply when the tool is useful (by recipient, keyword, agency), but there is no explicit when-to-use guidance, no exclusions, and no pointer to spending_award_details for single-award lookups or spending_recipient_summary for aggregates. Usage 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.

stock_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesTicker symbols, 2-5 stocks. Accept either CSV string ("AAPL,MSFT,GOOGL") or array (["AAPL","MSFT","GOOGL"]).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime range (default: "1mo")
symbolYesStock ticker symbol (e.g., "AAPL")
intervalNoData interval (default: "1d")

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('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.

Usage Guidelines4/5

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_quoteA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., "AAPL", "MSFT", "TSLA")

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the 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.

Conciseness4/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, read-only tool 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_batchA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesTicker symbols, max 10. Accept either CSV string ("AAPL,MSFT,GOOGL") or array (["AAPL","MSFT","GOOGL"]).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, and 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_timesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude in decimal degrees (positive north).
lonYesLongitude in decimal degrees (negative west).
dateNoDate, 'YYYY-MM-DD'. Defaults to today (UTC).
tz_offsetNoHours from UTC applied to output times, e.g. -7 for US Pacific Daylight Time. Default 0 (UTC).

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('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.

Usage Guidelines4/5

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_scorecardA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional 2-letter state to disambiguate the EPA facility search (e.g. 'PA').
companyYesCompany / supplier name to score (e.g. 'US Steel', 'Tyson Foods').

TDQS

A4.3/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_levelsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesUS ticker (e.g. 'TSLA').
lookback_daysNoTrailing daily bars to derive levels from (default 180).

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive and open-world traits, so the description's job is to add context. It does so by disclosing the derivation method and, importantly, flagging that the output is HEURISTIC rather than authoritative — a meaningful reliability signal. It stops short of describing rate limits, pagination, or output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core capability and the method, with the disclaimer trailing. Efficient and free of padding, though the 'not investment advice' clause is somewhat boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully previews what comes back (levels plus latest close) and characterizes reliability. For a two-parameter read-only tool this is nearly complete; only return format or ordering details are missing, which is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (symbol, lookback_days with its 20-500 range and default 180) are fully documented in the schema. The description's phrase 'recent daily pivots' loosely gestures at the lookback window but adds no syntax or format detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return key support/resistance price levels for a US ticker') and even discloses the derivation method (swing highs/lows, round-number levels) plus the inclusion of the latest close. It is clearly distinct from siblings like stock_quote or stock_history, though it never names an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is the disclaimer 'for research, not investment advice,' which is a liability caveat rather than usage direction. It never says when to reach for this tool versus candlestick_signals, bounce_scanner, or stock_history, leaving selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

talent_market_briefA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
metroNoOptional 5-digit CBSA/metro code (e.g. '12420' Austin, TX). OEWS metro coverage varies; an unmatched metro is noted, not fatal.
stateNoOptional 2-letter state code or 2-digit FIPS (e.g. 'TX', '48'). Omit for a national read.
soc_codeNoExplicit 6-digit SOC occupation code, with or without a dash (e.g. '29-1141' registered nurses, '15-1252' software developers). Overrides 'occupation'.
occupationYesFree-text occupation to map to a SOC code (e.g. 'registered nurses', 'software developers', 'electricians'). Provide this or 'soc_code'.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_radarA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpvNoOptional 8-digit CPV code; TED's hierarchy may include child codes.
pageNo1-based result page; default 1.
limitNoMaximum notices; default 20.
signalYesOpportunity signal to retrieve.
countryNoOptional ISO alpha-3 buyer country, e.g. DEU, FRA, NLD.
end_dateNoYYYY-MM-DD upper bound. Defaults to 180 days after start_date.
start_dateNoYYYY-MM-DD. For renewal, contract-end lower bound; for zero_bid, notice publication lower bound. Defaults to today (renewal) or 180 days ago.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds interpretive scope beyond that – it explicitly disclaims that results do not predict awards or allege fraud – which usefully bounds how an agent should frame output. It does not mention rate limits or result size caps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose and the two signals front-loaded, filters second, boundary disclaimer last. Every sentence earns its place with no restatement of the name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter read-only query with full schema coverage and no output schema, the description covers purpose, signal semantics, filters, and scope caveats. It omits any note on the paginated return shape, but the page/limit parameters are self-documenting in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description goes beyond the terse schema text by giving semantic meaning to the signal enum values (renewal = reported contract end dates in window; zero_bid = awards with zero received submissions). The country/CPV filters are also called out at the semantic level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find) and resource (traceable EU procurement opportunities from official TED notices), then pins down the two exact usage modes: renewal (contracts with reported end dates in a window) and zero_bid (awards reporting zero submissions). An agent can distinguish this signal-finder from a plain notice search 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly explains what each of the two signals means and the condition that selects it, plus which filters apply (buyer country, CPV). It does not name or route against the sibling ted_search_notices, so an agent must infer the boundary between a signal radar and a general notice search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ted_search_noticesB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based result page; default 1.
limitNoMaximum notices; default 20 and maximum 50.
queryYesTED Expert Search query, e.g. 'publication-date >= 20260901 AND buyer-country = DEU'. Maximum 500 characters.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so 'Anonymous and read-only' largely restates structured data. The description does add useful behavior beyond the annotations by enumerating what is returned ('latest notice versions', 'source caveats'), but omits rate limits, error behavior, and freshness windows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with the core purpose front-loaded; the return-field list is long but informative rather than filler. Slight trimming possible but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the burden of describing returns (titles, buyers, countries, CPV codes, URLs, pagination metadata, caveats) and covers the safety profile via annotations. It is nearly complete for a search tool, lacking only query-syntax fallback behavior and result-freshness detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents page, limit, and the expert query syntax with an example. The description's 'bounded expert query' and 'pagination metadata' add only marginal meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search the official EU Tenders Electronic Daily (TED) corpus') and names the query style. It is clear what the tool does, but it never differentiates itself from the sibling ted_opportunity_radar, which also covers EU tender data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'bounded expert query' hints at the intended use case, but there is no explicit when-to-use, no when-not-to-use, and no routing to the obvious alternative (ted_opportunity_radar or load_tender_fraud_shield). The agent must infer which TED tool to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tide_predictionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees. Used with lon to pick the nearest station when no station id is given.
lonNoLongitude in decimal degrees (negative west).
datumNoTidal datum: MLLW, MSL, MHW, etc. Default MLLW.
unitsNo'english' (feet) or 'metric' (meters). Default english.
stationNoNOAA CO-OPS station id, e.g. '9414290'. Optional if lat and lon are given.
end_dateNoEnd date (inclusive), 'YYYY-MM-DD'. Defaults to begin_date + 1 day.
begin_dateNoStart date (inclusive), 'YYYY-MM-DD'. Defaults to today.

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_auctionsA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return.
security_typeNoFilter by security type: 'Bill', 'Note', 'Bond', 'TIPS', 'FRN'.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the dataset's field inventory and recency scope, but discloses nothing about ordering, default row count, or data freshness beyond 'recent'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler; the data scope is front-loaded and the filter option follows. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, enumerating returned columns is valuable and largely completes the picture for a read-only list tool. Minor gaps remain: default ordering, default row count, and how far back 'recent' extends.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (limit, security_type) are documented there, including the same enum-like values the description repeats. The description adds no syntax or default behavior 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Recent US Treasury securities auction results') and enumerates the returned fields (term, CUSIP, dates, high yield, bid-to-cover). This clearly separates it from siblings like treasury_interest_rates, treasury_debt, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Says filtering by security type is optional but gives no when-to-use context, no relationship to alternative fixed-income tools, and no hint about what 'recent' means or how to broaden/narrow the query.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_cash_balanceA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the bar is lower. The description adds genuine value beyond them by disclosing the data's provenance (Daily Treasury Statement), its daily cadence, and the units of the values (millions of dollars) — all traits an agent cannot get from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly constructed sentence that front-loads the resource and appends provenance and units as clarifying parentheticals. Every clause earns its place; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, single-parameter read-only tool with no output schema, the description covers what the data is, where it comes from, and its units. It only omits how results are shaped or paginated, which is a minor gap given the annotations and simple schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter (`limit`) and the schema description coverage is 100%, so the schema already documents it fully. The description adds nothing about pagination, row counts, or the limit parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (the US Treasury's daily operating cash balance / Treasury General Account) and its source, so an agent can immediately tell it apart from other treasury_* tools like auctions, debt, or rates. It stops short of explicitly naming sibling tools, but the resource is distinctive enough that no differentiation is needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: explaining that this is the government's checking account at the Fed tells an agent what the data means but not when to prefer it over treasury_debt or treasury_interest_rates. There are no exclusions, prerequisites, or alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_debtA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return.
end_dateNoLatest record date (YYYY-MM-DD).
start_dateNoEarliest record date (YYYY-MM-DD).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds genuinely new context by noting the data is keyless and officially sourced from the Treasury, which tells the agent no credentials or setup are needed and the source is authoritative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with zero filler. The core identity and returned shape are front-loaded before the supporting provenance note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter read-only tool with no output schema, the description usefully describes what comes back (recent figure plus history, with the two debt components split out). It does not clarify default behavior when no date range is supplied, but that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so limit, start_date, and end_date are fully documented in the schema itself. The description adds no format, default, or interaction detail (e.g., what happens if no dates are given), so it sits at the baseline for a fully-covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific series ('Debt to the Penny'), the issuing body, and the exact content returned (most recent figure plus history, split into public debt and intragovernmental holdings). An agent can distinguish this from treasury_auctions, treasury_cash_balance, or treasury_interest_rates 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool's use (US total debt data, recent plus historical), but offers no explicit when-to-use framing, no mention of date-range scoping intent, and no pointer to alternative treasury tools for related questions. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_exchange_ratesA
Read-onlyIdempotent
Inspect

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return.
queryNoCountry or currency name to match, e.g. 'Canada', 'Euro Zone', 'Japan'.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description only needs to add context. It does: the data is authoritative government reporting rates and is 'Published quarterly', which tells the agent how fresh results are and that this is not real-time market data. It does not describe pagination or default behavior when no filter is applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences that lead with the source and nature of the data before the optional filter instruction. The example values slightly duplicate the schema's own examples, but nothing is padded or wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-optional-parameter lookup with no output schema, the description supplies the essentials: what the data is, its official origin, its quarterly cadence, and how to filter. Missing only edge behavior such as the default result set when no query is given and how limit interacts with large result sets.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both the query matcher and the limit, including its min/max. The description repeats the query examples ('Canada', 'Euro', 'Yen') that the schema already provides and says nothing about the limit parameter, so it adds little beyond structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and its provenance: 'Official US Treasury Reporting Rates of Exchange (the rates US government agencies use to convert foreign currency balances to dollars).' It clearly distinguishes this data from market/spot FX rates available via sibling tools like fred_* or worldbank_*, though it never names an alternative directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a filtering hint ('Provide a country or currency to filter, e.g. Canada, Euro, Yen') but no explicit when-to-use vs. when-not, no statement of what happens when no query is supplied, and no routing to alternative rate sources. Usage 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.

treasury_interest_ratesB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return.
securityNoFilter by security type/description, e.g. 'Treasury Notes', 'Bills', 'TIPS'.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful dataset-level context (marketable vs non-marketable, monthly granularity) but says nothing about row counts, default limit behavior, or data coverage range.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; the resource is front-loaded and the optional filter is stated last. Efficient, though the parenthetical example list is somewhat redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, zero-required-parameter read tool with full schema coverage and annotations covering safety, the description adequately conveys what data is returned (monthly average rates by security type). No output schema exists, but the description implies the shape well enough; only the default row count / pagination behavior is unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, including the same security examples ('Treasury Notes', 'Bills', 'TIPS'). The description adds no syntax or semantic detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: average interest rates paid on marketable and non-marketable Treasury securities, broken out by month. It enumerates example security types, which clearly separates it from siblings like treasury_auctions or treasury_exchange_rates. It does not explicitly name a sibling to distinguish itself, so no top mark.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage cue is 'Optionally filter by security description', which restates the parameter. There is no when-to-use guidance, no mention of when to prefer this over related Treasury tools, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_tic_compare_holdersA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
holdersYesTwo to eight distinct exact holder ids or unambiguous published labels.
end_monthYesExact calendar month in YYYY-MM format.
start_monthYesExact calendar month in YYYY-MM format.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations covering safety (readOnly, idempotent, non-destructive, openWorld), the description adds substantive behavior beyond them: id resolution, endpoint-observation requirements, ranking mechanics, and returned provenance/source-line references. It also discloses the key caveat that pre-2011 benchmark-break comparisons are published estimates, not beneficial-owner flows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core question, then adds constraints, output shape, and caveats in dense but well-ordered sentences. Every sentence carries domain information, though the return-value enumeration in sentence three is long and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating the return payload (endpoint values, absolute/percent change, source line references, provenance, custodial/methodology caveats). Combined with id-resolution and endpoint requirements, an agent has everything needed to call and interpret the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with minItems/maxItems, the YYYY-MM pattern, and enum for response_format all already documented. The description's mention of 'two to eight holders' and 'two exact months' merely restates those constraints rather than adding syntax or format meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource – comparing Treasury holdings changes across two to eight MFH holders between two exact months – and specifies the ranking basis (absolute USD-million change). An agent can distinguish this from siblings like treasury_tic_rank_holders or treasury_tic_holder_history 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear preconditions for use: two-to-eight holders, two exact months, and the requirement that primary observations exist at both endpoints. It never names the adjacent sibling tools (find_holders, rank_holders, holder_history) or states when to prefer them, so no explicit alternative routing exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_tic_find_holdersA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matches. Default 20.
queryNoOptional case-insensitive fragment of a holder label or id.
offsetNoMatches to skip. Default 0.
entity_typeNoOptional exact normalized row class.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered; the description earns credit by disclosing the return payload (primary-series coverage, latest value, pagination, immutable source hashes, run id, caveats) in the absence of an output schema. It also warns of incomplete universe coverage, a behavioral caveat 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four compact sentences, front-loaded with the core identification and followed by scope, returns, and usage routing. It is dense but each sentence carries distinct information; the framing as a question is slightly less direct than a declarative verb-first statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only discovery tool with no output schema, the description adequately covers what it searches, what it returns, and its relationship to sibling tools. The only residual gap is that the 'not the complete universe' limitation is stated without explaining what is excluded or how to enumerate the remainder.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents limit, query, offset, entity_type, and response_format. The description mentions the row classes that map to the entity_type enum but adds no syntax, default, or filter-behavior detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb/resource: it searches publisher-listed holder names and stable ids in the Treasury International Capital Major Foreign Holders archive. It further enumerates the row classes it covers (holders, historical aggregates, totals, residuals, foreign-official memorandum rows), which pins down scope precisely and separates it from the history/comparison siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: 'Use this before history or comparison when a label is uncertain,' which directs the agent to call this discovery tool ahead of the history/comparison siblings. It also flags a scope limit ('this is not the complete TIC country universe') but does not name the specific alternative tools, so it stops short of the fully explicit when/when-not/alternatives pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_tic_holder_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum observations. Default 24.
holderYesExact MFH holder id or unambiguous published label. Use treasury_tic_find_holders first if unsure.
offsetNoObservations to skip. Default 0.
end_monthNoExact calendar month in YYYY-MM format.
start_monthNoExact calendar month in YYYY-MM format.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
include_comparison_seriesNoInclude separately preserved prior-series comparison values at historical breaks. Default false.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe read profile (readOnly, idempotent, non-destructive, openWorld), so credit goes to what the description adds: units in integer USD millions, a fixed (non-arbitrary) monthly window, snapshot vintage, hashes, methodology caveats, and the primary-vs-comparison default. The pagination bounds are conveyed by the schema rather than the description, keeping this just 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A question front-loads the purpose and the second sentence packs return shape plus the one conditional parameter. It is dense but every clause carries information; only slight compression would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so competently (units, month, series identity, line references, vintage, hashes, caveats). Routing to sibling tools and explicit alternatives remain the only meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic value beyond the schema: holdings are integer USD millions, the window is fixed monthly, and the comparison series are 'duplicate benchmark-break comparison columns' used only for historical breaks, sharpening the schema's vaguer wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific verb+resource with scope: one holder's U.S. Treasury holdings over a monthly window. That is clear, but the description never names the sibling tools (compare_holders, rank_holders, official_share) it must be distinguished from, so the agent must infer the difference from the name and schema alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage guidance is limited to parameter-level routing: 'set include_comparison_series only to inspect duplicate benchmark-break comparison columns.' There is no when-to-use-this-vs-alternatives guidance; the useful pointer to treasury_tic_find_holders lives in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_tic_official_shareA
Read-onlyIdempotent
Inspect

What share of total foreign Treasury holdings was reported for foreign official institutions over a fixed monthly window? Joins the MFH Foreign Official memo line to Grand Total, returning bounded/paginated USD-million values and a two-decimal share for each month, plus run id, exact official source hashes, vintage, and methodology caveats. This is a custodial aggregate, not a country allocation or investment signal.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum monthly points. Default 24.
offsetNoMonths to skip. Default 0.
end_monthNoExact calendar month in YYYY-MM format.
start_monthNoExact calendar month in YYYY-MM format.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses paginated bounded USD-million output, a two-decimal share per month, and returned metadata (run id, exact official source hashes, vintage, methodology caveats). That is real behavioral and lineage context for a query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the core question before mechanics and caveats. Every sentence earns its place, though domain jargon ('MFH Foreign Official memo line', 'vintage') assumes familiarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the return-value burden by listing returned fields (values, share, run id, hashes, vintage, caveats), and annotations cover the safety profile. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (limit, offset, start/end month, response_format) are already documented. The description adds only framing ('bounded/paginated', 'fixed monthly window', 'USD-million') without new syntax or constraint detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a precise verb+resource+metric ('what share of total foreign Treasury holdings... for foreign official institutions over a fixed monthly window') and names the exact join (MFH Foreign Official memo line to Grand Total). It also explicitly distinguishes itself from sibling holder/rank tools by stating 'This is a custodial aggregate, not a country allocation or investment signal.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a negative scope statement ('not a country allocation or investment signal') that implicitly steers away from holder-level siblings, but it never names an alternative tool or states the concrete condition that selects this one over treasury_tic_find_holders / treasury_tic_compare_holders. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury_tic_rank_holdersA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum ranked rows. Default 20.
monthNoExact calendar month in YYYY-MM format.
offsetNoRanked rows to skip. Default 0.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.
include_historical_aggregatesNoInclude discontinued publisher aggregates such as Oil Exporters in older rankings. Default false.

TDQS

A4.4/5.0
Behavior4/5

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 real operational context: the custodial-attribution caveat, snapshot-vintage fallback, bounded pagination, and inclusion of exact source lines and hashes. It does not state rate limits or failure modes, but for a read-only ranking tool this is substantial added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Opens with the core question, then layers scope, exclusions, and return characteristics in a tight sequence with no filler. It is denser than average but every clause carries information; only the enumeration of return fields is slightly list-like.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return burden and does so: pagination bounds, USD millions units, exact source lines, hashes, vintage, and the attribution caveat. Combined with full schema coverage and clear annotations, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema for two parameters: include_historical_aggregates is explained as discontinued publisher aggregates (e.g., Oil Exporters) in older rankings, and the month-omitted fallback to the hosted snapshot vintage is not in the schema. Limit/offset/response_format behavior is left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (ranks) and resource (named major foreign Treasury holders in a specified month) and immediately scopes what is ranked and what is excluded. An agent can distinguish it from treasury_tic_compare_holders, treasury_tic_find_holders, treasury_tic_holder_history, and treasury_tic_official_share 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear inclusion/exclusion rules (Grand Total, All Other, foreign-official memo rows excluded; historical aggregates excluded unless requested) and states the default behavior when month is omitted. It does not explicitly name which sibling to use instead for aggregate or official-flow questions, so it stops short of a full when/when-not routing statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trials_detailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesClinicalTrials.gov NCT id, e.g. 'NCT02562313'.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only lookup tool, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context clear: use this tool when you have a 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.

tx_wells_nearA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the center point (WGS84), e.g. 31.9974.
lonYesLongitude of the center point (WGS84), e.g. -102.0779.
limitNoMax wells to return (default 25, max 100).
radius_kmNoSearch radius in kilometers (default 1.5, max 10).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real context: keyless public record (no auth), a concrete enumeration of return fields and type/status values, and a breakdown-by-type note. With no output schema, this return-shape disclosure is genuinely useful; it just doesn't cover pagination or truncation behavior near the limit cap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and resource, then layers prerequisite, scope, and exclusions in tight clauses with zero filler. Every sentence (data source, return fields, geocode routing, exclusions) carries information an agent needs to call the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so fully by naming the fields and type/status values plus the by-type breakdown. Combined with auth (keyless), geography, a prerequisite step, and explicit limitations, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so lat, lon, limit, and radius_km are already fully documented with types, bounds, and examples. The description restates 'longitude/latitude and a radius' but adds no syntax, units, or ordering detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find) plus a precisely scoped resource (Texas oil & gas wells near a location) and the underlying data source (Texas RRC public well map). The geographic limitation (Texas, Permian/Eagle Ford basins) distinguishes it from the sibling ok_wells_search for Oklahoma without the agent opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite and routing instruction: 'Use geocode_address first to turn a street address into coordinates.' It also clarifies the data scope boundaries (location + type only, not operator/production/permit dates). It never states when NOT to use it or names a competing alternative, 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.

urlhaus_lookup_hostA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesIPv4 address, hostname, or domain name; no scheme, port, or path.
limitNoMaximum records to return (default 20, max 50).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, open-world, non-destructive. The description adds genuine context beyond them: the host is sent only to URLhaus and LiveDataLink never connects to it, disclosing third-party data egress and that this is a passive lookup rather than active scanning. It also flags the result as bounded, aligning with the limit cap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and resource, then the privacy/behavioral note. No filler and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description states the return shape at a high level (a bounded list of associated malware URLs) and the annotations cover the safety profile. It is complete enough to invoke correctly, with only the exact record fields left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters (host and limit) are fully documented in the schema, including format constraints and the default/max for limit. The description reinforces the accepted host forms and the bounded result size but adds no syntax or 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (look up) and resource (IPv4/hostname/domain in URLhaus) and says what it returns (a bounded list of associated malware URLs). The accepted input types implicitly separate it from sibling lookups keyed on URL, payload hash, or tag, though no sibling is named directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the accepted input types and the URLhaus context, but there is no explicit when-to-use or when-not-to-use guidance and no routing to alternatives such as urlhaus_lookup_url or urlhaus_lookup_payload. An agent can infer the fit but must do the comparison itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urlhaus_lookup_payloadA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesExactly 32 hexadecimal MD5 characters or 64 hexadecimal SHA-256 characters.
limitNoMaximum records to return (default 20, max 50).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, non-destructive and openWorld, so the bar is lower. The description adds real value by noting the result set is bounded and, notably, that the tool does not download the payload - a meaningful boundary for a threat-intel lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, zero waste. The core purpose is front-loaded, and the disambiguating non-download caveat is placed second where it belongs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description gives the return shape at a high level ('bounded set of associated URLs') and annotations carry the safety profile, so an agent has enough to call it correctly. Only minor gaps remain (pagination/empty-result behavior).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so hash format and the limit default/max are fully documented in the schema. The description restates the hash types but adds no syntax or semantics beyond the schema, making 3 the correct baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (look up) and resource (URLhaus metadata) tied to a precise input type (MD5/SHA-256 malware-payload hash), which differentiates it from lookup_host/lookup_url siblings. It stops short of explicitly naming alternatives, but the hash-keyed scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the input type: this tool is for when you have a payload hash. However, it never states when to prefer it over sibling tools like urlhaus_lookup_signature or urlhaus_recent_payloads, or any exclusions. Guidance is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urlhaus_lookup_signatureB
Read-onlyIdempotent
Inspect

Look up a URLhaus malware-family signature and return counts plus a bounded list of associated URL and payload observations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum records to return (default 20, max 50).
signatureYesMalware-family signature, 1-64 safe text characters.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds that results come back as counts plus a bounded list of URL and payload observations, which is modest but real 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler: action, resource, then return shape. It earns its place, though it stops just short of the routing information that would make it maximally useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does give a rough return sketch (counts plus bounded URL/payload observations), which is the main thing it needs to supply. It omits what happens with an unknown or malformed signature and how the "bounded" limit interacts with the returned observations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the schema documents both `signature` (1-64 safe text characters) and `limit` (default 20, max 50) with full constraints. The description adds only the word "bounded," so baseline 3 is appropriate – the schema carries this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ("Look up") plus a precise resource ("URLhaus malware-family signature"), and it even previews the return shape (counts plus URL/payload observations). The word "signature" implicitly separates it from sibling lookups keyed on host/url/tag/payload, but no sibling is named, so differentiation relies on inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never states when to choose this tool over urlhaus_lookup_host, urlhaus_lookup_tag, urlhaus_lookup_url, or urlhaus_lookup_payload, and gives no exclusions or prerequisites. The only usable cue is the word "signature" in the description, which is no more than the name already conveys.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urlhaus_lookup_tagA
Read-onlyIdempotent
Inspect

Look up a URLhaus classification tag and return observation dates plus a bounded list of associated malware URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesURLhaus tag, 1-64 letters, digits, spaces, periods, plus signs, underscores, or hyphens.
limitNoMaximum records to return (default 20, max 50).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description still adds real value by disclosing the return content (observation dates plus a bounded list of malware URLs) in the absence of any output schema, though it does not explain how the bound is applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence that front-loads the action and the resource. Every clause earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only lookup with full schema coverage and complete annotations, the definition supplies what an agent needs to call it correctly, and it compensates for the missing output schema by naming the returned fields. The only gap is the absence of any disambiguation from the other urlhaus lookup tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the tag format/character rules and the limit default (20) and maximum (50) are fully documented in the schema. The description's phrase 'bounded list' gestures at the limit parameter but adds no syntax or default 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Look up a URLhaus classification tag') and previews the return payload (observation dates plus associated malware URLs). It is clear, but it never distinguishes itself from the sibling lookups (urlhaus_lookup_host, urlhaus_lookup_url, urlhaus_lookup_payload, urlhaus_lookup_signature), so an agent must infer the routing from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given. The description never says to reach for this tool when the key you hold is a tag rather than a host, URL, payload hash, or signature, even though four near-identical siblings exist. Usage is only implied by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urlhaus_lookup_urlA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoHTTP(S) URL to query as an indicator, max 2048 characters.
limitNoMaximum records to return (default 20, max 50).
url_idNoNumeric URLhaus record ID.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond them: 'without contacting the reported URL' reassures the agent this lookup is passive, and 'bounded payload summary' signals a size-capped response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the identifier scope front-loaded and the return/safety note second. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully summarizes return contents (status, tags, blacklist metadata, bounded payload summary) and the passive behavior. Annotations cover safety, so the definition is nearly complete, missing only explicit guidance on mutually exclusive url vs url_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so url, url_id and limit are fully documented in the schema. The description's 'URL or numeric URLhaus record ID' phrasing hints that url and url_id are alternate identifiers, but it doesn't clarify that exactly one (not both) must be supplied, so it adds only marginal meaning over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (look up) and resource (URLhaus threat intelligence for a URL or record ID), and the 'exactly one HTTP(S) URL' scoping implicitly separates it from the list-oriented urlhaus_recent_urls and the urlhaus_lookup_host/payload/signature/tag siblings. It never names those siblings, so differentiation is inferable 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'exactly one' implies this is the single-indicator lookup rather than a bulk/recent listing, giving implied usage guidance. But there is no explicit when-to-use or when-not-to-use statement, and no routing to the host/payload/signature/tag alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urlhaus_recent_payloadsA
Read-onlyIdempotent
Inspect

List metadata and cryptographic hashes for payloads recently observed by URLhaus. This tool does not download malware samples.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum records to return (default 20, max 100).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new information by explicitly stating it does not download malware samples, which tells the agent the payload bytes are out of reach and only metadata/hashes come back.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, and the primary capability is front-loaded before the safety caveat. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description does say what comes back at a high level (metadata and cryptographic hashes), which is enough for an agent to understand the return shape. Minor gaps remain around result ordering and whether the list is paginated or capped by the single limit parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one optional parameter with 100% schema description coverage, so the schema fully documents 'limit' including its default and max. The description adds nothing about pagination or ordering, matching the baseline-3 expectation when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List metadata and cryptographic hashes for payloads') with a scope qualifier ('recently observed by URLhaus'). It does not differentiate itself from the sibling urlhaus_recent_urls or urlhaus_lookup_payload, so an agent must infer which one applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no alternatives named, and no indication of when to prefer this over urlhaus_recent_urls or urlhaus_lookup_payload. The only implicit guidance is the word 'recent', which is thin for a family of five sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urlhaus_recent_urlsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum records to return (default 20, max 100).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and open-world, so the safety profile is covered. The description adds genuinely new context beyond them: output is bounded to "metadata and indicators" and the service "never visits the reported URLs" — an important assurance that no malware is fetched or executed. Pagination, ordering and rate limits are still undisclosed, keeping it below 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; the scope-defining clause is front-loaded and the behavioral caveat follows. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-required-parameter read-only listing tool with no output schema, the description covers what is returned (bounded metadata and indicators) and the temporal window. It falls short only on ordering/pagination and the specific indicator fields, which matter slightly more here because there is no output schema to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single `limit` parameter (default 20, max 100), so the schema already carries the semantics. The description adds nothing about the limit or about ordering/capping of the returned window, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("List"), a precise resource ("recent malware-distribution URLs added to URLhaus") and the exact scope ("rolling three-day window"). This is clearly distinguishable from the sibling urlhaus_lookup_* tools (point lookups) and urlhaus_recent_payloads (payloads rather than URLs) 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the rolling three-day window tells an agent this is for fresh, unfiltered threat-intel listings, not for resolving a known URL or host. However, no explicit when-to-use/when-not guidance is given and no alternative (urlhaus_lookup_url, urlhaus_lookup_host, urlhaus_recent_payloads) is named, so the agent must infer the routing itself.

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_yearsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYesCrop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat.
yearsYesTwo to seven distinct crop years.
crop_classNoOptional class. Required for bare 'wheat': winter, durum, or spring (excluding durum).
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds useful behavioral context by disclosing return components (units, source release file, missing-year evidence, provenance, caveats) and a scope boundary (national annual summaries only).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation, then adds return information and usage examples. Every sentence earns its place without redundancy or excessive length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately explains what is returned and includes provenance and missing-year caveats. The schema already covers parameters at 100%, and annotations cover safety, so the agent has enough to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters including crop aliases, year limits, crop_class handling, and response_format. The description reinforces the 2–7 year range and single crop/class constraint but adds no parameter syntax or format 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-resource pair (compare crop years) and constrains it to one USDA NASS crop/class and final national annual summaries. It clearly distinguishes a multi-year comparison tool from sibling search/history/trend tools by defining the comparison scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage examples ('compare 2019 and 2025 corn', '2020 vs 2025 soybean acres and yield') and a scope limitation ('Final national annual summaries only'). It does not explicitly name alternative sibling tools 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.

usda_nass_crop_evidence_packA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYesCrop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat.
as_of_yearNoFour-digit crop year. Hosted snapshot coverage is 2019–2025.
crop_classNoOptional class. Required for bare 'wheat': winter, durum, or spring (excluding durum).
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds real context beyond that: provenance backing, latest/as-of values with prior-year changes and five-year comparisons, and an explicit scope limit that it is not a forecast or trading recommendation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action before examples and scope caveats; every sentence carries information. Slightly dense but 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.

Completeness4/5

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 must describe returns, and it does reasonably well (latest/as-of values, prior-year changes, five-year comparisons, provenance). Combined with full annotation coverage of the safety profile, an agent has enough to call it correctly, though the exact shape of the pack remains loosely specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so crop, crop_class, as_of_year, and response_format are all documented in the schema itself. The description only echoes 'one major crop/class' and the 2019-2025 coverage, adding no syntax or aliasing detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (combine) and resource (hosted final annual USDA NASS national metrics) and names the deliverable (provenance-backed evidence pack). It does not, however, distinguish itself from the sibling usda_nass_crop_history / crop_trend / compare_crop_years tools, so an agent still has to infer why this pack beats a plain history call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete triggering phrasings ('build a corn production evidence pack') and a composition hint ('as an agriculture leg to combine with weather, freight, fuel, or futures data'). It stops short of explicit when-not-to-use guidance or naming a sibling alternative for simpler single-metric lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usda_nass_crop_historyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYesCrop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat.
limitNoMaximum crop years. Default 20.
metricYesAnnual statistic to return.
offsetNoCrop years to skip. Default 0.
end_yearNoFour-digit crop year. Hosted snapshot coverage is 2019–2025.
crop_classNoOptional class. Required for bare 'wheat': winter, durum, or spring (excluding durum).
start_yearNoFour-digit crop year. Hosted snapshot coverage is 2019–2025.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, so the bar is lower; the description adds real value by disclosing the 2019–2025 coverage bound, the self-hosted 2020–2026 release provenance, national-only granularity, and the returned artifacts (evidence hash, attribution, pagination). It stops short of describing pagination semantics or the failure mode when a year falls outside coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope, then examples, then the exclusion clause. The enumerated return fields add length but each item earns its place given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields, and it declares the year-coverage ceiling that the schema merely echoes. Missing only error/edge behavior, which is minor for a bounded read-only history tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and two enums are documented, so the schema already does the heavy lifting for crop, metric, crop_class, and year bounds. The description reinforces year coverage and crop-class relevance but adds no syntax or defaulting 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Return bounded final annual USDA NASS national history for one major-crop metric', and pins the scope to national, final (non-forecast) annual summaries. The 'not a forecast or state/county result' clause cleanly separates it from siblings like usda_nass_crop_trend or 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides three concrete example queries and gives explicit exclusions (not a forecast, not state/county). It does not name a specific sibling to use instead for forecasts or sub-national data, 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.

usda_nass_crop_trendA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYesCrop name or supported alias: corn, soybeans, cotton, wheat, winter wheat, durum wheat, or spring wheat.
metricYesAnnual statistic to return.
as_of_yearNoFour-digit crop year. Hosted snapshot coverage is 2019–2025.
crop_classNoOptional class. Required for bare 'wheat': winter, durum, or spring (excluding durum).
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A3.8/5.0
Behavior4/5

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 genuine value beyond that: it enumerates the returned components (observations, absolute/percent changes, CAGR, units, evidence hash, caveats) and discloses the as-of-year behavior of never mixing future releases into a historical result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the core purpose, followed by return contents, example queries, and a caveat. Every sentence carries information with no obvious padding, though the example list is slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description appropriately describes what is returned and the semantics of the as-of parameter. It is complete enough for an agent to call correctly, though it omits explicit sibling routing that would make it fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the semantic effect of the optional as-of year ('never mixes future releases into a historical result'), adding meaning that the schema field text does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (calculate) and resource (prior-year and exact five-year changes for one final annual USDA NASS national crop series), which is clear and distinctive. It does not explicitly differentiate itself from siblings like usda_nass_crop_history or usda_nass_compare_crop_years, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete example queries ('how has corn yield changed?', 'five-year soybean production trend'), which implies when to use it. However, it never states when NOT to use it or names the alternatives (crop_history, compare_crop_years, evidence_pack), leaving routing to inference.

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_seriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum series. Default 20.
queryNoOptional crop, class, metric, unit, or description words.
offsetNoSeries to skip. Default 0.
response_formatNoHuman-readable markdown or machine-readable JSON. Default markdown.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so that burden is lifted. The description still adds useful behavioral context beyond the annotations: the 2019–2025 coverage window, the self-hosted/canonical nature of the data, and the evidence hash and attribution returned. It does not mention rate limits or result-ordering behavior, keeping it just 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with no filler, front-loading the purpose before the usage examples and the scope caveat. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description takes on return-value disclosure and does so reasonably (canonical crop/class/metric combinations, units, coverage, pagination, evidence hash, attribution). Combined with the scope exclusion and resolver role, an agent has what it needs; only the ordering/shape of paged results is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters (limit, query, offset, response_format) with types, ranges, defaults, and the enum. The description adds only an implicit hint of query content via the 'durum wheat yield' example, which is the correct baseline-3 profile when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and a precisely scoped resource (self-hosted official USDA NASS Crop Production Annual Summary series). It explicitly distinguishes its role from siblings by framing itself as the series resolver used before history/trend calls, so an agent can separate it from usda_nass_crop_history and usda_nass_crop_trend.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete triggering questions ('what NASS crop series are hosted?', 'find durum wheat yield') and an explicit alternative workflow ('resolve a series before history/trend calls'). It also states when NOT to use it via a scope exclusion: 'final national annual summaries, not the full Quick Stats catalog.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usgs_earthquake_detailA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesUSGS event ID (e.g. 'us7000m5dt'). Get from feed or search results.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only lookup, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_feedA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime window (default 'day')
min_magNoMinimum magnitude threshold (default '2.5')

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only 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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as '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.

Usage Guidelines3/5

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_water_realtimeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sitesNoComma-separated USGS site codes (e.g. '01646500')
state_cdNoTwo-letter state code; returns all active sites in the state
parameter_cdNoUSGS parameter code (default '00060' streamflow). Common: 00060=streamflow, 00065=gage height, 00010=water temp, 00400=pH

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines4/5

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_recallsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
makeYesVehicle make (e.g., 'Toyota', 'Ford')
yearYesModel year (e.g., 2020)
modelYesVehicle model (e.g., 'Camry', 'F-150')

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_decodeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
vinYes17-character Vehicle Identification Number (VIN)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_historyB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum transitions; default 50.
license_numberYesExact Washington contractor license number.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description goes beyond that by disclosing the substance of the result (before/after values, observation time, source-as-of date, raw snapshot hash), signaling an audit-grade historical record. It omits ordering of transitions and how the limit interacts with completeness, so it is not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core purpose and then the returned evidence fields. Every clause carries information and there is no filler, though the second sentence is a dense field list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does a reasonable job of enumerating returned fields. However, it supplies no routing guidance against the two very similar contractor-license siblings, which is the main gap an agent faces when selecting this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (license_number, limit) are already documented in the schema, including the default of 50. The description adds only the notion of 'one license' and does not clarify transition ordering or the effect of the limit, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb ('Return') and a well-scoped resource ('material status, expiration, specialty, and profile transitions observed for one Washington contractor license'), so an agent knows it retrieves a per-license change log. It does not, however, distinguish itself from the sibling wa_contractor_recent_changes, which an agent could easily confuse with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this versus wa_contractor_recent_changes (a change feed) or wa_contractor_verify (a point-in-time check). The phrase 'for one Washington contractor license' implies single-license lookup, but the choice among the three siblings is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wa_contractor_recent_changesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows; default 20.
sinceNoISO date or timestamp. Defaults to 30 days ago.
tradeNoOptional specialty/trade substring.
offsetNoRows to skip for pagination.
change_typeNoOptional material transition type.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive behavior, so the bar is lower, and the description adds real value: it discloses the data source cadence ('official daily snapshot pipeline') and a key semantic caveat ('Missing source rows are never labeled revoked; only observed field transitions are returned'). That is meaningful disclosure about what is and is not reported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and followed by the filtering options and the key data caveat. Both sentences carry information, though the 'LiveDataLink's official' branding is slightly heavier than needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 100% schema coverage, full annotations, and no output schema, the description supplies the semantics an agent needs: it is a change feed with defined filters and a caveat about revocation labeling. It could say more about the returned row shape, but the observation-transition note partially covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each of the five parameters is documented in the schema, so the baseline is 3. The description's mention of filtering by timestamp, change type, and trade merely restates available filters and adds no syntax, format, or default detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (List) and resource (material Washington contractor-registration changes) with clear scope: changes captured by the daily snapshot pipeline. An agent can tell it is a changes-feed, not a full license lookup, but it never explicitly names or contrasts with siblings like wa_contractor_license_history or wa_contractor_verify.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says the tool lists changes and what can be filtered, which implies usage for recent-change monitoring rather than history or verification. However, it never states when to prefer this over wa_contractor_license_history, nor any exclusion conditions, so the routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wa_contractor_verifyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matches; default 10 and maximum 25.
business_nameNoPartial registered business name, at least 2 characters.
license_numberNoExact Washington contractor license number. Preferred when known.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, open-world behavior, so the bar is lower, and the description still adds real context: it names the upstream data authority and explicitly discloses that principal-person and direct-contact fields are intentionally excluded, which preempts an agent wondering why those fields are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose, then return contents, then a deliberate exclusion note. Every sentence carries information and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description helpfully enumerates the return fields (status, expiration, trade, registration type, UBI, locality, freshness source, official link) and flags the intentional field exclusions. It omits match/pagination behavior and any note on source freshness limits, but for a read-only lookup with full annotation coverage it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (license_number, business_name, limit) are already documented, including the 'preferred when known' note on license_number. The description restates the exact-vs-partial distinction but adds no format, validation, or behavioral detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource (verify a Washington contractor registration) plus the authoritative source (WA L&I open-data API) and the two lookup keys. It implies a current-state lookup, but it never names its obvious siblings wa_contractor_license_history or wa_contractor_recent_changes, so the agent must infer the routing itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can tell it's for verification by exact license number or partial business name. There is no explicit when-to-use, when-not-to-use, or alternative named (e.g. history/recent-changes siblings), so the routing guidance rests on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

water_levelsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees. Used with lon to pick the nearest station when no station id is given.
lonNoLongitude in decimal degrees (negative west).
datumNoTidal datum: MLLW, MSL, MHW, etc. Default MLLW.
unitsNo'english' (feet) or 'metric' (meters). Default english.
stationNoNOAA CO-OPS station id, e.g. '9414290'. Optional if lat and lon are given.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, idempotent 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 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.

Usage Guidelines4/5

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_currentA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesCity, zip code, or place name (e.g., 'Houston, TX', '77001', 'Paris')

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description 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.

Conciseness4/5

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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '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.

Usage Guidelines4/5

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_forecastA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoForecast days (default: 7)
locationYesCity, zip code, or place name

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, 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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "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.

Usage Guidelines4/5

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_compareA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countriesYesComma-separated country codes/names, e.g. 'US,CN,DE,JP'.
indicatorNoIndicator 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

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_profileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoCountry ISO2/ISO3 code or name (default 'US').

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_indicatorA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoCountry ISO2/ISO3 code or name (default 'US'). Use 'WLD' for world.
end_yearNoEnd year (optional).
indicatorNoIndicator 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_yearNoStart year (optional).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds that the data is 'Keyless, official World Bank data,' which is useful context about authentication (none required) and source authority. However, it doesn't describe return format (e.g., list of year-value pairs), pagination, rate limits, or how missing data is handled. With annotations handling the core behavior, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, followed by helpful examples. No filler or repetition. Efficient and well-structured, though it could be slightly more concise by omitting some redundancy (e.g., the country examples).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with full annotation coverage and 100% schema description, the description is adequate but not complete. It doesn't mention that there is no output schema and doesn't describe the return structure (e.g., a time series of values). It also doesn't clarify default behavior (e.g., default country 'US' and full year range if no start/end specified). Missing these details leaves some ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds marginal value by listing friendly indicator names and country code formats, but these are also present in the schema descriptions (e.g., the schema lists the same friendly indicators and mentions ISO2/ISO3 codes). The description does mention 'WLD' for world in the schema but not in the description; however, the description provides no additional parameter semantics beyond what the schema offers. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Time series for a World Bank development indicator for one country.' Names the data source (official World Bank) and the output type (time series). This clearly distinguishes it from siblings worldbank_compare (multi-country) and worldbank_country_profile (broader profile).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through examples ('Friendly indicators: ...', 'Country accepts ISO2/ISO3 codes or common names'), which helps an agent know it can pass friendly names. However, it doesn't explicitly say when to use this tool vs. worldbank_compare or worldbank_country_profile. 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 221 tool updates
    • Changedaffordable_housing_refinance_evidence_pack6 fields changed
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedbea_compare_states9 fields changed
      • addedInput schema / properties / geographies / items / maxLength
        Added value: +100
      • addedInput schema / properties / geographies / items / minLength
        Added value: +1
      • addedInput schema / properties / geographies / maxItems
        Added value: +8
      • addedInput schema / properties / geographies / minItems
        Added value: +2
      • addedInput schema / properties / indicator / maxLength
        Added value: +100
      • addedInput schema / properties / indicator / minLength
        Added value: +1
      • addedInput schema / properties / year / maximum
        Added value: +2100
      • addedInput schema / properties / year / minimum
        Added value: +1900
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedbea_search_state_indicators7 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +1000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
    • Changedbea_state_economic_history16 fields changed
      • addedInput schema / properties / end_year / maximum
        Added value: +2100
      • addedInput schema / properties / end_year / minimum
        Added value: +1900
      • changedInput schema / properties / end_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / geography / maxLength
        Added value: +100
      • addedInput schema / properties / geography / minLength
        Added value: +1
      • addedInput schema / properties / indicator / maxLength
        Added value: +100
      • addedInput schema / properties / indicator / minLength
        Added value: +1
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +1000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_year / maximum
        Added value: +2100
      • addedInput schema / properties / start_year / minimum
        Added value: +1900
      • changedInput schema / properties / start_year / type
        Previous value: -"number"New value: +"integer"
    • Changedbea_state_economic_profile5 fields changed
      • addedInput schema / properties / as_of_year / maximum
        Added value: +2100
      • addedInput schema / properties / as_of_year / minimum
        Added value: +1900
      • changedInput schema / properties / as_of_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / geography / maxLength
        Added value: +100
      • addedInput schema / properties / geography / minLength
        Added value: +1
    • Changedbea_state_economic_trend7 fields changed
      • addedInput schema / properties / as_of_year / maximum
        Added value: +2100
      • addedInput schema / properties / as_of_year / minimum
        Added value: +1900
      • changedInput schema / properties / as_of_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / geography / maxLength
        Added value: +100
      • addedInput schema / properties / geography / minLength
        Added value: +1
      • addedInput schema / properties / indicator / maxLength
        Added value: +100
      • addedInput schema / properties / indicator / minLength
        Added value: +1
    • Changedbls_indicator2 fields changed
      • changedInput schema / properties / end_year / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / start_year / type
        Previous value: -"number"New value: +"integer"
    • Changedbls_series2 fields changed
      • changedInput schema / properties / end_year / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / start_year / type
        Previous value: -"number"New value: +"integer"
    • Changedbook_details1 field changed
      • changedInput schema / properties / gutenberg_id / type
        Previous value: -"number"New value: +"integer"
    • Changedbook_fulltext_search4 fields changed
      • changedInput schema / properties / gutenberg_id / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedbook_get_text6 fields changed
      • addedInput schema / properties / from_seq / minimum
        Added value: +0
      • changedInput schema / properties / from_seq / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / gutenberg_id / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / max_passages / maximum
        Added value: +200
      • addedInput schema / properties / max_passages / minimum
        Added value: +1
      • changedInput schema / properties / max_passages / type
        Previous value: -"number"New value: +"integer"
    • Changedbook_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedbounce_scanner10 fields changed
      • addedInput schema / properties / lookback_days / maximum
        Added value: +500
      • addedInput schema / properties / lookback_days / minimum
        Added value: +30
      • changedInput schema / properties / lookback_days / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / ma_period / maximum
        Added value: +200
      • addedInput schema / properties / ma_period / minimum
        Added value: +2
      • changedInput schema / properties / ma_period / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / proximity_pct / maximum
        Added value: +25
      • addedInput schema / properties / proximity_pct / minimum
        Added value: +0.1
      • addedInput schema / properties / rsi_threshold / maximum
        Added value: +100
      • addedInput schema / properties / rsi_threshold / minimum
        Added value: +1
    • Changedbts_transport_border_activity_pack5 fields changed
      • addedInput schema / properties / port / maxLength
        Added value: +120
      • addedInput schema / properties / port / minLength
        Added value: +1
      • addedInput schema / properties / trailing_months / maximum
        Added value: +24
      • addedInput schema / properties / trailing_months / minimum
        Added value: +1
      • changedInput schema / properties / trailing_months / type
        Previous value: -"number"New value: +"integer"
    • Changedbts_transport_border_trend10 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +120
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / port / maxLength
        Added value: +120
      • addedInput schema / properties / port / minLength
        Added value: +1
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-\\d{2}$"
    • Changedbts_transport_compare_ports8 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-\\d{2}$"
      • addedInput schema / properties / ports / items / maxLength
        Added value: +120
      • addedInput schema / properties / ports / items / minLength
        Added value: +1
      • addedInput schema / properties / ports / maxItems
        Added value: +8
      • addedInput schema / properties / ports / minItems
        Added value: +2
      • addedInput schema / properties / trailing_months / maximum
        Added value: +24
      • addedInput schema / properties / trailing_months / minimum
        Added value: +1
      • changedInput schema / properties / trailing_months / type
        Previous value: -"number"New value: +"integer"
    • Changedbts_transport_search_ports10 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / state / maxLength
        Added value: +40
      • addedInput schema / properties / state / minLength
        Added value: +1
    • Changedcandlestick_signals3 fields changed
      • addedInput schema / properties / lookback_days / maximum
        Added value: +400
      • addedInput schema / properties / lookback_days / minimum
        Added value: +5
      • changedInput schema / properties / lookback_days / type
        Previous value: -"number"New value: +"integer"
    • Changedcarrier_monitor_recheck2 fields changed
      • changedInput schema / properties / dot / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / mc / type
        Previous value: -"number"New value: +"integer"
    • Changedcarrier_vetting_batch1 field changed
      • changedInput schema / properties / dot_numbers / items / type
        Previous value: -"number"New value: +"integer"
    • Changedcarrier_vetting_evidence_pack2 fields changed
      • changedInput schema / properties / dot / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / mc / type
        Previous value: -"number"New value: +"integer"
    • Changedcarrier_vetting_score2 fields changed
      • changedInput schema / properties / dot / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / mc / type
        Previous value: -"number"New value: +"integer"
    • Changedcaselaw_case_details1 field changed
      • changedInput schema / properties / id / type
        Previous value: -"number"New value: +"integer"
    • Changedcaselaw_opinion_text4 fields changed
      • changedInput schema / properties / id / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / max_chars / maximum
        Added value: +500000
      • addedInput schema / properties / max_chars / minimum
        Added value: +1000
      • changedInput schema / properties / max_chars / type
        Previous value: -"number"New value: +"integer"
    • Changedcaselaw_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_dataset_query3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_drug_overdose_deaths3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_excess_deaths_covid3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_flu_surveillance3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +500
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_leading_causes_of_death4 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_outbreak_reports4 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_vaccination_coverage3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +500
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcdc_weekly_deaths_by_state4 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +1000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcensus_business1 field changed
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcensus_commute_employment1 field changed
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcensus_demographics1 field changed
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcensus_geography_lookup3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcensus_income_housing1 field changed
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcensus_population1 field changed
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedcfpb_complaint_trends3 fields changed
      • addedInput schema / properties / trend_depth / maximum
        Added value: +20
      • addedInput schema / properties / trend_depth / minimum
        Added value: +1
      • changedInput schema / properties / trend_depth / type
        Previous value: -"number"New value: +"integer"
    • Changedcfpb_search_complaints5 fields changed
      • addedInput schema / properties / from / minimum
        Added value: +0
      • changedInput schema / properties / from / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / size / maximum
        Added value: +100
      • addedInput schema / properties / size / minimum
        Added value: +1
      • changedInput schema / properties / size / type
        Previous value: -"number"New value: +"integer"
    • Changedcftc_cot_compare6 fields changed
      • addedInput schema / properties / category / maxLength
        Added value: +64
      • addedInput schema / properties / category / minLength
        Added value: +1
      • addedInput schema / properties / markets / items / maxLength
        Added value: +160
      • addedInput schema / properties / markets / items / minLength
        Added value: +1
      • addedInput schema / properties / markets / maxItems
        Added value: +8
      • addedInput schema / properties / markets / minItems
        Added value: +2
    • Changedcftc_cot_evidence_pack2 fields changed
      • addedInput schema / properties / market / maxLength
        Added value: +160
      • addedInput schema / properties / market / minLength
        Added value: +1
    • Changedcftc_cot_history12 fields changed
      • addedInput schema / properties / category / maxLength
        Added value: +64
      • addedInput schema / properties / category / minLength
        Added value: +1
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +260
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / market / maxLength
        Added value: +160
      • addedInput schema / properties / market / minLength
        Added value: +1
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • Changedcftc_cot_latest2 fields changed
      • addedInput schema / properties / market / maxLength
        Added value: +160
      • addedInput schema / properties / market / minLength
        Added value: +1
    • Changedcftc_cot_search_markets8 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedcms_home_health_search5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedcms_hospice_search5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedcms_hospital_search5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedcms_nursing_home_search5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedcollege_compare2 fields changed
      • addedInput schema / properties / unit_ids / maxItems
        Added value: +5
      • addedInput schema / properties / unit_ids / minItems
        Added value: +2
    • Changedcpsc_recall_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedcpsc_recent_recalls6 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / lookback_days / maximum
        Added value: +365
      • addedInput schema / properties / lookback_days / minimum
        Added value: +1
      • changedInput schema / properties / lookback_days / type
        Previous value: -"number"New value: +"integer"
    • Changededgar_company_lookup3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changededgar_filing_content3 fields changed
      • addedInput schema / properties / max_chars / maximum
        Added value: +200000
      • addedInput schema / properties / max_chars / minimum
        Added value: +1000
      • changedInput schema / properties / max_chars / type
        Previous value: -"number"New value: +"integer"
    • Changededgar_filings_by_form_type3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changededgar_full_text_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changededgar_insider_transactions3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changededgar_recent_filings3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedeia_electricity_state3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedeia_energy_consumption3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedeia_gasoline_prices3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedeia_natural_gas3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedeia_oil_supply3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedeia_renewable_generation3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedeia_series_lookup3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedenergy_market_snapshot3 fields changed
      • addedInput schema / properties / lookback_days / maximum
        Added value: +2000
      • addedInput schema / properties / lookback_days / minimum
        Added value: +60
      • changedInput schema / properties / lookback_days / type
        Previous value: -"number"New value: +"integer"
    • Changedentity_dossier3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +15
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedepa_facility_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfaa_public_aviation_airport_profile2 fields changed
      • addedInput schema / properties / airport / maxLength
        Added value: +120
      • addedInput schema / properties / airport / minLength
        Added value: +1
    • Changedfaa_public_aviation_compare_airports4 fields changed
      • addedInput schema / properties / airports / items / maxLength
        Added value: +120
      • addedInput schema / properties / airports / items / minLength
        Added value: +1
      • addedInput schema / properties / airports / maxItems
        Added value: +8
      • addedInput schema / properties / airports / minItems
        Added value: +2
    • Changedfaa_public_aviation_search_airports12 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / min_runway_length_ft / maximum
        Added value: +20000
      • addedInput schema / properties / min_runway_length_ft / minimum
        Added value: +0
      • changedInput schema / properties / min_runway_length_ft / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedfaa_public_aviation_search_runways15 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / min_length_ft / maximum
        Added value: +20000
      • addedInput schema / properties / min_length_ft / minimum
        Added value: +0
      • changedInput schema / properties / min_length_ft / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / min_width_ft / maximum
        Added value: +10000
      • addedInput schema / properties / min_width_ft / minimum
        Added value: +0
      • changedInput schema / properties / min_width_ft / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
      • addedInput schema / properties / surface / maxLength
        Added value: +30
      • addedInput schema / properties / surface / minLength
        Added value: +1
    • Changedfbi_cde_compare_state_to_national9 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / limit / maximum
        Added value: +60
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +120
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedfbi_cde_national_crime_trend8 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / limit / maximum
        Added value: +60
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +120
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
    • Changedfbi_cde_state_crime_trend9 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / limit / maximum
        Added value: +60
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +120
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedfbi_cde_state_month_snapshot2 fields changed
      • addedInput schema / properties / month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedfbi_cde_state_reporting_coverage9 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / limit / maximum
        Added value: +60
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +120
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedfbi_wanted3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfda_device_510k3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfda_device_recalls3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfda_drug_adverse_events3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfda_drug_lookup3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfda_drug_recalls3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfda_food_recalls3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfdic_deposits3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfdic_failures5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedfdic_financials4 fields changed
      • changedInput schema / properties / cert / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +40
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfdic_history4 fields changed
      • changedInput schema / properties / cert / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfdic_search_institutions5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedfdic_summary3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +60
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfec_candidate_financials4 fields changed
      • changedInput schema / properties / cycle / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfec_candidate_search4 fields changed
      • changedInput schema / properties / cycle / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfec_committee_search4 fields changed
      • changedInput schema / properties / cycle / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfec_independent_expenditures4 fields changed
      • changedInput schema / properties / cycle / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfed_board_h15_evidence_pack1 field changed
      • addedInput schema / properties / date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • Changedfed_board_h15_rate_history10 fields changed
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +260
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +25000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / series / maxLength
        Added value: +160
      • addedInput schema / properties / series / minLength
        Added value: +1
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • Changedfed_board_h15_rate_spread12 fields changed
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +260
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +25000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / series_a / maxLength
        Added value: +160
      • addedInput schema / properties / series_a / minLength
        Added value: +1
      • addedInput schema / properties / series_b / maxLength
        Added value: +160
      • addedInput schema / properties / series_b / minLength
        Added value: +1
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • Changedfed_board_h15_search_series7 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
    • Changedfed_board_h15_yield_curve1 field changed
      • addedInput schema / properties / date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • Changedfed_z1_catalog8 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +1000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +160
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedfed_z1_change4 fields changed
      • addedInput schema / properties / end_period / pattern
        Added value: +"^[0-9]{4}:Q[1-4]$"
      • addedInput schema / properties / series / maxLength
        Added value: +160
      • addedInput schema / properties / series / minLength
        Added value: +1
      • addedInput schema / properties / start_period / pattern
        Added value: +"^[0-9]{4}:Q[1-4]$"
    • Changedfed_z1_series10 fields changed
      • addedInput schema / properties / end_period / pattern
        Added value: +"^[0-9]{4}:Q[1-4]$"
      • addedInput schema / properties / limit / maximum
        Added value: +320
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +5000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / series / maxLength
        Added value: +160
      • addedInput schema / properties / series / minLength
        Added value: +1
      • addedInput schema / properties / start_period / pattern
        Added value: +"^[0-9]{4}:Q[1-4]$"
    • Changedfed_z1_snapshot4 fields changed
      • addedInput schema / properties / series / items / maxLength
        Added value: +160
      • addedInput schema / properties / series / items / minLength
        Added value: +1
      • addedInput schema / properties / series / maxItems
        Added value: +8
      • addedInput schema / properties / series / minItems
        Added value: +1
    • Changedfema_nfhl_compare_inventory_items3 fields changed
      • addedInput schema / properties / dfirm_ids / items / pattern
        Added value: +"^[0-9A-Za-z]{6}(?:-NFHL)?$"
      • addedInput schema / properties / dfirm_ids / maxItems
        Added value: +10
      • addedInput schema / properties / dfirm_ids / minItems
        Added value: +2
    • Changedfema_nfhl_get_inventory_item1 field changed
      • addedInput schema / properties / dfirm_id / pattern
        Added value: +"^[0-9A-Za-z]{6}(?:-NFHL)?$"
    • Changedfema_nfhl_search_inventory14 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / max_advertised_mb / maximum
        Added value: +1000000
      • addedInput schema / properties / max_advertised_mb / minimum
        Added value: +0
      • addedInput schema / properties / min_advertised_mb / maximum
        Added value: +1000000
      • addedInput schema / properties / min_advertised_mb / minimum
        Added value: +0
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / state / maxLength
        Added value: +60
      • addedInput schema / properties / state / minLength
        Added value: +2
    • Changedfema_nfhl_summarize_state_inventory2 fields changed
      • addedInput schema / properties / state / maxLength
        Added value: +60
      • addedInput schema / properties / state / minLength
        Added value: +2
    • Changedfhfa_hpi_compare3 fields changed
      • addedInput schema / properties / geography_level / maxLength
        Added value: +100
      • addedInput schema / properties / places / maxItems
        Added value: +8
      • addedInput schema / properties / places / minItems
        Added value: +2
    • Changedfhfa_hpi_series15 fields changed
      • addedInput schema / properties / end_year / maximum
        Added value: +2100
      • addedInput schema / properties / end_year / minimum
        Added value: +1970
      • changedInput schema / properties / end_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / geography_level / maxLength
        Added value: +100
      • addedInput schema / properties / limit / maximum
        Added value: +240
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +5000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / place / maxLength
        Added value: +120
      • addedInput schema / properties / place / minLength
        Added value: +1
      • addedInput schema / properties / start_year / maximum
        Added value: +2100
      • addedInput schema / properties / start_year / minimum
        Added value: +1970
      • changedInput schema / properties / start_year / type
        Previous value: -"number"New value: +"integer"
    • Changedfhfa_hpi_trend3 fields changed
      • addedInput schema / properties / geography_level / maxLength
        Added value: +100
      • addedInput schema / properties / place / maxLength
        Added value: +120
      • addedInput schema / properties / place / minLength
        Added value: +1
    • Changedfred_category_series4 fields changed
      • changedInput schema / properties / category_id / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +100000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfred_compare5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / series_ids / maxItems
        Added value: +5
      • addedInput schema / properties / series_ids / minItems
        Added value: +2
    • Changedfred_observations3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfred_quick_indicator3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedfred_releases4 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / release_id / type
        Previous value: -"number"New value: +"integer"
    • Changedfred_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedgeocode_batch1 field changed
      • addedInput schema / properties / addresses / maxItems
        Added value: +10
    • Changedgovinfo_legislation_committee_path3 fields changed
      • addedInput schema / properties / bill_number / maximum
        Added value: +99999
      • addedInput schema / properties / bill_number / minimum
        Added value: +1
      • changedInput schema / properties / bill_number / type
        Previous value: -"number"New value: +"integer"
    • Changedgovinfo_legislation_evidence_pack6 fields changed
      • addedInput schema / properties / action_limit / maximum
        Added value: +50
      • addedInput schema / properties / action_limit / minimum
        Added value: +1
      • changedInput schema / properties / action_limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / bill_number / maximum
        Added value: +99999
      • addedInput schema / properties / bill_number / minimum
        Added value: +1
      • changedInput schema / properties / bill_number / type
        Previous value: -"number"New value: +"integer"
    • Changedgovinfo_legislation_relationships9 fields changed
      • addedInput schema / properties / bill_number / maximum
        Added value: +99999
      • addedInput schema / properties / bill_number / minimum
        Added value: +1
      • changedInput schema / properties / bill_number / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedgovinfo_legislation_search10 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / policy_area / maxLength
        Added value: +200
      • addedInput schema / properties / policy_area / minLength
        Added value: +1
      • addedInput schema / properties / query / maxLength
        Added value: +200
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedgovinfo_legislation_version_lineage3 fields changed
      • addedInput schema / properties / bill_number / maximum
        Added value: +99999
      • addedInput schema / properties / bill_number / minimum
        Added value: +1
      • changedInput schema / properties / bill_number / type
        Previous value: -"number"New value: +"integer"
    • Changedgrants_search3 fields changed
      • addedInput schema / properties / rows / maximum
        Added value: +100
      • addedInput schema / properties / rows / minimum
        Added value: +1
      • changedInput schema / properties / rows / type
        Previous value: -"number"New value: +"integer"
    • Changedgsa_per_diem_lookup13 fields changed
      • addedInput schema / properties / city / maxLength
        Added value: +100
      • addedInput schema / properties / city / minLength
        Added value: +1
      • addedInput schema / properties / fiscal_year / maximum
        Added value: +2100
      • addedInput schema / properties / fiscal_year / minimum
        Added value: +2000
      • changedInput schema / properties / fiscal_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +5000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
      • addedInput schema / properties / zip / pattern
        Added value: +"^\\d{5}$"
    • Changedgsa_per_diem_mie_breakdown3 fields changed
      • addedInput schema / properties / fiscal_year / maximum
        Added value: +2100
      • addedInput schema / properties / fiscal_year / minimum
        Added value: +2000
      • changedInput schema / properties / fiscal_year / type
        Previous value: -"number"New value: +"integer"
    • Changedhud_fha_lender_exposure9 fields changed
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedhud_fha_maturity_search12 fields changed
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / lender / maxLength
        Added value: +120
      • addedInput schema / properties / lender / minLength
        Added value: +1
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / min_balance / minimum
        Added value: +0
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changedhud_lihtc_year15_radar11 fields changed
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / min_units / minimum
        Added value: +0
      • changedInput schema / properties / min_units / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / state / pattern
        Added value: +"^[A-Za-z]{2}$"
    • Changediv_analytics3 fields changed
      • addedInput schema / properties / lookback_days / maximum
        Added value: +2520
      • addedInput schema / properties / lookback_days / minimum
        Added value: +2
      • changedInput schema / properties / lookback_days / type
        Previous value: -"number"New value: +"integer"
    • Changedlei_hierarchy3 fields changed
      • addedInput schema / properties / children_limit / maximum
        Added value: +50
      • addedInput schema / properties / children_limit / minimum
        Added value: +1
      • changedInput schema / properties / children_limit / type
        Previous value: -"number"New value: +"integer"
    • Changedlei_lookup3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedleie_search_exclusions3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedload_tender_fraud_shield2 fields changed
      • changedInput schema / properties / dot / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / mc / type
        Previous value: -"number"New value: +"integer"
    • Changednasa_firms_search_fires18 fields changed
      • addedInput schema / properties / day_range / maximum
        Added value: +5
      • addedInput schema / properties / day_range / minimum
        Added value: +1
      • changedInput schema / properties / day_range / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / east / maximum
        Added value: +180
      • addedInput schema / properties / east / minimum
        Added value: +-180
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / north / maximum
        Added value: +90
      • addedInput schema / properties / north / minimum
        Added value: +-90
      • addedInput schema / properties / offset / maximum
        Added value: +5000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / south / maximum
        Added value: +90
      • addedInput schema / properties / south / minimum
        Added value: +-90
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / west / maximum
        Added value: +180
      • addedInput schema / properties / west / minimum
        Added value: +-180
    • Changednonprofit_search_location3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednonprofit_search_name3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednpi_search_organization3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednpi_search_provider3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednpi_search_specialty3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednport_compare_funds3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednport_fund_holdings3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednrel_alt_fuel_station_detail1 field changed
      • changedInput schema / properties / station_id / type
        Previous value: -"number"New value: +"integer"
    • Changednrel_alt_fuel_stations3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changednrel_pvwatts2 fields changed
      • changedInput schema / properties / array_type / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / module_type / type
        Previous value: -"number"New value: +"integer"
    • Changedok_wells_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopen_payments_by_company3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopen_payments_by_specialty3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopen_payments_ownership3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopen_payments_research3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopen_payments_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopen_payments_state_totals3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +200
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopen_payments_top3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedopportunity_zones_compare_jurisdictions4 fields changed
      • addedInput schema / properties / jurisdictions / items / maxLength
        Added value: +100
      • addedInput schema / properties / jurisdictions / items / minLength
        Added value: +1
      • addedInput schema / properties / jurisdictions / maxItems
        Added value: +10
      • addedInput schema / properties / jurisdictions / minItems
        Added value: +2
    • Changedopportunity_zones_lookup_designation2 fields changed
      • addedInput schema / properties / tract_geoid / pattern
        Added value: +"^[0-9]{11}$"
      • changedInput schema / properties / tract_vintage / type
        Previous value: -"number"New value: +"integer"
    • Changedopportunity_zones_search_designations12 fields changed
      • addedInput schema / properties / county / maxLength
        Added value: +120
      • addedInput schema / properties / county / minLength
        Added value: +1
      • addedInput schema / properties / jurisdiction / maxLength
        Added value: +100
      • addedInput schema / properties / jurisdiction / minLength
        Added value: +1
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedopportunity_zones_summarize_designations8 fields changed
      • addedInput schema / properties / jurisdiction / maxLength
        Added value: +100
      • addedInput schema / properties / jurisdiction / minLength
        Added value: +1
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedpaper_fulltext_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedpaper_get_text5 fields changed
      • addedInput schema / properties / from_seq / minimum
        Added value: +0
      • changedInput schema / properties / from_seq / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / max_passages / maximum
        Added value: +200
      • addedInput schema / properties / max_passages / minimum
        Added value: +1
      • changedInput schema / properties / max_passages / type
        Previous value: -"number"New value: +"integer"
    • Changedpaper_search4 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / year / type
        Previous value: -"number"New value: +"integer"
    • Changedparcel_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedpatent_assignee_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedpatent_inventor_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedpatent_recent3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedpatent_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedrealestate_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedrealestate_trend3 fields changed
      • addedInput schema / properties / months / maximum
        Added value: +360
      • addedInput schema / properties / months / minimum
        Added value: +1
      • changedInput schema / properties / months / type
        Previous value: -"number"New value: +"integer"
    • Changedrecall_screen1 field changed
      • changedInput schema / properties / vehicle_year / type
        Previous value: -"number"New value: +"integer"
    • Changedrecreation_nearby3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedrecreation_search_campsites3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedrecreation_search_facilities3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedrecreation_search_recareas3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedreg_cfr_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedreg_cfr_section3 fields changed
      • addedInput schema / properties / title / maximum
        Added value: +50
      • addedInput schema / properties / title / minimum
        Added value: +1
      • changedInput schema / properties / title / type
        Previous value: -"number"New value: +"integer"
    • Changedreg_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedsanctions_get_changes3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedsanctions_screen_address5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / threshold / maximum
        Added value: +1
      • addedInput schema / properties / threshold / minimum
        Added value: +0
    • Changedsanctions_screen_batch6 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / names / maxItems
        Added value: +50
      • addedInput schema / properties / threshold / maximum
        Added value: +1
      • addedInput schema / properties / threshold / minimum
        Added value: +0
    • Changedsanctions_screen_entity5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / threshold / maximum
        Added value: +1
      • addedInput schema / properties / threshold / minimum
        Added value: +0
    • Changedsanctions_search_alias5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / threshold / maximum
        Added value: +1
      • addedInput schema / properties / threshold / minimum
        Added value: +0
    • Changedsec_ftd_compare6 fields changed
      • addedInput schema / properties / settlement_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / symbols / items / maxLength
        Added value: +10
      • addedInput schema / properties / symbols / items / minLength
        Added value: +1
      • addedInput schema / properties / symbols / items / pattern
        Added value: +"^[A-Za-z0-9.\\-^]+$"
      • addedInput schema / properties / symbols / maxItems
        Added value: +8
      • addedInput schema / properties / symbols / minItems
        Added value: +2
    • Changedsec_ftd_history11 fields changed
      • addedInput schema / properties / end_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / limit / maximum
        Added value: +250
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / symbol / maxLength
        Added value: +10
      • addedInput schema / properties / symbol / minLength
        Added value: +1
      • addedInput schema / properties / symbol / pattern
        Added value: +"^[A-Za-z0-9.\\-^]+$"
    • Changedsec_ftd_latest4 fields changed
      • addedInput schema / properties / as_of / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / symbol / maxLength
        Added value: +10
      • addedInput schema / properties / symbol / minLength
        Added value: +1
      • addedInput schema / properties / symbol / pattern
        Added value: +"^[A-Za-z0-9.\\-^]+$"
    • Changedsec_ftd_search_securities8 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedsec_ftd_top4 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / settlement_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • Changedsecurity_exposure3 fields changed
      • addedInput schema / properties / max_cves / maximum
        Added value: +200
      • addedInput schema / properties / max_cves / minimum
        Added value: +1
      • changedInput schema / properties / max_cves / type
        Previous value: -"number"New value: +"integer"
    • Changedsource_snapshot_status1 field changed
      • addedInput schema / properties / source_id / pattern
        Added value: +"^[a-z0-9][a-z0-9-]*$"
    • Changedspending_recipient_summary3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedspending_search_awards4 fields changed
      • changedInput schema / properties / fiscal_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedsupport_resistance_levels3 fields changed
      • addedInput schema / properties / lookback_days / maximum
        Added value: +500
      • addedInput schema / properties / lookback_days / minimum
        Added value: +20
      • changedInput schema / properties / lookback_days / type
        Previous value: -"number"New value: +"integer"
    • Changedted_opportunity_radar6 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / page / maximum
        Added value: +60
      • addedInput schema / properties / page / minimum
        Added value: +1
      • changedInput schema / properties / page / type
        Previous value: -"number"New value: +"integer"
    • Changedted_search_notices6 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / page / maximum
        Added value: +60
      • addedInput schema / properties / page / minimum
        Added value: +1
      • changedInput schema / properties / page / type
        Previous value: -"number"New value: +"integer"
    • Changedtreasury_auctions3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedtreasury_cash_balance3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedtreasury_debt3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedtreasury_exchange_rates3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedtreasury_interest_rates3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedtreasury_tic_compare_holders6 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / holders / items / maxLength
        Added value: +120
      • addedInput schema / properties / holders / items / minLength
        Added value: +1
      • addedInput schema / properties / holders / maxItems
        Added value: +8
      • addedInput schema / properties / holders / minItems
        Added value: +2
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
    • Changedtreasury_tic_find_holders8 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +5000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedtreasury_tic_holder_history10 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / holder / maxLength
        Added value: +120
      • addedInput schema / properties / holder / minLength
        Added value: +1
      • addedInput schema / properties / limit / maximum
        Added value: +120
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +5000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
    • Changedtreasury_tic_official_share8 fields changed
      • addedInput schema / properties / end_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / limit / maximum
        Added value: +120
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +5000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
    • Changedtreasury_tic_rank_holders7 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / month / pattern
        Added value: +"^\\d{4}-(0[1-9]|1[0-2])$"
      • addedInput schema / properties / offset / maximum
        Added value: +500
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedtrials_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedtx_wells_near5 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / radius_km / maximum
        Added value: +10
      • addedInput schema / properties / radius_km / minimum
        Added value: +0.1
    • Changedurlhaus_lookup_host3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedurlhaus_lookup_payload3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedurlhaus_lookup_signature3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedurlhaus_lookup_tag3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedurlhaus_lookup_url3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedurlhaus_recent_payloads3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedurlhaus_recent_urls3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedusda_nass_compare_crop_years9 fields changed
      • addedInput schema / properties / crop / maxLength
        Added value: +80
      • addedInput schema / properties / crop / minLength
        Added value: +1
      • addedInput schema / properties / crop_class / maxLength
        Added value: +80
      • addedInput schema / properties / crop_class / minLength
        Added value: +1
      • addedInput schema / properties / years / items / maximum
        Added value: +2100
      • addedInput schema / properties / years / items / minimum
        Added value: +1900
      • changedInput schema / properties / years / items / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / years / maxItems
        Added value: +7
      • addedInput schema / properties / years / minItems
        Added value: +2
    • Changedusda_nass_crop_evidence_pack7 fields changed
      • addedInput schema / properties / as_of_year / maximum
        Added value: +2100
      • addedInput schema / properties / as_of_year / minimum
        Added value: +1900
      • changedInput schema / properties / as_of_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / crop / maxLength
        Added value: +80
      • addedInput schema / properties / crop / minLength
        Added value: +1
      • addedInput schema / properties / crop_class / maxLength
        Added value: +80
      • addedInput schema / properties / crop_class / minLength
        Added value: +1
    • Changedusda_nass_crop_history16 fields changed
      • addedInput schema / properties / crop / maxLength
        Added value: +80
      • addedInput schema / properties / crop / minLength
        Added value: +1
      • addedInput schema / properties / crop_class / maxLength
        Added value: +80
      • addedInput schema / properties / crop_class / minLength
        Added value: +1
      • addedInput schema / properties / end_year / maximum
        Added value: +2100
      • addedInput schema / properties / end_year / minimum
        Added value: +1900
      • changedInput schema / properties / end_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +1000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / start_year / maximum
        Added value: +2100
      • addedInput schema / properties / start_year / minimum
        Added value: +1900
      • changedInput schema / properties / start_year / type
        Previous value: -"number"New value: +"integer"
    • Changedusda_nass_crop_trend7 fields changed
      • addedInput schema / properties / as_of_year / maximum
        Added value: +2100
      • addedInput schema / properties / as_of_year / minimum
        Added value: +1900
      • changedInput schema / properties / as_of_year / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / crop / maxLength
        Added value: +80
      • addedInput schema / properties / crop / minLength
        Added value: +1
      • addedInput schema / properties / crop_class / maxLength
        Added value: +80
      • addedInput schema / properties / crop_class / minLength
        Added value: +1
    • Changedusda_nass_search_crop_series7 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +1000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / query / maxLength
        Added value: +120
    • Changedusgs_earthquake_search3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedwa_contractor_license_history3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedwa_contractor_recent_changes6 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / offset / maximum
        Added value: +10000
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedwa_contractor_verify3 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +25
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
    • Changedworldbank_indicator2 fields changed
      • changedInput schema / properties / end_year / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / start_year / type
        Previous value: -"number"New value: +"integer"
  2. 4 tool updates
    • Addedaffordable_housing_refinance_evidence_pack
    • Addedhud_fha_lender_exposure
    • Addedhud_fha_maturity_search
    • Addedhud_lihtc_year15_radar
  3. 14 tool updates
    • Addedfema_nfhl_compare_inventory_items
    • Addedfema_nfhl_get_inventory_item
    • Addedfema_nfhl_get_snapshot_metadata
    • Addedfema_nfhl_search_inventory
    • Addedfema_nfhl_summarize_state_inventory
    • Addedopportunity_zones_compare_jurisdictions
    • Addedopportunity_zones_lookup_designation
    • Addedopportunity_zones_search_designations
    • Addedopportunity_zones_summarize_designations
    • Addedtreasury_tic_compare_holders
    • Addedtreasury_tic_find_holders
    • Addedtreasury_tic_holder_history
    • Addedtreasury_tic_official_share
    • Addedtreasury_tic_rank_holders
  4. 14 tool updates
    • Addedbea_compare_states
    • Addedbea_search_state_indicators
    • Addedbea_state_economic_history
    • Addedbea_state_economic_profile
    • Addedbea_state_economic_trend
    • Addedfbi_cde_compare_state_to_national
    • Addedfbi_cde_national_crime_trend
    • Addedfbi_cde_state_crime_trend
    • Addedfbi_cde_state_month_snapshot
    • Addedfbi_cde_state_reporting_coverage
    • Addedfed_z1_catalog
    • Addedfed_z1_change
    • Addedfed_z1_series
    • Addedfed_z1_snapshot
  5. 65 tool updates
    • Addedbts_transport_border_activity_pack
    • Addedbts_transport_border_trend
    • Addedbts_transport_compare_ports
    • Addedbts_transport_search_ports
    • Changedcarrier_monitor_recheck5 fields changed
      • changedInput schema / properties / dot / description
        Previous value: -"USDOT number (preferred). Accepts 3405079 or USDOT 3405079."New value: +"USDOT number (preferred)."
      • changedInput schema / properties / dot / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
      • changedInput schema / properties / mc / description
        Previous value: -"MC/MX number. Accepts 123456 or MC-123456."New value: +"MC/MX number without the prefix."
      • changedInput schema / properties / mc / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
      • removedInput schema / properties / previous_snapshot / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  }
        -]
    • Changedcarrier_vetting_batch3 fields changed
      • removedInput schema / properties / dot_numbers / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "number"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / dot_numbers / items
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / dot_numbers / type
        Added value: +"array"
    • Changedcarrier_vetting_evidence_pack4 fields changed
      • changedInput schema / properties / dot / description
        Previous value: -"USDOT number (preferred). Accepts 3405079 or USDOT 3405079."New value: +"USDOT number (preferred exact identifier)."
      • changedInput schema / properties / dot / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
      • changedInput schema / properties / mc / description
        Previous value: -"MC/MX number. Accepts 123456 or MC-123456."New value: +"MC/MX number without the prefix."
      • changedInput schema / properties / mc / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
    • Changedcarrier_vetting_score4 fields changed
      • changedInput schema / properties / dot / description
        Previous value: -"USDOT number (preferred). Accepts 76830 or USDOT 76830."New value: +"USDOT number of the carrier (most precise). Example: 76830."
      • changedInput schema / properties / dot / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
      • changedInput schema / properties / mc / description
        Previous 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."
      • changedInput schema / properties / mc / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
    • Addedcftc_cot_compare
    • Addedcftc_cot_evidence_pack
    • Addedcftc_cot_history
    • Addedcftc_cot_latest
    • Addedcftc_cot_search_markets
    • Removedcontractor_license_sources
    • Removedcontractor_multistate_route
    • Addedfaa_public_aviation_airport_profile
    • Addedfaa_public_aviation_compare_airports
    • Addedfaa_public_aviation_search_airports
    • Addedfaa_public_aviation_search_runways
    • Addedfed_board_h15_evidence_pack
    • Addedfed_board_h15_rate_history
    • Addedfed_board_h15_rate_spread
    • Addedfed_board_h15_search_series
    • Addedfed_board_h15_yield_curve
    • Addedfhfa_hpi_compare
    • Addedfhfa_hpi_series
    • Addedfhfa_hpi_trend
    • Addedgovinfo_legislation_committee_path
    • Addedgovinfo_legislation_evidence_pack
    • Addedgovinfo_legislation_relationships
    • Addedgovinfo_legislation_search
    • Addedgovinfo_legislation_version_lineage
    • Addedgsa_per_diem_lookup
    • Addedgsa_per_diem_mie_breakdown
    • Addedleie_exclusion_details
    • Addedleie_lookup_npi
    • Addedleie_search_exclusions
    • Changedload_tender_fraud_shield4 fields changed
      • changedInput schema / properties / dot / description
        Previous value: -"USDOT number (preferred). Accepts 3405079 or USDOT 3405079."New value: +"USDOT number (preferred)."
      • changedInput schema / properties / dot / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
      • changedInput schema / properties / mc / description
        Previous value: -"MC/MX number. Accepts 123456 or MC-123456."New value: +"MC/MX number without the prefix."
      • changedInput schema / properties / mc / type
        Previous value: -[
        -  "number",
        -  "string"
        -]New value: +"number"
    • Addednasa_firms_search_fires
    • Addednport_compare_funds
    • Addednport_fund_holdings
    • Addedsec_ftd_compare
    • Addedsec_ftd_history
    • Addedsec_ftd_latest
    • Addedsec_ftd_search_securities
    • Addedsec_ftd_top
    • Addedsource_snapshot_list
    • Addedsource_snapshot_status
    • Addedted_opportunity_radar
    • Addedted_search_notices
    • Addedurlhaus_lookup_host
    • Addedurlhaus_lookup_payload
    • Addedurlhaus_lookup_signature
    • Addedurlhaus_lookup_tag
    • Addedurlhaus_lookup_url
    • Addedurlhaus_recent_payloads
    • Addedurlhaus_recent_urls
    • Addedusda_nass_compare_crop_years
    • Addedusda_nass_crop_evidence_pack
    • Addedusda_nass_crop_history
    • Addedusda_nass_crop_trend
    • Addedusda_nass_search_crop_series
    • Addedwa_contractor_license_history
    • Addedwa_contractor_recent_changes
    • Changedwa_contractor_verify3 fields changed
      • changedInput schema / properties / business_name / description
        Previous 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."
      • changedInput schema / properties / license_number / description
        Previous value: -"Exact Washington contractor license number, if known."New value: +"Exact Washington contractor license number. Preferred when known."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum candidate records when searching by business name. Default 5."New value: +"Maximum matches; default 10 and maximum 25."
  6. 294 tool updates
    • First observedair_quality
    • First observedbank_health_report
    • First observedbeneficial_owner_screen
    • First observedbls_indicator
    • First observedbls_series
    • First observedbook_details
    • First observedbook_fulltext_search
    • First observedbook_get_text
    • First observedbook_search
    • First observedbook_status
    • First observedbounce_scanner
    • First observedcandlestick_signals
    • First observedcargo_crate
    • First observedcarrier_monitor_recheck
    • First observedcarrier_vetting_batch
    • First observedcarrier_vetting_evidence_pack
    • First observedcarrier_vetting_score
    • First observedcaselaw_case_details
    • First observedcaselaw_citation_lookup
    • First observedcaselaw_opinion_text
    • First observedcaselaw_search
    • First observedcdc_dataset_query
    • First observedcdc_drug_overdose_deaths
    • First observedcdc_excess_deaths_covid
    • First observedcdc_flu_surveillance
    • First observedcdc_leading_causes_of_death
    • First observedcdc_outbreak_reports
    • First observedcdc_vaccination_coverage
    • First observedcdc_weekly_deaths_by_state
    • First observedcensus_business
    • First observedcensus_commute_employment
    • First observedcensus_demographics
    • First observedcensus_geography_lookup
    • First observedcensus_income_housing
    • First observedcensus_population
    • First observedcfpb_complaint_aggregations
    • First observedcfpb_complaint_detail
    • First observedcfpb_complaint_trends
    • First observedcfpb_search_complaints
    • First observedcfpb_state_complaints
    • First observedcfpb_suggest_company
    • First observedchemical_hazards
    • First observedchemical_lookup
    • First observedclinical_site_selector
    • First observedcms_home_health_search
    • First observedcms_hospice_search
    • First observedcms_hospital_search
    • First observedcms_nursing_home_search
    • First observedcollege_accreditation
    • First observedcollege_compare
    • First observedcollege_demographics
    • First observedcollege_metrics
    • First observedcollege_outcomes_by_program
    • First observedcollege_search
    • First observedcollege_trends
    • First observedcollege_value_score
    • First observedcompany_complaint_profile
    • First observedcompany_info
    • First observedcompany_trust_check
    • First observedcongress_bill_actions
    • First observedcongress_bill_cosponsors
    • First observedcongress_bill_details
    • First observedcongress_house_votes
    • First observedcongress_member_details
    • First observedcongress_recent_laws
    • First observedcongress_search_bills
    • First observedcongress_search_members
    • First observedcontractor_license_sources
    • First observedcontractor_multistate_route
    • First observedcorporate_ownership_tree
    • First observedcost_of_doing_business_index
    • First observedcounterparty_risk_score
    • First observedcourt_case_search
    • First observedcourt_citation_resolver
    • First observedcourt_docket_lookup
    • First observedcourt_judge_lookup
    • First observedcourt_opinion_search
    • First observedcourt_oral_argument_search
    • First observedcourt_recent_filings
    • First observedcpsc_recall_search
    • First observedcpsc_recent_recalls
    • First observedcrypto_compare
    • First observedcrypto_info
    • First observedcrypto_price
    • First observedcrypto_trending
    • First observedcve_lookup
    • First observedcve_recent
    • First observedcve_search_by_keyword
    • First observedcve_search_by_vendor
    • First observedcwe_lookup
    • First observeddisaster_declarations
    • First observeddisaster_history_summary
    • First observeddisaster_recovery_profile
    • First observedearthquake_recent
    • First observededgar_company_facts
    • First observededgar_company_lookup
    • First observededgar_filing_content
    • First observededgar_filings_by_form_type
    • First observededgar_full_text_search
    • First observededgar_insider_transactions
    • First observededgar_recent_filings
    • First observedeia_electricity_state
    • First observedeia_energy_consumption
    • First observedeia_gasoline_prices
    • First observedeia_natural_gas
    • First observedeia_oil_supply
    • First observedeia_renewable_generation
    • First observedeia_series_lookup
    • First observedenergy_market_snapshot
    • First observedentity_dossier
    • First observedentity_resolve
    • First observedenvironmental_site_risk
    • First observedepa_enforcement_search
    • First observedepa_facility_compliance
    • First observedepa_facility_details
    • First observedepa_facility_search
    • First observedepa_water_or_air_violations
    • First observedepss_score
    • First observedfacility_care_quality
    • First observedfbi_wanted
    • First observedfda_device_510k
    • First observedfda_device_recalls
    • First observedfda_drug_adverse_events
    • First observedfda_drug_lookup
    • First observedfda_drug_recalls
    • First observedfda_food_recalls
    • First observedfdic_deposits
    • First observedfdic_failures
    • First observedfdic_financials
    • First observedfdic_history
    • First observedfdic_search_institutions
    • First observedfdic_summary
    • First observedfec_candidate_details
    • First observedfec_candidate_financials
    • First observedfec_candidate_search
    • First observedfec_committee_search
    • First observedfec_independent_expenditures
    • First observedflood_zone_lookup
    • First observedfmcsa_carrier_authority
    • First observedfmcsa_carrier_compare
    • First observedfmcsa_carrier_lookup
    • First observedfmcsa_carrier_search
    • First observedfmcsa_safety_scores
    • First observedfred_category_series
    • First observedfred_compare
    • First observedfred_observations
    • First observedfred_quick_indicator
    • First observedfred_releases
    • First observedfred_search
    • First observedfred_series_info
    • First observedgeocode_address
    • First observedgeocode_batch
    • First observedgeocode_coordinates
    • First observedgithub_repo
    • First observedgrants_get_opportunity
    • First observedgrants_search
    • First observedhurricane_tracker
    • First observedinfluence_network_map
    • First observedip_reputation
    • First observedissuer_diligence_dossier
    • First observediv_analytics
    • First observedkev_status_check
    • First observedkyb_aml_evidence_case_file
    • First observedlane_location_risk_pack
    • First observedlei_hierarchy
    • First observedlei_lookup
    • First observedlist_tool_groups
    • First observedload_tender_fraud_shield
    • First observedlobbying_contributions
    • First observedlobbying_detail
    • First observedlobbying_lobbyists
    • First observedlobbying_registrants
    • First observedlobbying_search
    • First observedlocal_search
    • First observedlocation_risk_report
    • First observedmarket_size_estimator
    • First observednfip_flood_claims
    • First observednonprofit_details
    • First observednonprofit_lookup_ein
    • First observednonprofit_search_location
    • First observednonprofit_search_name
    • First observednonprofit_status
    • First observednpi_lookup
    • First observednpi_search_organization
    • First observednpi_search_provider
    • First observednpi_search_specialty
    • First observednpm_package
    • First observednrel_alt_fuel_station_detail
    • First observednrel_alt_fuel_stations
    • First observednrel_pvwatts
    • First observednrel_solar_resource
    • First observednrel_utility_rates
    • First observednws_active_alerts
    • First observedok_wells_search
    • First observedopen_payments_by_company
    • First observedopen_payments_by_specialty
    • First observedopen_payments_national_summary
    • First observedopen_payments_ownership
    • First observedopen_payments_research
    • First observedopen_payments_search
    • First observedopen_payments_state_totals
    • First observedopen_payments_top
    • First observedoptions_chain
    • First observedoptions_history_atm_iv
    • First observedoptions_history_chain
    • First observedoptions_history_contract
    • First observedoptions_history_volhist
    • First observedorg_funding_profile
    • First observedpackage_track
    • First observedpaper_details
    • First observedpaper_fulltext_search
    • First observedpaper_get_text
    • First observedpaper_search
    • First observedpaper_status
    • First observedparcel_coverage
    • First observedparcel_details
    • First observedparcel_sales_history
    • First observedparcel_search
    • First observedpatent_assignee_search
    • First observedpatent_details
    • First observedpatent_inventor_search
    • First observedpatent_recent
    • First observedpatent_search
    • First observedprescriber_ties_profile
    • First observedprice_to_rent_ratio
    • First observedproduct_liability_screen
    • First observedproperty_lookup
    • First observedproperty_search_area
    • First observedproperty_search_owner
    • First observedproperty_value_history
    • First observedpypi_package
    • First observedrdap_domain
    • First observedrdap_ip
    • First observedrealestate_home_values
    • First observedrealestate_market_screen
    • First observedrealestate_rents
    • First observedrealestate_search
    • First observedrealestate_status
    • First observedrealestate_trend
    • First observedrecall_screen
    • First observedrecreation_facility_detail
    • First observedrecreation_nearby
    • First observedrecreation_search_campsites
    • First observedrecreation_search_facilities
    • First observedrecreation_search_recareas
    • First observedreg_cfr_search
    • First observedreg_cfr_section
    • First observedreg_cfr_titles
    • First observedreg_document
    • First observedreg_search
    • First observedresolve_entity
    • First observedsanctions_get_changes
    • First observedsanctions_get_entity
    • First observedsanctions_screen_address
    • First observedsanctions_screen_batch
    • First observedsanctions_screen_entity
    • First observedsanctions_search_alias
    • First observedsanctions_status_summary
    • First observedsearch_available_datasets
    • First observedsecurity_exposure
    • First observedshipper_receiver_counterparty_pack
    • First observedspending_award_details
    • First observedspending_recipient_summary
    • First observedspending_search_awards
    • First observedstock_compare
    • First observedstock_history
    • First observedstock_quote
    • First observedstock_quote_batch
    • First observedsun_times
    • First observedsupplier_esg_scorecard
    • First observedsupport_resistance_levels
    • First observedtalent_market_brief
    • First observedtide_predictions
    • First observedtreasury_auctions
    • First observedtreasury_cash_balance
    • First observedtreasury_debt
    • First observedtreasury_exchange_rates
    • First observedtreasury_interest_rates
    • First observedtrials_details
    • First observedtrials_search
    • First observedtx_wells_near
    • First observedusgs_earthquake_detail
    • First observedusgs_earthquake_feed
    • First observedusgs_earthquake_search
    • First observedusgs_water_realtime
    • First observedvehicle_recalls
    • First observedvin_decode
    • First observedwa_contractor_verify
    • First observedwater_levels
    • First observedweather_current
    • First observedweather_forecast
    • First observedworldbank_compare
    • First observedworldbank_country_profile
    • First observedworldbank_indicator

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    B
    quality
    A
    maintenance
    MCP 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.
    345
    662 npm
    112
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    62 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.
    13 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.