Skip to main content
Glama
lzinga

US Government Open Data MCP

by lzinga

US Government Open Data MCP

MCP Server + TypeScript SDK for 40+ U.S. Government APIs

npm version npm downloads License: MIT

300+ tools covering economic, fiscal, health, education, energy, environment, lobbying, housing, patents, safety, banking, consumer protection, workplace safety, transportation, seismic, clinical trials, pharma payments, research funding, procurement, and legislative data.

20+ APIs require no key · The rest use free keys that take under a minute to get

Getting Started · API Reference · Documentation


Features

  • 300+ tools across 40+ government APIs — economic, health, legislative, financial, environmental, and more

  • Cross-referencing — built-in instructions guide the LLM to combine data from multiple agencies (e.g., FDA adverse events + lobbying spend + campaign contributions)

  • Code mode — WASM-sandboxed JavaScript execution reduces context window usage by 98-100% for large responses

  • Selective loading — load only the modules you need: --modules fred,treasury,congress

  • Dual transport — stdio for desktop clients, HTTP Stream for web/remote

  • TypeScript SDK — every API is importable as a standalone typed client, no MCP required

  • Disk-backed caching — responses cached to disk, survives restarts

  • Rate limiting + retry — token-bucket rate limiter with exponential backoff on 429/503

Related MCP server: Verilex Data

Quick Start

MCP Server

npx us-gov-open-data-mcp

Add to .vscode/mcp.json for VS Code / Copilot:

{
  "servers": {
    "us-gov-open-data": {
      "command": "npx",
      "args": ["-y", "us-gov-open-data-mcp"],
      "env": {
        "FRED_API_KEY": "your_key",
        "DATA_GOV_API_KEY": "your_key"
      }
    }
  }
}

Add to claude_desktop_config.json for Claude Desktop:

{
  "mcpServers": {
    "us-gov-open-data": {
      "command": "npx",
      "args": ["-y", "us-gov-open-data-mcp"],
      "env": {
        "FRED_API_KEY": "your_key",
        "DATA_GOV_API_KEY": "your_key"
      }
    }
  }
}

Example Prompts

Once connected, ask your AI assistant natural language questions:

Economic: "What's the current state of the U.S. economy? Show me GDP, unemployment, inflation, and interest rates."

Health: "Show me the adverse event profile for Ozempic including clinical trials, FDA reports, and pharma payments to doctors."

Legislative: "What happened with the Inflation Reduction Act? Who sponsored it, how did the vote break down by party?"

Follow the money: "Which banking PACs gave money to members of the Senate Banking Committee, and how did those members vote on banking deregulation?"

Cross-reference: "How has federal spending on healthcare changed over the last 5 years, and what health outcomes has it produced?"

TypeScript SDK

npm install us-gov-open-data-mcp
import { getObservations } from "us-gov-open-data-mcp/sdk/fred";
import { searchBills } from "us-gov-open-data-mcp/sdk/congress";

const gdp = await getObservations("GDP", { sort: "desc", limit: 5 });

No MCP server required. All functions include caching, retry, and rate limiting.

Documentation

Full documentation at lzinga.github.io/us-gov-open-data-mcp

Getting Started

MCP setup, SDK install, client configs

API Keys

Which APIs need keys, where to get them

Data Sources

All 40+ APIs grouped by category

API Reference

Auto-generated from TypeScript — every function and type

Examples

SDK code, MCP prompts, analysis showcases

Architecture

How the system works

Adding Modules

Add a new API — just create a folder

Data Sources

Category

APIs

Economic

Treasury, FRED, BLS, BEA, EIA

Legislative

Congress.gov, Federal Register, GovInfo, Regulations.gov

Financial

FEC, Senate Lobbying, SEC, FDIC, CFPB

Spending

USAspending, Open Payments

Health & Safety

CDC, FDA, CMS, ClinicalTrials.gov, NIH, NHTSA, DOL

Environment

EPA, NOAA, NREL, USGS

Justice

FBI Crime Data, DOJ News

Education

NAEP, College Scorecard, USPTO

Demographics

Census, HUD, FEMA

Other

BTS, USDA NASS, USDA FoodData, World Bank

Disclaimer

This project integrates a significant number of government APIs, many of which have large, complex, or inconsistently documented schemas. AI is used as a tool throughout this project to help parse API documentation, generate type definitions, and scaffold tool implementations — making it possible to cover this much surface area and get people access to government data faster than would otherwise be feasible. While every effort has been made to ensure accuracy, some endpoints may return unexpected results, have incomplete parameter coverage, or behave differently than documented.

This is a community-driven effort — if you find something that's broken or could be improved, please open an issue or submit a PR. Contributions that fix edge cases, improve schema accuracy, or expand coverage are especially welcome. The goal is to make U.S. government data as accessible and reliable as possible, together.

All data is sourced from official U.S. government and international APIs — the server does not generate, modify, or editorialize any data.

License

MIT

Available Tools

324 tools
bea_dataset_infoA
Read-only

Discover BEA datasets, parameters, and valid parameter values. Essential for exploring the BEA API before making data requests.

Actions:

  • list_datasets: List all available BEA datasets

  • list_parameters: List parameters for a dataset (requires dataset_name)

  • get_values: Get valid values for a parameter (requires dataset_name + parameter_name)

  • get_filtered_values: Get values filtered by other params (requires dataset_name + target_parameter + filters)

Datasets: NIPA, NIUnderlyingDetail, FixedAssets, MNE, GDPbyIndustry, Regional, ITA, IIP, InputOutput, UnderlyingGDPbyIndustry, IntlServTrade

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhat to retrieve: 'list_datasets', 'list_parameters', 'get_values', or 'get_filtered_values'
dataset_nameNoDataset name (required except for list_datasets). E.g. 'Regional', 'NIPA', 'GDPbyIndustry', 'ITA', 'IIP', 'MNE', 'FixedAssets', 'IntlServTrade', 'InputOutput'
parameter_nameNoParameter name (required for get_values). E.g. 'TableName', 'Year', 'GeoFips', 'LineCode', 'Frequency', 'Indicator'
target_parameterNoTarget parameter for filtered values (required for get_filtered_values). E.g. 'LineCode' to discover line codes for a given TableName
filtersNoJSON object of filter params for get_filtered_values. E.g. '{"TableName":"SAINC1"}' to get LineCode values for table SAINC1

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 and destructiveHint=false, indicating the tool is safe and idempotent. The description adds no new behavioral traits beyond confirming read-only operations (e.g., 'list', 'get values'). There is no contradiction with annotations.

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

Conciseness4/5

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

The description is front-loaded with a clear purpose statement and is reasonably concise. It includes a bullet list of actions and datasets, which is structured but slightly lengthens the text. Overall, minimal waste.

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

Completeness3/5

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

Given that there is no output schema, the description does not explicitly describe the return values or format. It implies that outputs are lists/values, but could be more explicit. The description is adequate for a discovery tool but lacks full detail on outputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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% with descriptions for all 5 parameters. The description adds example dataset names and parameter names, but does not significantly enhance understanding beyond the schema. Baseline score of 3 is appropriate given high 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 explicitly states the tool's purpose: 'Discover BEA datasets, parameters, and valid parameter values. Essential for exploring the BEA API before making data requests.' It clearly differentiates from sibling tools (specific BEA data retrieval tools) by focusing on discovery rather than 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 guidance on when to use the tool ('before making data requests') and describes each action's requirements (e.g., list_datasets requires no dataset_name, list_parameters requires dataset_name). It does not explicitly exclude alternatives, but the context makes it clear this is for exploration rather than data retrieval.

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

bea_fixed_assetsA
Read-only

Get Fixed Assets data — net stock, depreciation, and investment tables.

Covers private/government fixed assets, equipment, structures, and IP products. Annual data only, updated once per year (late August – early October).

Common tables: FAAt101 (current-cost net stock by type), FAAt201 (private equipment), FAAt401 (private nonresidential by industry), FAAt801 (current-cost depreciation). Use bea_dataset_info to discover all table names.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameNoFixedAssets table name (default: 'FAAt101'). Use bea_dataset_info to discover.
yearNoYear(s): 'LAST5' (default), 'ALL', 'X', or comma-separated years

TDQS

A4.6/5.0
Behavior5/5

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

Annotations include readOnlyHint=true, and the description uses 'Get', matching. The description adds value beyond annotations by specifying temporal constraints ('Annual data only, updated once per year') and the types of data covered (net stock, depreciation, investment). No contradiction with annotations.

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

Conciseness5/5

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

Three sentences: first states purpose, second covers scope and frequency, third provides examples and cross-reference. Front-loaded with key info, no wasted words. Efficiently 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?

Tool has 2 optional params, no output schema. Description explains table types and update frequency, which is sufficient for a data retrieval tool. Lacks details on output format, but not required given simplicity. Good for the complexity level.

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 adds meaning by listing common table names, noting default values for parameters (e.g., year default 'LAST5'), and referencing bea_dataset_info for more options. This exceeds mere schema repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get Fixed Assets data — net stock, depreciation, and investment tables.' It identifies the specific resource (Fixed Assets) and the action (Get), and lists example tables (FAAt101, etc.) to distinguish from sibling BEA tools like bea_dataset_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 provides clear context: 'Annual data only, updated once per year (late August – early October).' It also instructs to 'Use bea_dataset_info to discover all table names.' However, it does not explicitly state when not to use this tool, only implying alternative via bea_dataset_info.

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

bea_gdp_by_industryA
Read-only

Get GDP contribution by industry sector nationally from BEA GDPbyIndustry dataset.

TableID options:

  • 1: Value added by industry (default)

  • 5: Contributions to percent change in real GDP

  • 6: Value added percent shares

  • 25: Real value added by industry

Industry='ALL' returns all sectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idNoTable ID: '1' (value added, default), '5' (contributions to GDP growth), '6' (% shares), '25' (real value added)
frequencyNoFrequency: A=annual (default), Q=quarterly (not all tables)
yearNoYear(s): comma-separated or 'ALL'. Default: last 3 complete years
industryNo'ALL' (default), or specific NAICS codes: '11' (agriculture), '21' (mining), '23' (construction), '31-33' (manufacturing), '42' (wholesale), '44-45' (retail), '51' (information), '52' (finance)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description uses 'Get,' which is consistent with a read operation. The description adds value by detailing the specific tables and industry codes, providing behavioral context beyond the annotation. No contradictions are present.

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

Conciseness4/5

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

The description is concise and front-loaded with the purpose. Parameter options are listed clearly without unnecessary detail. It is appropriately sized for the tool's complexity.

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

Completeness3/5

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

Given no output schema, the description could explain the response format or pagination. It only states 'Get GDP contribution,' which is somewhat vague. While the parameter details are covered, the lack of output description leaves gaps for an agent to interpret the result 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 the baseline is 3. The description lists TableID options and industry values, but this information is already present in the schema descriptions. The description adds minimal new 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 clearly states the tool retrieves GDP contribution by industry sector nationally, using a specific verb ('Get') and resource ('GDP by industry'). The tool name and description differentiate it from sibling BEA tools like bea_gdp_by_state and bea_gdp_national by explicitly mentioning 'industry sector' and 'nationally'.

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 parameter options (TableID and industry values) but does not offer guidance on when to use this tool versus alternatives like bea_gdp_national or bea_gdp_by_state. It implies usage through parameter examples but lacks explicit context for tool selection.

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

bea_gdp_by_stateA
Read-only

Get gross domestic product for U.S. states from BEA Regional dataset.

Table options:

  • SAGDP1: State annual GDP summary (default)

  • SAGDP9: Real GDP by state

  • SQGDP1: State quarterly GDP summary

GeoFips: 'STATE' for all states, or 5-digit FIPS (e.g. '06000' for CA)

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameNoRegional table: 'SAGDP1' (annual GDP summary, default), 'SAGDP9' (real GDP), 'SQGDP1' (quarterly GDP summary)
geo_fipsNoGeography: 'STATE' (all states, default), or state FIPS + '000' (e.g. '06000' for CA, '48000' for TX)
line_codeNoLine code: '1' (all industry, default), '2' (private), '3' (government)
yearNoYear(s): 'LAST5' (default), 'LAST10', 'ALL', or comma-separated years

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, indicating safe read operation. The description does not add behavioral context beyond stating it 'gets' data, which is consistent with read-only. No mention of rate limits, authentication, or data freshness, but annotations cover the key aspect.

Agents need to know what a tool does to the world before 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 extremely concise at three sentences, with the purpose stated first, followed by a bullet-like list for table options and GeoFips. No fluff; every sentence adds specific value.

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

Completeness4/5

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

Given the tool's moderate complexity (4 parameters, no output schema), the description adequately covers the main options and geography format. However, it lacks details about the response structure or any caveats, and does not mention defaults (though schema covers them). Minor gap for completeness.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions, but the description adds value by explaining table option codes and GeoFips format with examples (e.g., '06000' for CA). This goes beyond the schema alone, providing useful context for selecting parameter 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 retrieves gross domestic product for U.S. states from BEA Regional data. It distinguishes itself from sibling tools like bea_gdp_national and bea_gdp_by_industry by specifying state-level focus and mentioning specific table options.

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 state GDP queries but does not explicitly compare to alternatives (e.g., when to use bea_gdp_national instead). It provides context on table options and GeoFips but lacks guidance on tool selection among siblings.

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

bea_gdp_nationalA
Read-only

Get U.S. national GDP data from the NIPA tables. Shows GDP, GDP growth, components (consumption, investment, government, net exports), and deflators.

Common table names:

  • T10101: GDP and major components (real)

  • T10106: GDP and major components (nominal)

  • T10111: GDP percent change

  • T20100: Personal income and its disposition

  • T30100: Government receipts and expenditures

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameNoNIPA table name (default: T10101 — Real GDP). Other: T10106 (nominal GDP), T10111 (% change), T20100 (personal income)
frequencyNoFrequency: Q=quarterly (default), A=annual, M=monthly
yearNoYear(s) to fetch. Use 'X' for all, 'LAST5' for last 5, or specific year. Default: LAST5

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the description's main behavioral disclosure is reinforced. The description adds that it shows GDP components and deflators, but does not disclose potential limitations such as data availability ranges, update frequency, or error handling. Given the annotation coverage, the description meets a minimum standard.

Agents need to know what a tool does to the world before 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 brief and front-loaded, with only three sentences plus a list of common table names. Every sentence adds value, and there is no redundant or extraneous 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?

Given the tool's complexity (multiple tables, frequencies, years), the description covers the key aspects: what data it provides, common table names, and typical usage hints. It lacks explicit mention of output format, but the description implies components. No output schema exists, so the description does enough to inform an agent. A minor gap is absence of mention of data range or filters beyond year.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 baseline is 3. The description adds value by explaining common table names (T10101, T10106, etc.) and their meanings, which goes beyond the schema's parameter descriptions. However, the defaults and enums are already in the schema, so the extra context is moderate.

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

Purpose5/5

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

The description explicitly states 'Get U.S. national GDP data from the NIPA tables' and lists the specific data shown (GDP, growth, components, deflators). It distinguishes from sibling tools like bea_gdp_by_state or bea_gdp_by_industry by specifying 'national' and referencing NIPA tables.

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 lists common table names and their meanings, implying usage for different GDP metrics. However, it does not explicitly state when to use this tool versus alternatives like bea_gdp_by_industry or bea_nipa_underlying_detail, leaving the decision to the agent without clear guidance.

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

bea_input_outputA
Read-only

Get Input-Output statistics — Make Tables, Use Tables, and Requirements tables.

Shows interrelationships between U.S. producers and users.

Use bea_dataset_info (action='get_values', dataset_name='InputOutput', parameter_name='TableID') to discover available table IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idYesTable ID (required). Use bea_dataset_info to discover available tables.
yearYesYear(s): comma-separated or 'ALL'

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds limited behavioral context, such as the specific tables involved, but does not discuss output format, pagination, or other traits. Given the annotation coverage, the description provides adequate but not exceptional 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 two sentences, with the first sentence stating the core purpose and the second providing actionable guidance. It is front-loaded and contains no unnecessary words.

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

Completeness3/5

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

The tool has no output schema, so the description's omission of return value structure is a gap. It mentions three table types but not what fields or format to expect. For a simple retrieval tool, this is adequate but not fully complete.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described, including a reference to bea_dataset_info for table_id. The description does not add meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves Input-Output statistics for Make, Use, and Requirements tables, and explains it shows interrelationships between U.S. producers and users. This provides a specific verb and resource, and the mention of sibling tool bea_dataset_info helps distinguish its 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 explicitly directs the agent to use bea_dataset_info to discover available table IDs, providing clear context on how to obtain required parameters. However, it does not explicitly exclude other BEA tools or state when not to use this tool, leaving room for ambiguity.

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

bea_international_investmentB
Read-only

Get U.S. international investment position (IIP) data.

Shows end-of-period accumulated stocks of U.S. financial assets and liabilities.

TypeOfInvestment examples:

  • FinAssetsExclFinDeriv: U.S. assets excl derivatives (default)

  • FinLiabsExclFinDeriv: U.S. liabilities excl derivatives

  • DirInvAssets: Direct investment assets

  • FinLiabsFoa: Liabilities to foreign official agencies

Component: 'Pos' (position), 'ChgPosTrans' (change from transactions), 'ChgPosPrice' (from price changes), 'ChgPosXRate' (from exchange rates)

ParametersJSON Schema
NameRequiredDescriptionDefault
type_of_investmentNo'FinAssetsExclFinDeriv' (default). Use bea_dataset_info for full list.
componentNo'Pos' (position, default), 'ChgPosTrans', 'ChgPosPrice', 'ChgPosXRate', or 'All'
frequencyNo'A' (annual, default), 'QNSA' (quarterly not seasonally adjusted)
yearNoYear(s): 'ALL' (default), or comma-separated years

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description's 'shows' and 'Get' align with that. No additional behavioral details (e.g., data freshness, pagination, rate limits) are provided beyond what 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.

Conciseness4/5

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

The description is front-loaded with purpose and uses bullet points for examples. It is reasonably concise, though could trim some redundancy with schema descriptions.

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

Completeness2/5

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

Lacks any description of the output format or structure (no output schema). For a data retrieval tool, this is a notable gap. The list of component examples helps, but completeness is low given the absence of return value 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%; the description adds example values but does not significantly enhance meaning beyond the schema. For high coverage, 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 clearly states 'Get U.S. international investment position (IIP) data' and specifies 'end-of-period accumulated stocks'. This verb+resource pairs well with sibling tools like bea_international_transactions, which deals with flows, not stocks.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool over alternatives like bea_international_transactions or bea_intl_services_trade. The description provides parameter examples but lacks context on selection criteria or prerequisites.

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

bea_international_transactionsB
Read-only

Get U.S. international transactions (balance of payments) data.

Tracks all transactions between U.S. and foreign residents: goods/services trade, current account, financial account, capital transfers.

Indicator examples:

  • BalGds: Balance on goods (default)

  • BalServ: Balance on services

  • BalCurAcct: Current account balance

  • ExpGds/ImpGds: Exports/Imports of goods

  • PfInvAssets: Portfolio investment assets

Frequency: A=annual, QSA=quarterly seasonally adjusted, QNSA=not adjusted

ParametersJSON Schema
NameRequiredDescriptionDefault
indicatorNoTransaction type: 'BalGds' (default), 'BalServ', 'BalCurAcct', 'ExpGds', 'ImpGds'. Use bea_dataset_info for full list.
area_or_countryNo'AllCountries' (default total), or specific: 'China', 'Canada', 'Mexico', 'Japan', 'Germany'. 'All' for all area/country breakdowns.
frequencyNo'A' (annual, default), 'QSA' (quarterly SA), 'QNSA' (quarterly NSA)
yearNoYear(s): 'ALL' (default), or comma-separated years

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already set readOnlyHint=true, indicating a safe read operation. The description adds context about the data categories tracked but does not go beyond this. 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.

Conciseness4/5

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

The description is concise, front-loaded with the action, and uses a bullet list for clarity. No unnecessary words, but could be more structured.

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

Completeness3/5

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

Given four optional parameters and no output schema, the description covers the data scope and indicator examples. However, it only partially lists area/country options, leaving some ambiguity. Adequate but not 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%, so param descriptions are already provided. The description adds value by listing indicator examples but does not enrich understanding for area_or_country, frequency, or year 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 purpose: retrieving U.S. international transactions data, with specific examples of indicators. However, it does not explicitly differentiate from the sibling tool 'bea_intl_services_trade', which is more specific.

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

Usage Guidelines2/5

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

The description provides examples of indicators and frequencies but offers no guidance on when to use this tool versus alternatives like 'bea_intl_services_trade' or other BEA datasets. No exclusion criteria or context for selection.

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

bea_intl_services_tradeA
Read-only

Get U.S. international trade in services data (annual).

IMPORTANT: BEA requires either a specific TypeOfService or a specific AreaOrCountry. You cannot use 'All' for both simultaneously.

TypeOfService: 'All' (default), or specific: 'Telecom', 'Travel', 'Transport', 'Insurance', 'Financial', 'Comp', 'ChargesForTheUseOfIpNie', etc. Use bea_dataset_info to discover all values.

TradeDirection: 'All' (default), 'Exports', 'Imports', 'Balance', 'SupplementalIns'

Affiliation: 'All' (default), 'AllAffiliations', 'Affiliated', 'Unaffiliated', 'UsParents', 'UsAffiliates'

ParametersJSON Schema
NameRequiredDescriptionDefault
type_of_serviceNo'All' (default — all types). Or specific: 'Telecom', 'Travel', 'Transport', etc. Use bea_dataset_info.
trade_directionNo'All' (default), 'Exports', 'Imports', 'Balance', 'SupplementalIns'
affiliationNo'All' (default), 'AllAffiliations', 'Affiliated', 'Unaffiliated', 'UsParents', 'UsAffiliates'
area_or_countryNo'AllCountries' (default total), specific country name, or 'All' for all breakdowns.
yearNoYear(s): 'All' (default for all years), or comma-separated years

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the tool is read-only. The description adds the behavioral constraint on parameter combinations, but does not discuss error handling, rate limits, or data freshness. With annotations covering safety, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is concise and well-structured: a one-sentence purpose, followed by a clear note, then bullet-like lists of values. Every sentence adds value 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 input parameters well but lacks information about the return format or data structure, especially given no output schema. For a complex data retrieval tool, this is a gap, though the cross-reference to bea_dataset_info helps.

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%, but the description adds meaning by providing valid value examples for TypeOfService, TradeDirection, and Affiliation, and the critical interplay constraint between TypeOfService and AreaOrCountry, which is not captured in individual schema 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 states 'Get U.S. international trade in services data (annual)' with a specific verb and resource. It does not explicitly distinguish from siblings like bea_international_transactions, but the name and context make the purpose clear.

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

Usage Guidelines4/5

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

The description provides a crucial constraint: 'BEA requires either a specific TypeOfService or a specific AreaOrCountry. You cannot use All for both simultaneously.' It also references bea_dataset_info for discovering values. However, it does not compare with alternative tools.

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

bea_multinational_enterprisesA
Read-only

Get data on Direct Investment (DI) and Activities of Multinational Enterprises (AMNE).

DirectionOfInvestment (required):

  • 'Outward': U.S. investment abroad / foreign affiliates

  • 'Inward': Foreign investment in U.S. / U.S. affiliates

  • 'State': U.S. affiliates at state level (AMNE only)

  • 'Parent': U.S. parent enterprises (AMNE only)

Classification (required): 'Country', 'Industry', 'CountryByIndustry'

For AMNE stats, also set ownership_level ('0'=majority-owned, '1'=all) and non_bank_affiliates_only ('0'=both, '1'=nonbank only).

ParametersJSON Schema
NameRequiredDescriptionDefault
direction_of_investmentYes'Outward', 'Inward', 'State', or 'Parent'
classificationYes'Country', 'Industry', or 'CountryByIndustry'
yearYesYear(s): comma-separated or 'ALL'
ownership_levelNo'0' (majority-owned only), '1' (all affiliates). Required for AMNE stats.
non_bank_affiliates_onlyNo'0' (bank and nonbank), '1' (nonbank only). Required for AMNE stats.
series_idNoSeries IDs (comma-separated) or '0' for all. Use bea_dataset_info for list.
countryNo3-digit country code(s) or 'all'. '000' for total of all countries.
industryNo4-digit NAICS industry code(s) or 'all'. '0000' for all-industries total.
stateNo2-digit state FIPS or 'all'. Only for Direction='State'.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, so the tool is read-only. The description adds valuable behavioral context about parameter dependencies (e.g., ownership_level and non_bank_affiliates_only required for AMNE stats) and explains the meaning of each direction and classification value. No contradictions.

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 well-structured with bullet points and clear parameter explanations. It is front-loaded with the core purpose. At ~150 words, it is reasonably concise, though some parameter details could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 has 9 parameters and no output schema, the description covers key concepts (direction, classification, AMNE-specific params) but lacks examples or guidance on combining parameters. It references bea_dataset_info for series IDs, which helps. Overall adequate for a moderately complex tool.

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?

The input schema already has 100% parameter descriptions, but the description adds significant value by explaining the allowed values for direction_of_investment and classification, and clarifying when ownership_level and non_bank_affiliates_only are needed. This goes beyond the schema's basic 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 starts with a clear verb and resource: 'Get data on Direct Investment (DI) and Activities of Multinational Enterprises (AMNE).' It is distinct from sibling tools like bea_gdp_by_industry or bea_fixed_assets, which focus on other economic data. The parameter list further clarifies the scope.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternative BEA datasets. It provides parameter guidance (e.g., ownership_level required for AMNE stats), but no direct comparison or exclusion criteria for sibling tools. Usage context is implied.

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

bea_nipa_underlying_detailA
Read-only

Get NIPA underlying detail data — more granular national account breakdowns.

BEA caution: these detailed estimates are lower quality than published aggregates.

Common tables: U20305 (PCE current $), U70205S (auto sales/production monthly), U001A (GDP), U20304 (PCE by type). Use bea_dataset_info to discover all tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameNoNIUnderlyingDetail table (default: 'U20305'). Use bea_dataset_info to discover tables.
frequencyNoA=annual (default), Q=quarterly, M=monthly
yearNoYear(s): 'LAST5' (default), 'ALL', 'X', or comma-separated years

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 the description adds important behavioral context: the BEA caution that 'these detailed estimates are lower quality than published aggregates.' This goes beyond annotations by disclosing data quality concerns.

Agents need to know what a tool does to the world before 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: purpose, quality warning, and concrete examples. It is front-loaded with the main action and avoids any 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 tool's moderate complexity (3 parameters, no output schema), the description covers purpose, data quality, and discovery path. It could optionally mention output format or typical use cases, but the provided information is 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%, but the description adds value by listing common table names, explaining frequency codes (A, Q, M), and clarifying year options (LAST5, ALL, X). This supplements the schema's brief parameter 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 starts with 'Get NIPA underlying detail data — more granular national account breakdowns.' This clearly states the verb (Get) and the resource (NIPA underlying detail data), and distinguishes from sibling tools like bea_gdp_national by emphasizing 'more granular' and 'underlying 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 description provides context by mentioning common tables and directing users to bea_dataset_info for discovery. However, it does not explicitly state when to use this tool vs. alternatives (e.g., when aggregates suffice) or when not to use it, which would strengthen guidance.

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

bea_personal_incomeA
Read-only

Get personal income data by state from BEA Regional dataset.

Table options:

  • SAINC1: Personal income summary (income, population, per capita) — default

  • SAINC3: Per capita personal income only

  • SAINC4: Personal income by major component (wages, dividends, transfers)

LineCode for SAINC1: 1=personal income, 2=population, 3=per capita income (default) LineCode for SAINC4: 1=total, 50=wages, 45=dividends/interest/rent, 47=transfer receipts

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameNo'SAINC1' (personal income summary, default), 'SAINC3' (per capita only), 'SAINC4' (by component)
geo_fipsNo'STATE' (all states, default), or state FIPS + '000'. 'COUNTY' for all counties, 'MSA' for all metro areas.
line_codeNoSAINC1: '3' (per capita, default), '1' (personal income), '2' (population). SAINC4: '50' (wages), '45' (property income), '47' (transfers)
yearNoYear(s): 'LAST5' (default), 'ALL', or comma-separated years

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, so the agent knows it is safe. The description adds table and line code details but does not disclose behavioral traits like rate limits, authentication, or response structure. It provides moderate 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.

Conciseness4/5

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

The description is front-loaded with the purpose and uses a structured layout for table and line code options. It is slightly verbose but generally concise and well-organized.

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 input parameters well but lacks information about the output format or how to interpret the data. No output schema exists, so the description should compensate; it does not, leaving a gap for agent understanding of return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% coverage with detailed descriptions for all parameters. The description repeats some schema info but adds examples. Since schema coverage is high, baseline is 3; the description does not significantly enhance 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 clearly states it gets personal income data by state from the BEA Regional dataset, with specific table options and line codes. It distinguishes itself from sibling tools like bea_gdp_by_state by focusing on personal income.

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 listing table options and defaults, but it does not explicitly state when to use this tool versus alternatives (e.g., other BEA tools). No when-not-to-use guidance or exclusions are provided.

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

bea_underlying_gdp_by_industryA
Read-only

Get Underlying GDP by Industry — more industry detail than the main GDPbyIndustry dataset.

Annual data only, starting from 1997. BEA caution: quality of these detailed estimates is lower than published aggregates.

Use bea_dataset_info to discover valid TableIDs and Industry codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_idNoTable ID (default: '210' for value added). Use bea_dataset_info to discover.
yearNoYear(s): comma-separated, 'ALL', or default last 3 years
industryNo'ALL' (default) or specific NAICS industry codes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds behavioral context: 'Annual data only, starting from 1997' and 'BEA caution: quality of these detailed estimates is lower than published aggregates.' This goes beyond annotations, although return format or pagination are not described.

Agents need to know what a tool does to the world before 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 sentences, each adding essential information: purpose, data constraints, quality note, and discovery guidance. No filler, well-structured.

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 simplicity (3 parameters, no output schema), the description covers purpose, sibling differentiation, data constraints, quality, and parameter discovery. It references a helper tool, making it complete for an agent to use correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by stating default table_id '210' for value added and directing users to bea_dataset_info for valid codes. It also clarifies the year parameter applies to annual data starting from 1997.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get Underlying GDP by Industry' and explicitly distinguishes it from the sibling 'bea_gdp_by_industry' by saying 'more industry detail than the main GDPbyIndustry dataset.' This provides a specific verb, resource, and scope.

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 provides explicit guidance: 'Annual data only, starting from 1997' and 'Use bea_dataset_info to discover valid TableIDs and Industry codes.' It also implies when to use (more detailed data) and not to use (lower quality, or when higher quality aggregates are needed) by contrasting with the main dataset.

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

bls_cpi_breakdownA
Read-only

Get a breakdown of Consumer Price Index by component — food, shelter, energy, medical care, transportation, etc. Shows which categories are driving inflation.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_yearNoStart year (default: 2 years ago)
end_yearNoEnd year (default: current year)

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds no further behavioral traits beyond purpose, such as pagination, date constraints, or data limits. It does not contradict annotations but adds minimal 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?

The description is two sentences (24 words), directly stating the purpose and output. It is front-loaded and contains no extraneous information, earning its place.

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

Completeness4/5

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

For a simple read-only tool with two optional parameters and no output schema, the description adequately explains the purpose and what the output reveals (components driving inflation). It could optionally mention that data is returned for the specified years, but the current level is mostly complete.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters (start_year, end_year). The description does not add meaning beyond the schema, but given high coverage, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves a breakdown of the Consumer Price Index by components such as food, shelter, energy, etc., and indicates it shows which categories are driving inflation. This specific verb-resource combination distinguishes it from sibling BLS tools like bls_employment_by_industry or bls_series_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?

The description implies the tool should be used when a component-level breakdown of CPI is needed, but it does not explicitly state when to use this tool versus alternatives (e.g., bls_series_data for specific series). No when-not-to-use or exclusions are provided.

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

bls_employment_by_industryA
Read-only

Get employment numbers broken down by major industry sector. Shows which sectors are growing or shrinking.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_yearNoStart year (default: 3 years ago)
end_yearNoEnd year (default: current year)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description does not contradict. However, the description adds no behavioral context 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 sentences, front-loaded with the main action, with no redundant 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 low-complexity tool with zero required params and no output schema, the description covers the purpose and insight 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 coverage is 100%, and the schema describes start_year and end_year with defaults. The description does not add meaningful parameter information beyond the schema.

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

Purpose5/5

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

The description states a specific action ('Get employment numbers') and resource ('by major industry sector'), and adds the growth/shrinkage insight, clearly distinguishing it from siblings like bls_cpi_breakdown.

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 usage for industry employment trends but does not explicitly state when not to use or compare to other BLS tools like bls_search_series.

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

bls_search_seriesA
Read-only

Look up popular BLS series IDs by topic. BLS doesn't have a search API, so this provides curated series IDs for common topics.

Topics: employment, unemployment, wages, cpi, cpi_components, ppi, productivity, jolts, state_employment

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTopic to look up: 'employment', 'unemployment', 'wages', 'cpi', 'cpi_components', 'ppi', 'productivity', 'jolts', 'state_employment'
stateNoTwo-letter state code for state-level data (e.g., 'CA', 'TX')

TDQS

A4/5.0
Behavior4/5

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

Adds context beyond readOnlyHint by explaining the curated nature and limitation of no search API. No contradiction with annotations.

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

Conciseness5/5

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

Three concise sentences, front-loaded with verb and resource, 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?

Adequately explains purpose and limitation, but lacks details about return format (e.g., list of IDs with descriptions) since 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%; description lists topics matching schema but adds no extra detail about parameters like format or usage hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it looks up popular BLS series IDs by topic, distinguishing it from data-fetching tools like bls_series_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?

Provides context (BLS lacks a search API) and lists topics, but does not explicitly state when to avoid using it or mention alternatives like bls_series_data.

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

bls_series_dataA
Read-only

Fetch time series data from the Bureau of Labor Statistics. Returns monthly/quarterly/annual observations for employment, wages, prices, and more.

Popular series IDs:

  • CES0000000001: Total nonfarm employment (thousands)

  • LNS14000000: Unemployment rate

  • CUUR0000SA0: CPI-U All Items

  • CES0500000003: Average hourly earnings, total private

  • JTS000000000000000JOR: Job openings rate (JOLTS)

  • PRS85006092: Nonfarm business labor productivity

Series ID prefixes: CES (jobs by industry), LNS (unemployment), CU (CPI), WP (PPI), OE (wages), JT (JOLTS)

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idsYesComma-separated BLS series IDs (max 50). Example: 'CES0000000001,LNS14000000,CUUR0000SA0'
start_yearNoStart year (default: 3 years ago). Max 20 year range with API key, 10 without.
end_yearNoEnd year (default: current year)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, which is consistent. The description adds that it returns monthly/quarterly/annual observations and lists popular series, but it does not mention rate limits, authentication requirements, error handling, or the response structure. The date range constraints are only in the schema parameter descriptions, not the main tool description.

Agents need to know what a tool does to the world before 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 and well-structured: a clear purpose statement followed by a bulleted list of popular series IDs and prefix explanations. Every sentence provides useful information without redundancy.

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

Completeness2/5

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

Given the complexity of BLS data and the absence of an output schema, the description should explain the return format (e.g., JSON fields) and mention any authentication or API key requirements. It does not cover these, leaving agents with incomplete information for correct tool 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 covers 100% of parameters with descriptions. The tool description adds value by providing popular series IDs and explaining series ID prefixes, which aids in parameter usage. The schema already includes examples, so the description is helpful but not critical.

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 fetches time series data from the BLS and lists popular series IDs and prefixes. However, it does not explicitly differentiate from sibling tools like bls_employment_by_industry or bls_cpi_breakdown, which could be used for more specific BLS queries.

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 examples of when to use specific series IDs (e.g., CES for employment, CU for CPI) and implies it is the general BLS series data tool, but it lacks explicit guidance on when to use this tool versus alternatives on the same server.

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

bts_border_crossingsA
Read-only

Get border crossing data at U.S. ports of entry: trucks, personal vehicles, pedestrians, train passengers, containers. Covers U.S.-Mexico and U.S.-Canada borders. Monthly data by port, state, and measure type.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoState full name: 'Texas', 'California', 'New York'
borderNoBorder
port_nameNoPort of entry name: 'El Paso', 'San Ysidro', 'Detroit'
measureNoMeasure type: 'Trucks' (Commercial trucks), 'Personal Vehicles' (Personal vehicles (cars)), 'Pedestrians' (Foot traffic), 'Train Passengers' (Rail passengers), 'Rail Containers Loaded' (Rail freight containers (loaded)), 'Rail Containers Empty' (Rail freight containers (empty)), 'Buses' (Bus crossings)
limitNoMax results (default 20)

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, so the tool is read-only. The description adds value by specifying the data is monthly and covers specific borders and measure types, which is not in annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main action and scope. Every word adds value 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?

Despite no output schema, the description explains the returned data types, borders, and frequency. It adequately covers what the tool provides for a data retrieval function.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. The tool description mentions 'monthly data' but adds little meaning beyond what the schema provides, so 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 states the tool retrieves border crossing data at U.S. ports of entry, listing specific measure types and coverage of US-Mexico and US-Canada borders. This differentiates it from sibling tools which cover other topics.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites or exclusions.

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

bts_transport_statsA
Read-only

Get Monthly Transportation Statistics — 50+ national indicators including: • Airline passenger traffic and on-time performance % • Transit ridership, highway vehicle miles • Rail freight, Amtrak ridership and on-time % • Truck tonnage, fuel prices, vehicle sales • Transportation Services Index (freight, passenger, combined) • Border crossing summaries (trucks, persons) • Safety fatalities (air, rail) Monthly data going back to 1947 for some series.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNoStart date: '2020-01-01'
end_dateNoEnd date: '2024-12-31'
limitNoMonths of data (default 24 = 2 years)

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. The description adds value by detailing the data scope (monthly, historical since 1947) and categories. However, it does not disclose return format, pagination, or any potential restrictions beyond the annotation.

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 and uses bullet points for clarity. It is slightly verbose with the long list but remains well-structured and easy to scan.

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

Completeness3/5

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

Given the absence of an output schema, the description should explain return values. It provides comprehensive context on available data but omits details on response format or 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 coverage is 100%. The description adds context about monthly data and historical depth but does not significantly enhance parameter meaning beyond the schema's own 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 the tool provides monthly transportation statistics with a specific verb 'Get' and lists 50+ national indicators across various categories, distinguishing it from sibling tools like bts_border_crossings.

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

Usage Guidelines3/5

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

The description does not provide explicit when-to-use or alternatives guidance. It implies usage for broad transportation data but lacks direction on when to use this over other BTS tools or similar datasets.

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

calc_contract_ratesA
Read-only

Get all ceiling rates for a specific GSA MAS contract by its contract number (IDV PIID). Shows all labor categories and rates awarded under that contract.

ParametersJSON Schema
NameRequiredDescriptionDefault
contract_numberYesGSA contract number (IDV PIID) - e.g. 'GS10F0303V', 'GS35F0581X'
page_sizeNoMax results (default 100)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, so description aligns. Description adds that it shows all labor categories and rates, but lacks details on pagination behavior or error 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 sentences, no filler, front-loads purpose. Every sentence adds value.

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

Completeness4/5

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

Adequate for a simple read tool with full schema coverage and annotations. Covers what the tool does but could detail page_size default and response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 baseline is 3. Description adds minor value by explaining contract_number as 'IDV PIID' but does not extend beyond schema documentation.

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

Purpose4/5

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

Description uses verb 'Get' and specifies resource 'ceiling rates for a specific GSA MAS contract' by contract number. It is clear about what it does but does not differentiate from sibling tools like calc_search_rates.

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-to-use guidance. Usage is implied (when you have a contract number and need rates), but no alternatives or exclusions are mentioned.

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

calc_search_ratesB
Read-only

Search GSA CALC+ ceiling rates for federal labor categories. Find awarded hourly rates on GSA MAS professional services contracts. Search by keyword (wildcard across labor category, vendor, contract), exact field match, or browse with filters. Useful for market research, IGCEs, and competitive pricing. Data refreshed daily.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoWildcard keyword search across labor category, vendor name, and contract number (2 char min) - e.g. 'software engineer', 'Booz', 'GS10F'
searchNoExact field match as 'field:value' - e.g. 'labor_category:Engineer II', 'vendor_name:Deloitte', 'idv_piid:GS10F0303V'
education_levelNoEducation filter: 'HS', 'AA', 'BA', 'MA', 'PHD'. Use pipe for multiple: 'BA|MA'
experience_rangeNoExperience range as 'min,max' years - e.g. '3,10' or '5,20'
min_years_experienceNoExact minimum years - e.g. '5'
price_rangeNoHourly rate range as 'min,max' dollars - e.g. '50,150'
worksiteNoWorksite: 'Contractor', 'Customer', 'Both'
business_sizeNoBusiness size: 'S' (Small Business), 'O' (Other than Small Business)
security_clearanceNoSecurity clearance required: 'yes' or 'no'
sinNoGSA SIN (Special Item Number) - e.g. '541330ENG', '541620'
categoryNoService category - e.g. 'Professional Services', 'Facilities'
subcategoryNoService subcategory - e.g. 'IT Services', 'Engineering'
orderingNoSort field: 'labor_category', 'current_price', 'education_level', 'keywords', 'certifications', 'min_years_experience', 'vendor_name', 'schedule'. Default: current_price
sortNoSort direction (default: asc)
pageNoPage number (default 1)
page_sizeNoResults per page (default 20)

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, which the description aligns with. The description adds 'Data refreshed daily' as a useful behavioral detail. However, it does not discuss rate limits, pagination behavior beyond default parameters, or maximum result size, which would be helpful.

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

Conciseness4/5

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

The description is concise at three sentences, front-loaded with the main purpose, and includes use cases. It avoids unnecessary details, though it could be slightly more structured with explicit separation of search modes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 16 parameters and no output schema, the description provides a good overview of functionality, use cases, and data freshness. It implies pagination via parameters but does not explicitly describe the response format, which is acceptable since there is no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not significantly augment the parameter meanings beyond what is already in the schema; it reiterates keyword and exact search methods that are already documented.

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

Purpose4/5

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

The description clearly states it searches GSA CALC+ ceiling rates for federal labor categories, with a specific verb and resource. It mentions use cases for market research and IGCEs. However, it does not differentiate from sibling tools like calc_contract_rates or calc_suggest, which could lead to confusion.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description only states general use cases ('market research, IGCEs, competitive pricing') but does not compare with siblings or mention 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.

calc_suggestA
Read-only

Autocomplete/suggest values for labor categories, vendor names, or contract numbers in GSA CALC+ data. Useful for finding exact values to use in calc_search_rates. Uses 'contains' matching (2 char min).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesField to suggest values for
prefixYesSearch prefix (2 character minimum) - e.g. 'soft' for software categories, 'Booz' for Booz Allen

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true. The description adds behavioral details: uses 'contains' matching and requires 2 character minimum, which goes beyond what annotations convey, though it doesn't discuss pagination or result 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?

Three concise sentences, no redundant information. Purpose is front-loaded, with usage hints and behavior details efficiently included.

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 2-parameter tool with no output schema, the description fully covers purpose, usage, and behavioral constraints. It also connects to sibling tool calc_search_rates, providing sufficient context 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 already covers both parameters with descriptions (100% coverage). The description adds examples for prefix values but does not provide significant additional 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?

Clearly states the tool provides autocomplete/suggest values for three specific fields (labor categories, vendor names, contract numbers) in GSA CALC+ data, and distinguishes itself from sibling tools like calc_search_rates by indicating its preparatory role.

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 the tool is useful for finding exact values to use in calc_search_rates, giving clear usage context. Mentions 'contains' matching and 2 character minimum, but no explicit when-not-to-use scenarios.

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

cdc_birth_indicatorsA
Read-only

Get quarterly provisional birth indicators: fertility rates, teen birth rates, \npreterm birth rates, cesarean delivery rates, low birthweight — by race/ethnicity.\nTopics: 'General Fertility', 'Teen Birth', 'Preterm', 'Cesarean', 'Low Birthweight', 'NICU', 'Medicaid'

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNo'General Fertility', 'Teen Birth', 'Preterm', 'Cesarean', 'Low Birthweight', 'NICU', 'Medicaid'
race_ethnicityNo'All races and origins', 'Hispanic', 'Non-Hispanic Black', 'Non-Hispanic White', 'Non-Hispanic Asian'
limitNoMax records (default 200)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, and the description adds that data is 'quarterly provisional', but does not disclose other behavioral traits like pagination or data source specifics.

Agents need to know what a tool does to the world before 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 brief, directly lists indicators and topics, and wastes no words.

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?

Without an output schema, the description should explain return format (e.g., records with fields) but does not, leaving some incompleteness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 merely replicates parameter choices, adding no deeper 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 clearly states it retrieves 'quarterly provisional birth indicators' and lists specific indicators and topics, differentiating it from sibling CDC tools focused on mortality or other health metrics.

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 for birth indicators but lacks explicit guidance on when to use this tool versus alternatives or any prerequisites.

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

cdc_causes_of_deathA
Read-only

Get leading causes of death in the U.S. by state and year. Data from 1999–2017. Causes include heart disease, cancer, kidney disease, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoFull state name: 'New York', 'California', 'Texas'. Omit for all states
yearNoYear (1999–2017). Omit for all years
limitNoMax records (default 200)

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. Description adds data range and example causes but no additional behavioral traits (e.g., pagination, rate limits, or processing time). Adequate 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.

Conciseness5/5

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

Two sentences, each earning its place. First communicates purpose, second adds data range and examples. No redundancy or excess.

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

Completeness4/5

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

Tool is simple; description covers data source, time range, and examples. No output schema but return values are likely straightforward. Might slightly benefit from clarifying 'top' or 'leading' criteria, but generally 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?

Input schema covers all 3 parameters with descriptions (100% coverage). Description does not add extra meaning beyond what the schema provides. 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?

Clear verb 'Get', specific resource 'leading causes of death', scope 'U.S. by state and year'. Distinguishes from sibling CDC tools by focusing on leading causes. Includes data range and examples.

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 data range (1999–2017) and example causes, but lacks explicit guidance on when to use this tool vs. other death-related CDC tools like cdc_mortality_rates. No when-not-to-use or alternatives mentioned.

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

cdc_covidA
Read-only

Get COVID-19 weekly case and death counts by state (data through early 2023). States use two-letter abbreviations: 'NY', 'CA', 'TX'.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state abbreviation: 'NY', 'CA', 'TX'
limitNoMax records (default 200)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, and the description aligns with 'Get'. It adds useful context like data recency and state abbreviation format, but does not disclose behavior for missing parameters, default limit, or pagination. The description complements annotations but leaves gaps.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose and key details (state codes, date range). No extraneous information.

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

Completeness2/5

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

No output schema exists, and the description does not describe the return format (e.g., fields, data structure). It also fails to differentiate from the similar sibling cdc_weekly_deaths or clarify behavior when no state is provided. This leaves agents guessing about the response.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both state and limit. The description partially reinforces the state parameter but offers no new insight beyond the schema. With full schema coverage, baseline is 3; no added 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 states the verb 'Get', the resource 'COVID-19 weekly case and death counts', and the scope 'by state'. It also notes the data timeframe (through early 2023) and provides state format examples, effectively distinguishing it from sibling tools like cdc_weekly_deaths.

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 implicitly suggests use for COVID-19 case/death data but does not explicitly state when to use this tool versus alternatives like cdc_weekly_deaths or other CDC tools. No exclusionary language or direct comparison is provided.

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

cdc_death_rates_historicalA
Read-only

Get age-adjusted death rates for major causes since 1900.\nCauses: 'Heart Disease', 'Cancer', 'Stroke', 'Unintentional injuries', 'CLRD' (chronic lower respiratory diseases).\nGreat for long-term trend analysis — 120+ years of data.

ParametersJSON Schema
NameRequiredDescriptionDefault
causeNoCause of death. Omit for all causes.
start_yearNoStart year (earliest: 1900)
end_yearNoEnd year (latest: ~2017)
limitNoMax records (default 200)

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates safe read-only behavior, and the description adds context about age-adjustment and historical scope. However, it does not disclose data source, update frequency, or return format beyond what is implied.

Agents need to know what a tool does to the world before 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 sentence clearly states the purpose, and the second provides a concise cause list and a usage hint. Highly 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?

Given the tool's simplicity and full schema coverage, the description is nearly complete. It lacks mention of output format or data source, but the context of historical death rates and trend analysis is well 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 100%, so the baseline is 3. The description lists the cause enum and implies year ranges, but adds no detail beyond what the schema provides. Parameter semantics are adequate but not enriched.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves age-adjusted death rates for major causes since 1900, with a specific verb and resource. It lists the exact causes and highlights the 120+ year data range, distinguishing it from siblings like cdc_mortality_rates or cdc_causes_of_death.

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

Usage Guidelines3/5

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

The description implies usage for long-term trend analysis but gives no explicit when-not-to-use or alternatives. It's helpful but lacks guidance on when to choose this over other CDC tools.

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

cdc_disabilityB
Read-only

Get disability prevalence by state and type from BRFSS survey. Types: 'Any Disability', 'Mobility Disability', 'Cognitive Disability', 'Hearing Disability', 'Vision Disability', 'Self-care Disability', 'Independent Living Disability', 'No Disability'

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'NY', 'CA'. Omit for all.
disability_typeNo'Any Disability', 'Mobility Disability', 'Cognitive Disability', 'Hearing Disability', 'Vision Disability', 'Self-care Disability', 'Independent Living Disability'
limitNoMax records (default 200)

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, so the read-only nature is clear. The description adds that the data comes from the BRFSS survey, providing a bit more context. However, it does not disclose other behavioral traits such as rate limits, data freshness, or pagination 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 extremely concise: two sentences with no wasted words. It is front-loaded with the main purpose and then lists the types. 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 the tool's simplicity and full schema coverage, the description is adequate. It explains what data is retrieved. However, there is no output schema, so mentioning the structure of the response (e.g., prevalence percentages) would 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 description coverage is 100%, so the baseline is 3. The description lists the disability types, but this information is already present in the schema's disability_type parameter description. No additional meaning is added 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 states the tool retrieves disability prevalence by state and type from the BRFSS survey. It specifies the verb 'Get' and the resource 'disability prevalence'. It does not explicitly differentiate from other CDC tools, but the name and description make the purpose clear.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or when not to use it. For example, it does not clarify if this tool is superior to other CDC tools for disability data.

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

cdc_drug_overdoseA
Read-only

Get drug poisoning/overdose mortality by state (1999–2016).\nIncludes death rates by state, sex, race, and age group. Critical for opioid crisis analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoFull state name: 'West Virginia', 'Ohio', 'New Hampshire'. Omit for all.
yearNoYear (1999–2016)
sexNoSex filter
limitNoMax records (default 200)

TDQS

A3.5/5.0
Behavior3/5

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

The description says 'Get', which aligns with the readOnlyHint annotation. No additional behavioral details (e.g., data source, update frequency, restrictions) beyond what annotations already provide. No contradictions.

Agents need to know what a tool does to the world before 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 that effectively convey the tool's purpose and key information. No unnecessary words or repetition.

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

Completeness3/5

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

The description mentions 'death rates' but does not clarify the output structure (e.g., whether it returns counts, rates by population, or raw numbers). No output schema is provided, so more detail on return format would improve completeness. Adequate for a simple query 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%, with each parameter having a description. The description adds little extra meaning, only listing the dimensions ('state, sex, race, and age group') which are already covered by schema parameters. 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 explicitly states 'Get drug poisoning/overdose mortality by state' and details dimensions (state, sex, race, age group), clearly differentiating it from other CDC tools. It also provides context ('Critical for opioid crisis analysis').

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as other CDC mortality tools (e.g., cdc_causes_of_death, cdc_mortality_rates). The description mentions opioid crisis but does not exclude use cases or provide selection criteria.

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

cdc_life_expectancyA
Read-only

Get U.S. life expectancy at birth by race and sex (1900–2018). Races: 'All Races', 'Black', 'White'. Sex: 'Both Sexes', 'Male', 'Female'. Note: Data goes through 2018. For more recent mortality trends, use cdc_mortality_rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoYear (1900–2018)
raceNoRace filter
sexNoSex filter
limitNoMax records (default 200)

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already provide readOnlyHint: true, so the read-only nature is clear. The description adds the year range and data endpoint (up to 2018), but does not explain behavior like default limit or pagination beyond what schema provides.

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

Conciseness5/5

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

Very concise: three short sentences. First sentence states purpose, second lists allowed values, third provides usage guidance. No superfluous 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?

Given the simple query tool with full schema coverage and readOnly annotation, the description is mostly complete. However, it does not mention the limit parameter's default or behavior, and no output schema is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% description coverage; each parameter is already described. The description repeats the enum values and year range, which are already in the schema. Adds no new parameter meaning 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 'Get U.S. life expectancy at birth by race and sex (1900–2018)', which includes a specific verb and resource. It also lists the allowed values for race and sex, and notes the year range, distinguishing it from the sibling tool cdc_mortality_rates.

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 advises when to use this tool versus alternatives with 'Note: Data goes through 2018. For more recent mortality trends, use cdc_mortality_rates.' Also lists the valid enum values for race and sex, clarifying filtering options.

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

cdc_mortality_ratesA
Read-only

Get provisional age-adjusted death rates by cause, sex, and state (quarterly, 2020–present). Causes: 'All causes', 'Heart disease', 'Cancer', 'COVID-19', 'Drug overdose', 'Suicide', etc. Returns rate_overall, rate_sex_female, rate_sex_male, and per-state rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
quarterNoQuarter: '2024 Q4', '2025 Q1'. Omit for all.
causeNo'All causes', 'Heart disease', 'Cancer', 'COVID-19', 'Drug overdose', 'Suicide', 'Diabetes', 'Alzheimer disease'
rate_typeNoRate type (default: Age-adjusted)
limitNoMax records (default 200)

TDQS

A4/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. The description adds behavioral context by specifying it returns 'provisional' age-adjusted rates and lists the return fields (rate_overall, sex-specific, per-state). This helps agents understand the data composition without contradicting annotations.

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

Conciseness5/5

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

Two sentences with no wasted words. The first sentence captures the core action and scope, the second lists available causes and return fields. Information is 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 100% schema coverage and readOnlyHint annotation, the description adequately conveys the tool's purpose and output. It could be improved by explicitly distinguishing from sibling mortality tools and clarifying 'provisional' data limitations, but overall it is sufficient for agent 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?

The input schema covers all 4 parameters with descriptions (100% coverage). The description adds value by listing example causes and the return fields, but does not provide new semantic details for quarter, rate_type, or limit 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?

The description clearly states the tool retrieves 'provisional age-adjusted death rates by cause, sex, and state' with a specific time range (2020–present). It lists example causes and return fields, distinguishing it from sibling tools like cdc_death_rates_historical which likely have different scopes.

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 quarterly mortality breakdowns but does not explicitly state when to use this tool over alternatives like cdc_death_rates_historical or cdc_causes_of_death. No guidance on prerequisites or exclusions is provided.

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

cdc_nutrition_obesityA
Read-only

Get adult obesity, physical inactivity, and fruit/vegetable consumption by state from BRFSS.\nTopics: 'Obesity', 'Physical Activity', 'Fruits and Vegetables'. Data by state, race, age, income, education.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'NY', 'CA', 'TX'. Omit for all.
topicNo'Obesity', 'Physical Activity', 'Fruits and Vegetables'
limitNoMax records (default 200)

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, so the tool is understood as read-only. The description adds context about the data source (BRFSS) and demographic breakdown, but does not disclose additional behavioral traits 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, front-loaded with purpose, no redundant words. Efficiently communicates the tool's function and scope.

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

Completeness3/5

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

No output schema is provided, so the description should hint at output structure. It mentions the data topics and demographic breakdown but lacks explicit field names or return format. Adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all three parameters. The description lists topics but does not add significant meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves adult obesity, physical inactivity, and fruit/vegetable consumption data by state from BRFSS, with topics listed. It distinguishes from sibling CDC tools like cdc_covid by specifying the health indicator niche and data source.

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 for obtaining nutrition/obesity data but does not explicitly state when to use this tool versus alternatives like cdc_query. No when-not-to-use or prerequisite conditions are provided.

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

cdc_places_cityA
Read-only

Get city-level health indicators from CDC PLACES — obesity, diabetes, smoking, depression, sleep, blood pressure, mental health, and 30+ more measures for every U.S. city with population > 50,000. Each row contains ALL measures for a city as separate columns (e.g. obesity_crudeprev, diabetes_crudeprev).

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'NY', 'CA', 'TX'
cityNoCity name (partial match): 'Los Angeles', 'Chicago'
limitNoMax records (default 200)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, which is consistent. The description adds value by explaining output structure (each row contains ALL measures as separate columns), which goes beyond annotations. No contradictions.

Agents need to know what a tool does to the world before 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, followed by output structure. No extraneous information; 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?

The description covers purpose, scope, data content, and output shape, which is sufficient given the moderate complexity and absence of output schema. Minor omissions like pagination or default limit do not significantly hinder understanding.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions for state, city, and limit. The description does not add additional parameter details beyond the schema, so 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 it gets city-level health indicators from CDC PLACES, specifically listing measures like obesity, diabetes, smoking, etc., and scopes to U.S. cities >50,000. This distinguishes it from sibling tools like cdc_places_health.

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 does not provide guidance on when to use this tool vs alternatives. It does not mention exclusions, prerequisites, or comparisons with other CDC tools, making it harder for an agent to select appropriately.

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

cdc_places_healthA
Read-only

Get county-level health indicators from CDC PLACES (BRFSS-based estimates). Measures: OBESITY, DIABETES, CSMOKING (smoking), BINGE (binge drinking), BPHIGH (high BP), DEPRESSION, SLEEP (short sleep), CHD (heart disease), COPD, CANCER, STROKE, ARTHRITIS, CASTHMA (asthma), MHLTH (mental distress), PHLTH (physical distress), LPA (physical inactivity), ACCESS2 (no health insurance), DENTAL, CHECKUP, KIDNEY, HIGHCHOL, TEETHLOST, FOODINSECU (food insecurity), LONELINESS, HOUSINSECU (housing insecurity) Returns crude prevalence (%) by county.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'NY', 'CA', 'TX'. Omit for all.
measureNoMeasure ID: 'OBESITY', 'DIABETES', 'CSMOKING', 'DEPRESSION', 'BINGE', 'SLEEP', 'BPHIGH', 'LPA', 'ACCESS2', 'FOODINSECU', 'LONELINESS', 'HOUSINSECU'
limitNoMax records (default 200)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description aligns with 'Get county-level health indicators'. No contradictions. The description adds context about measures and returns crude prevalence, but behavioral traits are adequately covered by annotations.

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

Conciseness4/5

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

The description is efficiently structured with purpose first, then a detailed but necessary list of measures. It is not overly verbose, though the list is long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complexity of available measures and no output schema, the description adequately explains the return format (crude prevalence by county). It is complete for a data query tool.

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

Parameters4/5

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

Input schema has 100% coverage with descriptions for all three parameters. The description adds value by listing all possible measure IDs beyond what the schema's enum-like description provides, enhancing usability.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it retrieves county-level health indicators from CDC PLACES, listing many specific measures. It distinguishes from sibling tools like cdc_places_city, which focus on city-level 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?

The description implies use for county health data but does not explicitly state when to choose this over alternatives like cdc_query or other CDC tools. No exclusions or comparative guidance provided.

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

cdc_queryB
Read-only

Custom query against any CDC dataset using SODA syntax. Datasets: bi63-dtpu (death 1999–2017), w9j2-ggv5 (life expectancy), 489q-934x (mortality rates), swc5-untb (PLACES county), dxpw-cm5u (PLACES city), pwn4-m3yp (COVID), r8kw-7aab (weekly deaths), s2qv-b27b (disability), xbxb-epbu (drug overdose), hn4x-zwk7 (nutrition/obesity), 6rkc-nb2q (historical death rates), 76vv-a7x8 (birth indicators)

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesDataset ID, e.g. 'bi63-dtpu'
whereNoSODA $where clause: "year = '2021' AND state = 'New York'"
selectNoSODA $select: 'year, state, deaths'
orderNoSODA $order: 'year DESC'
groupNoSODA $group: 'year'
limitNoMax rows (default 1000)

TDQS

B3.1/5.0
Behavior2/5

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

The description does not disclose behavioral traits beyond annotations (readOnlyHint=true). It lacks details on response format, pagination, or rate limits, which would be valuable 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.

Conciseness5/5

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

Two sentences: first states purpose and syntax, second lists datasets. Front-loaded and efficient with no wasted words.

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, so description could hint at return format but does not. Dataset list is helpful, but the tool's complexity (6 params, custom queries) warrants more 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 the schema already explains each parameter. The description adds the dataset list but no further parameter 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?

Description clearly states the tool performs custom queries using SODA syntax on CDC datasets and lists specific ones. However, it does not explicitly distinguish itself from sibling tools that focus on individual datasets.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus the many CDC-specific sibling tools. It does not mention that dedicated tools may be simpler for common lookups.

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

cdc_weekly_deathsA
Read-only

Get weekly provisional death counts by state — COVID-19, pneumonia, influenza, and total deaths. THIS IS THE MOST CURRENT CDC MORTALITY DATA — updated weekly, covers 2020–present. Includes percent_of_expected_deaths to detect excess mortality.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoFull state name: 'New York', 'California'. Omit for all.
yearNoYear (2020–present). Omit for all.
limitNoMax records (default 200)

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true. The description adds valuable behavioral context: data is provisional, updated weekly, covers 2020-present, and includes excess mortality metric. 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 two sentences plus a line, conveying key information without redundancy. The all-caps sentence is somewhat shouty but still concise. 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?

No output schema is provided, and the description does not explain the response structure beyond mentioning death categories and percent_of_expected. For a simple data retrieval tool, this may suffice, but more detail on output format would enhance 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?

Input schema has 100% description coverage for its three parameters (state, year, limit), so the schema already provides necessary semantics. The description does not add any parameter-specific details beyond what the schema offers.

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 retrieves weekly provisional death counts by state for specific causes (COVID-19, pneumonia, influenza, total). It uses a specific verb 'Get' and identifies the resource. However, it does not explicitly differentiate from sibling CDC mortality tools, which limits clarity.

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 mentions that the data is the most current and includes percent_of_expected_deaths for excess mortality detection, giving a hint of when to use it. But it provides no explicit guidance on when not to use it or alternatives among the many sibling tools.

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

census_populationA
Read-only

Get population data for U.S. states using the American Community Survey. Quick shortcut — for more flexibility use census_query directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoACS year (default: 2023). Range: 2005-2023.
stateNoTwo-digit FIPS state code, e.g. '06' (CA), '48' (TX), '36' (NY). Omit or '*' for all.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already include readOnlyHint=true. Description adds no additional behavioral context beyond being a 'quick shortcut', but 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?

Two sentences, concise and front-loaded with purpose and usage guidance. No unnecessary words.

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, and description does not specify the structure of returned data. For a simple tool, it may be adequate but could be improved by mentioning return fields.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. The description does not add extra meaning beyond confirming the purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it retrieves population data for US states via ACS, and distinguishes from sibling census_query by noting it's a quick shortcut.

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 when to use this tool (quick population query) and when to use alternative (census_query for more flexibility).

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

census_queryA
Read-only

Query the U.S. Census Bureau Data API. Supports ACS, Decennial Census, Population Estimates, Economic Census, and more. Returns data for specified variables and geography.

Common datasets: '2023/acs/acs1' (1yr), '2023/acs/acs5' (5yr), '2020/dec/pl' (Decennial), '2023/pep/population' Common variables: NAME, B01001_001E (population), B19013_001E (median income), B25077_001E (home value), B01002_001E (median age)

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetYesCensus dataset path, e.g. '2023/acs/acs1', '2023/acs/acs5', '2020/dec/pl'
variablesYesComma-separated variable names. Always include NAME. Example: 'NAME,B01001_001E,B19013_001E'
for_geoYesGeography level and filter. Examples: 'state:*' (all states), 'state:06' (CA), 'county:*'
in_geoNoParent geography for nested queries. Example: 'state:06' to get counties in CA

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, which the description does not contradict. The description adds helpful examples of datasets and variables but does not disclose other behavioral traits like response format, pagination, or potential errors. Bar is lowered by annotations, but still room for more 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?

The description is front-loaded with the core purpose and provides practical examples in a structured list. It is concise enough without being too terse, though the examples could be integrated more tightly.

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

Completeness3/5

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

The tool has no output schema and 4 parameters, making it moderately complex. The description covers input examples but omits details about the return format (e.g., JSON, CSV) or error handling, which would help agents understand the full behavior.

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?

Input schema provides 100% coverage with descriptions for all parameters. The description adds value by including concrete examples for dataset, variables, and for_geo, which enriches the semantic understanding beyond the schema alone.

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 queries the U.S. Census Bureau Data API and lists supported datasets. It distinguishes from sibling tools like census_population and census_search_variables by being the general-purpose query tool, but does not explicitly differentiate.

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

Usage Guidelines3/5

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

The description provides examples of common datasets and variables, implying usage context. However, it does not explicitly state when to use this tool versus siblings like census_population or census_search_variables, nor does it offer any exclusions or prerequisites.

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

census_search_variablesA
Read-only

Search for Census variable names/codes by keyword. Helps discover what data is available in a given dataset. Returns variable IDs you can use with census_query.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetYesCensus dataset path, e.g. '2023/acs/acs1'
keywordYesKeyword to search for, e.g. 'income', 'poverty', 'housing', 'education'
max_resultsNoMaximum results (default: 20)

TDQS

A4/5.0
Behavior3/5

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

The description does not contradict annotations (readOnlyHint: true) and clarifies it is a search operation. However, it adds little beyond the annotation: no mention of rate limits, pagination, or other behavioral traits. Annotations already cover the read-only aspect.

Agents need to know what a tool does to the world before 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, front-loaded with the core action, and avoids redundancy. Every sentence adds value.

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

Completeness4/5

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

For a simple search tool with no output schema, the description explains what the tool does and how the output connects to census_query. It is adequate, though it could mention any default sorting or result format.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 three parameters (dataset, keyword, max_results) are described in the input schema. The description adds no additional meaning beyond the schema descriptions, so baseline score 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 'Search for Census variable names/codes by keyword' and explains the outcome: 'Returns variable IDs you can use with census_query'. It distinguishes from sibling tool census_query (which uses the IDs) and other 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 hints at usage by stating results can be used with census_query, and mentions discovering data in a given dataset. However, it does not explicitly state when to use this tool versus alternatives like search_datasets or other sibling search tools.

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-only

Get complaint counts grouped by a field (product, company, state, issue, etc.). Useful for ranking companies by complaint volume, identifying top issues, or comparing states. Aggregation fields: 'product', 'company', 'state', 'issue', 'company_response', 'timely', 'submitted_via', 'tags'.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesField to group by
productNoFilter by product: 'Mortgage', 'Debt collection', etc.
companyNoFilter by company: 'Wells Fargo', 'Bank of America', etc.
stateNoFilter by state: 'CA', 'TX', 'NY'
issueNoFilter by issue type
date_received_minNoStart date (YYYY-MM-DD)
date_received_maxNoEnd date (YYYY-MM-DD)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to re-state safety. The description adds that results are grouped counts, but does not disclose any additional behavioral traits (e.g., pagination, limits). With annotations present, the description adds some but not extensive 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 concise sentences: first states purpose, second gives use cases, third lists aggregation fields. No wasted words, key information is front-loaded.

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

Completeness4/5

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

The tool is simple; description covers the main aggregation functionality and filtering options. However, it does not explicitly state the output format (e.g., list of {field_value, count}), which may slightly hinder an agent's understanding of the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameters. The description lists possible field values (matching the enum) and gives examples of filters, but does not add significant meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get complaint counts grouped by a field' and lists specific aggregation fields. It distinguishes from sibling tools like cfpb_search_complaints that return individual records.

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

Usage Guidelines4/5

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

The description provides concrete use cases ('ranking companies by complaint volume, identifying top issues, comparing states'), implying when to use aggregation. However, it does not explicitly name alternatives or 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.

cfpb_complaint_detailA
Read-only

Get full details for a specific complaint by its Complaint ID. Returns all fields: product, issue, company, narrative (if consented), response, dates, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
complaint_idYesCFPB Complaint ID number

TDQS

A4.2/5.0
Behavior4/5

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

Adds context beyond readOnlyHint by noting that the narrative field requires consent; 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?

Extremely concise: two sentences, front-loaded with purpose, no extraneous 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?

Covers output fields well despite no output schema; provides sufficient detail for agent to understand returned data.

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

Parameters3/5

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

Schema provides adequate description of complaint_id; description does not add significant new information beyond reuse of 'Complaint ID'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it retrieves full details for a specific complaint by Complaint ID. Distinguishes from sibling tools like search complaints and 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?

Implies usage when a specific complaint ID is available, but does not explicitly mention alternatives like searching when ID is unknown.

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-only

Search the CFPB consumer complaint database (13M+ records). Find complaints by company, product, state, issue, date, or keyword. Returns individual complaints with company responses. Company names auto-retry with fuzzy search if exact match fails (e.g. 'Wells Fargo' will find 'WELLS FARGO & COMPANY'). Products: 'Mortgage', 'Debt collection', 'Credit card or prepaid card', 'Checking or savings account', 'Student loan', 'Vehicle loan or lease', 'Credit reporting, credit repair services, or other personal consumer reports'.

ParametersJSON Schema
NameRequiredDescriptionDefault
search_termNoFree-text search across complaint narratives
productNoFinancial product: 'Mortgage', 'Debt collection', 'Credit card or prepaid card', etc.
companyNoCompany name: 'Wells Fargo', 'Bank of America', 'Equifax', etc.
stateNoTwo-letter state code: 'CA', 'TX', 'NY'
issueNoIssue type: 'Incorrect information on your report', 'Loan modification', etc.
date_received_minNoStart date (YYYY-MM-DD): '2020-01-01'
date_received_maxNoEnd date (YYYY-MM-DD): '2024-12-31'
has_narrativeNoOnly complaints with consumer narrative text (true/false)
submitted_viaNoSubmission channel
timelyNoWhether company responded timely
zip_codeNoFilter by ZIP code
tagsNoTag filter
sizeNoResults per page (default 10, max 100)
sortNoSort order

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, indicating a non-destructive operation. The description adds value by disclosing fuzzy search behavior for company names (auto-retry on exact match failure) and listing specific product values. This goes beyond the minimal 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 concise, front-loading the primary purpose and key capabilities. Each sentence adds value (record count, search fields, auto-retry, product list). No extraneous information, though it could be slightly more structured (e.g., bullet points for parameters).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search tool with 14 parameters and no output schema, the description covers purpose, key searchable fields, and a notable behavior (fuzzy search). It does not detail pagination, error handling, or default behavior for size, but the schema covers these. Overall, it provides sufficient context for an AI agent to understand tool capabilities.

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 enhances understanding by providing concrete examples (e.g., 'Wells Fargo' for company, product list) and clarifying fuzzy search logic for company. This adds meaningful context beyond the schema's 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 states the tool searches the CFPB consumer complaint database and specifies searchable fields (company, product, state, etc.). It mentions the record count and return type (individual complaints). However, it does not explicitly differentiate from sibling tools like cfpb_complaint_aggregations or cfpb_complaint_detail, which focus on aggregations or specific details.

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 implicit guidance on usage (search by various criteria) but does not explicitly state when to use this tool versus alternatives. No mention of when not to use or reference to related tools like cfpb_complaint_detail for single-complaint lookup or cfpb_complaint_aggregations for summary stats.

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-only

Get complaint information broken down by state (geographic view). Returns complaint counts and data for each state. Useful for maps and state comparisons. Applies the same filters as search (product, company, date, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoFilter by product: 'Mortgage', 'Debt collection', etc.
companyNoFilter by company: 'Wells Fargo', etc.
issueNoFilter by issue type
date_received_minNoStart date (YYYY-MM-DD)
date_received_maxNoEnd date (YYYY-MM-DD)
tagsNoTag filter

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, so the description's claim of returning data is consistent. The addition that filters mirror search adds behavioral context without contradicting annotations. No hidden destructive behavior is implied.

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 concise sentences front-load the main purpose. No extraneous information. Could be slightly more structured but is efficient for its scope.

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

Completeness3/5

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

While the description covers purpose and filters, it omits return format details (e.g., list of states, fields) and potential limitations. Given no output schema and moderate complexity, the description is adequate but not fully complete.

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

Parameters3/5

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

With 100% schema coverage, the baseline is 3. The description only reinforces that parameters are filters, adding no new semantics beyond the schema's parameter 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 it returns complaint data broken down by state, specifying 'geographic view' and 'complaint counts and data for each state'. This distinct purpose differentiates it from sibling tools like cfpb_search_complaints (individual complaints) and cfpb_complaint_aggregations (other aggregations).

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 mentions usefulness for 'maps and state comparisons' and that it applies the same filters as search, providing some context. However, it lacks explicit guidance on when not to use or direct references to alternatives, leaving room for confusion among sibling tools.

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-only

Autocomplete/suggest company names from the CFPB complaint database. Useful for finding the exact company name before searching complaints.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesPartial company name to search: 'wells', 'bank of', 'equi'
sizeNoMax suggestions (default 10)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating safe reading. The description adds that the tool uses the CFPB complaint database, which is helpful context. No additional behavioral details (like rate limits or authentication) are provided, but the annotations cover the key safety aspect. Score reflects adequate disclosure 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 extremely concise: two sentences with no unnecessary words. The first sentence Front-loads the core purpose, and the second adds usage guidance. Every phrase adds value.

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

Completeness4/5

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

For a simple autocomplete tool, the description combined with schema and annotations covers the essential information. It lacks explicit mention of the output format (expected list of company names), but this is often implicit for suggest tools. Sibling tools provide contrast. Slight gap in not describing return 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?

Input schema has 100% description coverage, with clear examples for 'text' (e.g., 'wells', 'bank of') and default for 'size'. The tool description adds no additional parameter meaning beyond what the schema already provides. Baseline score of 3 is appropriate given the schema's completeness.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Autocomplete/suggest company names from the CFPB complaint database.' It uses a specific verb ('suggest') and specifies the resource (company names) and database. It also distinguishes from sibling complaint search tools by noting it helps find the exact company name before searching.

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: 'Useful for finding the exact company name before searching complaints.' This implies when to use it (as a preparatory step) and indirectly differentiates from search tools. It lacks explicit 'when not to use' statements, but the context is sufficient for an agent to infer appropriate usage.

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

clear_cacheA

Clear cached API responses to force fresh data on next query. Specify a source name or omit to clear all.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoModule name to clear: bea, bls, bts, cdc, census, cfpb, clinical-trials, cms, college-scorecard, congress, doj-news, dol, eia, epa, epa-aqs, fbi, fda, fdic, fec, federal-register, fema, fred, govinfo, gsa-calc, hud, naep, nhtsa, nih, noaa, nrel, open-payments, regulations, sec, senate-lobbying, treasury, usaspending, usda-fooddata, usda-nass, usgs, uspto, world-bank. Omit for all.

TDQS

A4.5/5.0
Behavior4/5

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

Description aligns with annotation readOnlyHint=false by clearly indicating destructive action (clearing cache). Adds context about forcing fresh data, but no further details on side effects or 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. Front-loaded with action and result.

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?

Tool is simple with one optional parameter; description fully covers purpose, usage, and parameter semantics. No output schema needed.

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 provides list of source names; description adds meaning by explaining that omitting the parameter clears all. Schema coverage is 100%, but description enhances usability.

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

Purpose5/5

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

Clearly states it clears cached API responses to force fresh data. Distinguishes from sibling data retrieval tools by being a cache management utility.

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?

Describes when to use (force fresh data) and how (specify source or omit for all). Lacks explicit when-not or alternatives, but context is sufficient.

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

clinical_trials_by_locationA
Read-only

Search for clinical trials near a geographic location. Uses the ClinicalTrials.gov geo-distance filter to find trials within a radius of a latitude/longitude point. Combine with condition or intervention filters to find specific trials nearby.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude of the search center: 38.9072 (Washington DC)
longitudeYesLongitude of the search center: -77.0369 (Washington DC)
distanceNoSearch radius with unit: '50mi' (default), '100km'
conditionNoFilter by condition: 'diabetes', 'breast cancer'
interventionNoFilter by intervention: 'pembrolizumab'
statusNoFilter by status (default: RECRUITING)
page_sizeNoResults per page (default 10)

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the description's mention of using ClinicalTrials.gov geo-distance filter adds minor behavioral context but does not disclose any additional traits like rate limits or data freshness.

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

Conciseness5/5

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

The description is three sentences, each serving a clear purpose: state function, explain filter mechanism, suggest usage. No unnecessary words, front-loaded with key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 absence of an output schema, the description covers the tool's core function and usage context. It lacks details on return format, but the search purpose is well 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%, so the description does not add value beyond what the schema already provides for parameters. The suggestion to combine filters is already implied by 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 'Search for clinical trials near a geographic location', using a specific verb and resource. It distinguishes from sibling tools like clinical_trials_search by emphasizing the location aspect.

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 the geo-distance filter and suggests combining with condition or intervention filters, giving context for use. However, it does not explicitly state when not to use this tool or mention alternatives.

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

clinical_trials_detailA
Read-only

Get full details for a specific clinical trial by NCT ID. Returns protocol, eligibility, arms/interventions, design, locations, contacts, and oversight info. Use the fields param to request only specific sections (reduces response size).

ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesClinicalTrials.gov NCT ID: 'NCT06000000'
fieldsNoPipe-separated fields to return: 'NCTId|BriefTitle|EligibilityModule'. Omit for full study.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations include readOnlyHint=true, confirming the tool is read-only. The description adds value by explaining the 'fields' parameter's behavior (reducing response size), which is a performance-relevant trait.

Agents need to know what a tool does to the world before 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 long, each serving a distinct purpose: stating purpose, listing returns, and providing usage guidance. It is front-loaded and contains no superfluous 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?

Given the absence of an output schema, the description lists the major sections returned, providing adequate context. However, it could be more specific about the structure of the response. Still, it is sufficient for an agent to understand what to expect.

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 covers both parameters with descriptions (100% coverage). The tool's description adds context beyond the schema by framing the 'fields' parameter as a way to request 'specific sections', which is a slight improvement over the schema's technical description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('Get full details for a specific clinical trial by NCT ID') and enumerates the types of information returned (protocol, eligibility, arms/interventions, design, locations, contacts, oversight info). This distinguishes it from sibling tools like clinical_trials_search, which returns summaries, and clinical_trials_results, which likely returns result 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 advises using the 'fields' parameter to request only specific sections to reduce response size. While it does not mention when to avoid this tool in favor of siblings, the context is clear for a detail retrieval by ID.

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

clinical_trials_enumsA
Read-only

List all valid enum values for ClinicalTrials.gov data fields. Returns every enum type (Status, Phase, StudyType, InterventionType, etc.) with all valid values. Use as a reference when building search filters or understanding field values.

ParametersJSON Schema
NameRequiredDescriptionDefault
enum_typeNoFilter to a specific enum type: 'Status', 'Phase', 'InterventionType'. Omit for all enums.

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, and the description reinforces a read operation. It adds detail on output: 'Returns every enum type (Status, Phase, StudyType, et cetera) with all valid values.' No contradictions. Sufficiently transparent for its simple 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 with front-loaded purpose. Every sentence adds value: purpose, output, usage. Efficient but could be slightly tighter (e.g., combine output and usage).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the description adequately explains the output format (enum types with values). For a simple listing tool, it covers the key aspects. Could mention if response includes descriptions or counts, but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has one optional parameter 'enum_type' with a description. Schema description coverage is 100%, and the tool description essentially repeats the schema's parameter info without adding new meaning. 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 states it lists all valid enum values for ClinicalTrials.gov fields, with a specific verb 'List' and resource 'enum values'. It distinguishes from sibling tools that search or detail trials, though not explicitly contrasting.

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 usage guidance: 'Use as a reference when building search filters or understanding field values.' This tells the agent when to apply the tool, though it could mention when not to use (e.g., for actual data queries).

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

clinical_trials_field_sizesA
Read-only

Get statistics on list/array field sizes in the ClinicalTrials.gov database. Shows min/max/top sizes for array fields like Condition, Intervention, Phase. Useful for understanding data distribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoPipe-separated field names: 'Phase|Condition|InterventionName'. Omit for all.

TDQS

A3.8/5.0
Behavior4/5

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

The description is consistent with the readOnlyHint annotation, and it adds value by disclosing the output includes min/max/top sizes for array fields, providing behavioral context beyond the 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 three sentences long, front-loaded with the action, and every sentence serves a purpose—explaining what the tool does, what it shows, and its utility.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 simplicity (one optional parameter, no output schema), the description adequately covers functionality and common use cases. It could be more specific about output format, but overall it 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?

The input schema already covers the single optional 'fields' parameter with a clear description. The description does not add new semantic meaning beyond mentioning example fields, so it meets the baseline for high 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 the tool retrieves 'statistics on list/array field sizes' from ClinicalTrials.gov, citing specific fields like Condition, Intervention, Phase. It distinguishes itself from other clinical trial tools by focusing on field size distributions, though it does not explicitly differentiate from similar siblings like clinical_trials_field_values.

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 includes the phrase 'Useful for understanding data distribution,' which implies when to use the tool, but it lacks explicit guidance on when not to use it or alternatives among sibling tools.

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

clinical_trials_field_valuesB
Read-only

Get value statistics for study data fields — top values, counts, and distributions. Powerful analytics tool: find top conditions, top sponsors, phase distributions, intervention type counts. Examples: fields='Phase' shows trial count by phase; fields='Condition' shows top conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesPipe-separated field names: 'Phase', 'Condition', 'OverallStatus', 'LeadSponsorName'
typesNoFilter by field type: 'ENUM' (Enumeration field), 'STRING' (Free-text string field), 'DATE' (Date field), 'INTEGER' (Integer numeric field), 'NUMBER' (Floating-point numeric field), 'BOOLEAN' (Boolean (true/false) field)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's main behavioral addition is explaining the output (top values, counts, distributions). However, it does not disclose limitations (e.g., maximum number of values returned, handling of large datasets) or whether results are sorted. The examples hint at output form but leave ambiguity.

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

Conciseness4/5

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

The description is concise (4 sentences) with the primary purpose in the first sentence. It includes a promotional second sentence and relevant examples. Could be slightly more structured by integrating examples earlier, 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?

Given the absence of an output schema, the description partially explains returns ('top values, counts, and distributions') but lacks specifics on the format, sorting, or size limits. The optional 'types' parameter is ignored. While adequate for basic use, it leaves gaps for precise agent 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%, setting baseline at 3. The description adds value by providing concrete examples for the 'fields' parameter (e.g., 'Phase', 'Condition') and explaining its pipe-separated format. However, the optional 'types' parameter is not mentioned in the description, missing an opportunity to guide filtering.

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 retrieves value statistics (top values, counts, distributions) for clinical trial data fields, with concrete examples. It distinguishes itself from sibling tools like 'clinical_trials_search' by focusing on field-level aggregations rather than individual trials, but does not explicitly name alternatives.

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

Usage Guidelines2/5

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

The description implies usage when needing field-level distributions (e.g., top conditions, phase counts) but provides no explicit guidance on when to use this tool versus similar siblings like 'clinical_trials_enums' or 'clinical_trials_stats'. No when-not-to-use or prerequisite information.

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

clinical_trials_metadataA
Read-only

Explore the ClinicalTrials.gov study data model — field names, types, and descriptions. Use to discover available fields for the fields parameter in search/detail tools, or to build advanced filter expressions with AREA[] syntax.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_indexed_onlyNoInclude indexed-only fields (default false)
include_historic_onlyNoInclude fields only in historic data (default false)

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, so the description does not need to reiterate read-only behavior. The description adds context about the purpose (exploring the data model) but does not disclose any additional behavioral traits 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?

The description consists of two well-structured sentences, front-loading the purpose and following with usage. Every word contributes meaning with no 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 simple metadata exploration tool with well-documented optional parameters and an existing readOnlyHint annotation, the description completely covers what the agent needs to know. No output schema is necessary given the nature of the tool.

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

Parameters3/5

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

The input schema has 100% description coverage for both parameters (include_indexed_only and include_historic_only). The description does not add any extra meaning beyond what the schema already provides, 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 clearly states 'Explore the ClinicalTrials.gov study data model', specifying a concrete verb and resource. It distinguishes itself from sibling tools like clinical_trials_search by focusing on metadata discovery rather than 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 explicitly says to use this tool 'to discover available fields for the `fields` parameter in search/detail tools, or to build advanced filter expressions with AREA[] syntax'. It provides clear context, though it does not explicitly 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.

clinical_trials_resultsA
Read-only

Get posted results for a completed clinical trial by NCT ID. Returns outcome measures, adverse events (serious + other), participant flow, and baseline characteristics. Only works for trials where hasResults=true. Use clinical_trials_search with agg_filters='results:with' to find them.

ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesClinicalTrials.gov NCT ID: 'NCT00841061'

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true; description adds value by detailing the return structure (outcome measures, adverse events, etc.) and precondition for using the tool. No contradictions.

Agents need to know what a tool does to the world before 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-load purpose and contents, with third sentence covering precondition and sibling tool use. No 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?

Given one parameter, no output schema, and thorough annotations, the description fully covers purpose, contents, and usage constraints, making it complete for a data retrieval 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% for the single parameter nct_id, with schema description providing format example. Description mentions 'NCT ID' in context but doesn't add significant meaning beyond schema, meeting 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 explicitly states it gets posted results for a completed clinical trial by NCT ID, listing specific data types returned (outcome measures, adverse events, participant flow, baseline characteristics). It distinguishes from siblings by referencing preconditions and another tool.

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 states 'Only works for trials where hasResults=true' and directs to use clinical_trials_search with agg_filters='results:with' to find suitable trials, providing clear when-to-use and alternative guidance.

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

clinical_trials_size_statsA
Read-only

Get database statistics: total study count, average study JSON size, size distribution, and largest studies. Quick overview of the ClinicalTrials.gov database scope and data volume.

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 include readOnlyHint: true, indicating safe read operation. Description adds the type of output but no behavioral traits beyond that (e.g., no mention of pagination, caching, or rate limits). Since annotations cover safety profile, a score of 3 is appropriate; description adds some context but not rich behavioral detail.

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

Conciseness5/5

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

Description is two sentences, front-loaded with the main action, and contains no redundant words. Every sentence adds value, making it efficient and clear.

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 has no parameters and no output schema, the description fully conveys what the tool returns (total study count, average JSON size, size distribution, largest studies) and its purpose (quick overview of database scope and volume). No additional detail is needed for this simple tool.

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

Parameters4/5

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

Tool has no parameters (input schema empty). Schema coverage is 100% as there are no parameters to describe. Baseline for zero parameters is 4, and description adds no parameter info because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it gets database statistics (total study count, average size, size distribution, largest studies) and provides a quick overview of ClinicalTrials.gov database scope and data volume. The verb 'Get' specifies action, and the resource 'database statistics' is distinct from sibling tools that search, detail, or retrieve results.

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?

Description implies usage for a quick overview, but lacks explicit when-to-use or when-not-to-use guidance compared to sibling tools like clinical_trials_search or clinical_trials_detail. No alternatives or exclusions are mentioned, so the agent must infer context from the tool's name and focus on statistics.

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

clinical_trials_statsA
Read-only

Get trial count breakdown by recruitment status for a condition or drug/intervention. Shows how many trials are recruiting, active, completed, terminated, etc. Works for diseases ('breast cancer') AND drug names ('semaglutide', 'pembrolizumab'). Queries 8 statuses in parallel for comprehensive breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
conditionYesDisease, condition, or drug name: 'breast cancer', 'semaglutide'
search_as_drugNoSet true to search as drug/intervention instead of condition (for drug names like 'semaglutide')

TDQS

A4.3/5.0
Behavior4/5

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

Mentions parallel queries for 8 statuses, providing behavioral insight beyond the readOnlyHint annotation. No contradiction with annotations.

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

Conciseness5/5

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

Three focused sentences: purpose, output detail, and usage examples. No unnecessary 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?

Covers all key aspects: input (condition or drug), output (counts by status), and behavioral trait (parallel queries). Sufficient for user understanding given well-described schema and 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 already provides 100% description coverage for both parameters (condition and search_as_drug). Description reinforces usage but adds minimal 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?

Description clearly states it provides trial count breakdown by recruitment status for a condition or drug/intervention, distinguishing it from clinical_trials_search (individual trials) and clinical_trials_detail (specific trial 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?

Explicitly states it works for both diseases and drug names with examples ('breast cancer', 'semaglutide'), implying when to use. Does not explicitly state when not to use or name alternatives, but context is clear from sibling tools.

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

cms_hospitalsA
Read-only

Query CMS hospital data: general info, quality ratings, mortality, readmissions, infections, patient surveys, Medicare spending. Filter by state or city.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetNoHospital dataset to queryhospital_info
stateNoTwo-letter state code (e.g. CA, TX, NY)
cityNoCity name
limitNoMax results (default 50)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's behavioral transparency burden is light. It adds context about data types but does not disclose pagination, rate limits, or response format. 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?

Single, focused sentence of 16 words that efficiently captures purpose, scope, and filter criteria. No unnecessary verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 structure (4 parameters, 0 required, no output schema), the description covers the essential information: data types and filters. It could be slightly enhanced by mentioning return format or dataset enum, but is largely 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% with all parameters described. The description echoes filter capabilities (state/city) and data types, but does not add meaning beyond what the schema already provides, meeting 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?

Description uses specific verb 'Query' and resource 'CMS hospital data', enumerates data categories (general info, quality ratings, mortality, etc.) and explicitly mentions filtering by state or city. This clearly distinguishes it from sibling tools like cms_nursing_homes (nursing home focus) and general cms_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?

Description clearly indicates usage for hospital data and filtering options. However, it does not explicitly contrast with similar tools (e.g., cms_search or cms_query) or state when not to use it, leaving some ambiguity for nuanced selection.

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

cms_nursing_homesA
Read-only

Query CMS nursing home data: provider info with five-star ratings, quality measures, health deficiencies/citations. Filter by state.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetNoNursing home dataset to querynursing_home_info
stateNoTwo-letter state code
limitNoMax results (default 50)

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds that the tool is for querying data, which is consistent, but does not provide additional behavioral details such as result structure, pagination, or error handling. This is adequate 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 a single, front-loaded sentence that efficiently communicates the tool's purpose and key features. No extraneous words 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?

The description covers the tool's purpose and filtering capability. While it does not mention the limit parameter or explicitly list available datasets, the schema provides full coverage for those details. The description is sufficiently complete for an agent to understand the tool's use.

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 description coverage, the baseline is 3. The description adds value by listing the types of data (provider info, ratings, quality, deficiencies), which map to the dataset enum values and clarify the tool's capabilities beyond the enum labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 that the tool queries CMS nursing home data with specific elements (provider info, five-star ratings, quality measures, deficiencies). The tool name and description effectively differentiate it from siblings like cms_hospitals and generic query tools.

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

Usage Guidelines3/5

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

The description implies the tool should be used when nursing home data is needed, but it lacks explicit guidance on when to use this tool vs. alternatives like cms_hospitals or cms_query. No when-not 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.

cms_queryA
Read-only

General-purpose query against any CMS provider dataset by dataset identifier. Use cms_search to find available datasets and their IDs. Supports filtering by any field.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesCMS dataset identifier (e.g. 'xubh-q36u' for hospitals, '4pq5-n9py' for nursing homes) or catalog key
filter_fieldNoField name to filter on (e.g. 'state', 'city', 'provider_name')
filter_valueNoValue to filter for
limitNoMax results (default 50)
offsetNoOffset for pagination

TDQS

A3.8/5.0
Behavior3/5

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

Annotations provide readOnlyHint: true, and description says 'query' which aligns. Description adds general-purpose and filtering context but no additional behavioral details like rate limits or data freshness.

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

Conciseness5/5

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

Two concise sentences with clear front-loading of purpose and immediate guidance. No unnecessary words.

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

Completeness2/5

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

No output schema, yet description does not explain return format or pagination behavior despite supporting limit/offset. Missing critical context for a general-purpose query 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%, so description adds limited value. It mentions 'filtering by any field' which aligns with schema parameters but no new constraints or examples.

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

Purpose5/5

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

Clearly states 'General-purpose query against any CMS provider dataset by dataset identifier' with specific verb 'query' and resource 'CMS dataset'. Differentiates from specific siblings like cms_hospitals and cms_nursing_homes.

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 suggests using cms_search to find datasets and IDs. Mentions filtering support. Does not explicitly state when not to use, but implies it's for arbitrary datasets.

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

code_modeA
Read-only

Run a JavaScript processing script against any tool's output in a WASM sandbox. Calls the specified tool first, then runs your script with the raw response as DATA (string). Only your script's console.log() output enters context — typically 65-99% smaller.

USE THIS when you need specific fields, counts, or filters from a large response. DO NOT use this when you need to read and interpret the full data for cross-referencing or analysis.

The script can: JSON.parse(DATA), use loops/map/filter/reduce, Math, string ops, console.log(). The script CANNOT: access files, network, Node.js APIs, or import modules.

Example — count serious reactions for a drug: tool='fda_drug_events', tool_args={"search":"patient.drug.openfda.brand_name:aspirin","limit":100}, code='const d=JSON.parse(DATA);const data=d.data||d;const items=data.items||data.results||[];' + 'const counts={};items.forEach(r=>{const rxs=r.reactions||[];rxs.forEach(rx=>{counts[rx]=(counts[rx]||0)+1})});' + 'Object.entries(counts).sort((a,b)=>b[1]-a[1]).slice(0,10).forEach(([k,v])=>console.log(k+": "+v))'

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesName of the MCP tool to call (e.g. 'fda_drug_events', 'fred_series_data', 'congress_search_bills')
tool_argsNoArguments to pass to the tool, as a JSON object (e.g. {"search": "serious:1", "limit": 50})
codeYesJavaScript code to process the result. The tool's full response is available as DATA (string). Use JSON.parse(DATA) to parse it. Use console.log() to produce output. Only console.log output is returned — keep it concise.

TDQS

A4.7/5.0
Behavior4/5

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

Beyond readOnlyHint, description details sandbox constraints (no file/network), script capabilities, and output size reduction. No contradictions.

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?

Well-structured with front-loaded purpose, clear sections, and concise language, though the example is lengthy but necessary for clarity.

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 no output schema, the description covers all aspects: purpose, usage, capabilities, limitations, and a concrete example, making it fully actionable.

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?

Schema coverage is 100%, but description adds significant meaning: explains tool as MCP tool name, tool_args as JSON object, code as JavaScript with DATA variable, and provides a detailed example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it runs a JavaScript processing script against tool output in a WASM sandbox, distinguishing it from sibling data retrieval tools. Provides a concrete example.

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 specifies when to use (filtering, counting) and when not to use (full data cross-referencing), with clear alternatives implied.

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

congress_amendment_amendmentsA
Read-only

Get sub-amendments to a specific amendment. Shows amendments that modify the parent amendment.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
amendment_typeYesAmendment type
amendment_numberYesAmendment number
limitNoMax results (default: 50)

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, so the description's 'get' is consistent. However, the description does not add behavioral details beyond that, such as rate limits, authentication, or whether the returned data includes full amendment details or just summaries. It adequately reflects the expected safe read operation.

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

Conciseness5/5

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

The description is a single, concise sentence that efficiently conveys the tool's purpose. It is front-loaded and contains no extraneous information.

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

Completeness3/5

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

Given the lack of an output schema, the description does not specify the response format or fields. It mentions 'shows amendments that modify the parent amendment' but does not clarify whether pagination, limits, or ordering apply. The required parameters are well-documented in the schema, but the description could reinforce default behaviors like the 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?

Schema coverage is 100%, with clear descriptions for each parameter. The description does not add any extra meaning beyond what the schema provides. For example, it doesn't explain how to combine parameters or the significance of the amendment_type enum 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 retrieves sub-amendments to a specific amendment, using a specific verb 'get' and resource 'sub-amendments'. It distinguishes itself from sibling tools like 'congress_amendments' by specifying the relationship to a parent amendment.

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 (to get sub-amendments) but does not explicitly discuss alternatives or conditions when not to use. There is no guidance on how it differs from 'congress_amendments' or 'congress_amendment_details', which are closely related.

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

congress_amendment_cosponsorsA
Read-only

Get cosponsors of a specific amendment. Shows party affiliation and sponsorship details.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
amendment_typeYesAmendment type
amendment_numberYesAmendment number
limitNoMax results (default: 250)

TDQS

A3.5/5.0
Behavior4/5

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

The description adds value beyond the readOnlyHint annotation by specifying that the output shows party affiliation and sponsorship details. It is consistent with the annotation and provides useful context about the data 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 sentences long, front-loaded with the main action and key output details. Every word serves a purpose, making it highly 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?

While the description gives some output details, it lacks information on pagination, default limit, and the exact structure of the returned data. Given the absence of an output schema, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 have descriptions in the input schema, so the description does not need to add extra meaning. The baseline of 3 is appropriate, as no further parameter clarification is provided.

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 retrieves cosponsors of a specific amendment, specifying the resource and that it includes party affiliation and sponsorship details. It is well-focused, though it does not explicitly differentiate from sibling tools like congress_amendment_amendments.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as congress_bill_cosponsors or congress_amendment_details. There is no mention of prerequisites or when not to use it.

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

congress_amendment_detailsA
Read-only

Get detailed information about a specific amendment, including its actions/timeline. Requires congress number, amendment type (hamdt/samdt), and amendment number.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
amendment_typeYesAmendment type
amendment_numberYesAmendment 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. Description adds that it includes actions/timeline but doesn't disclose other traits like pagination or limits, which are minor for a 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?

Single sentence that efficiently conveys purpose and requirements. No unnecessary words.

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

Completeness4/5

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

Adequate for a simple detail retrieval with 3 required params. No output schema, but description covers core purpose. Slight gap in not explaining return format.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions. Description restates required parameters without adding new semantic value, meeting 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?

Clearly states it gets detailed information about a specific amendment including actions/timeline. Distinguishes from sibling tools like congress_amendment_text or congress_amendments.

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?

Lists required parameters (congress, amendment type, number) but doesn't explicitly contrast with sibling tools for different granularities. Implicitly clear for a detail retrieval tool.

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

congress_amendmentsA
Read-only

Search/list amendments by congress and optional type (hamdt = House, samdt = Senate, suamdt = Senate Unnumbered). Returns amendment number, type, sponsor, purpose, and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number (default: current)
amendment_typeNoAmendment type
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

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, matching the read-only nature. The description adds the return fields (number, type, sponsor, purpose, status), providing useful behavioral context beyond the schema. No mention of pagination or limits, but that is covered by the input 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 a single, well-structured sentence that conveys the purpose, key parameters, and return fields without any redundant or verbose language. Every word serves a purpose.

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?

While the description covers the core functionality, it omits mentioning optional parameters like limit, fromDateTime, and toDateTime, which are defined in the schema. An agent relying solely on the description might not be aware of the date filtering or result limits. The description could be more comprehensive.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explicitly listing the abbreviation meanings for amendment_type (hamdt, samdt, suamdt), which is not in the schema descriptions. This helps the agent understand the parameter's 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 clearly states the tool searches/lists amendments by congress and optional type, and lists the returned fields (number, type, sponsor, purpose, status). This distinguishes it from sibling tools like congress_amendment_details that focus on individual amendments.

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 to use the tool (for listing amendments) and provides examples of type values (hamdt, samdt, suamdt). However, it does not explicitly mention when not to use it or suggest alternatives, though the context of sibling tools implies those distinctions.

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

congress_amendment_textA
Read-only

Get text versions for a specific amendment (from 117th Congress onwards). Returns version types and format URLs (PDF, HTML).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number (117th onwards)
amendment_typeYesAmendment type
amendment_numberYesAmendment number

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description does not need to reiterate that. The description adds that it returns version types and format URLs, and that it is limited to 117th Congress onward, which is useful but does not significantly enhance behavioral transparency 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 a single, well-structured sentence that immediately communicates the purpose and result. No unnecessary words 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 tool that retrieves text versions, the description adequately explains the returned data (version types and format URLs) and the applicable congress range. Since there is no output schema, this provides sufficient 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?

Input schema coverage is 100%, and all parameters have descriptions. The description adds minimal additional meaning beyond the schema, only reinforcing the congress range. 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 clearly states the action ('Get text versions'), the resource ('a specific amendment'), and the output ('version types and format URLs (PDF, HTML)'). It also specifies the congress range (117th onwards), making it distinct 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 Guidelines3/5

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

The description implies when to use (when text versions of an amendment are needed) but provides no explicit guidance on when not to use or alternatives. Given the large number of congress-related siblings, more contextual guidance would be beneficial.

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-only

Get the full action history / timeline for a bill — every step from introduction through committee, floor votes, amendments, and signing. Shows recorded roll-call vote numbers when available.

Use congress_search_bills first to find the congress number, bill type, and bill number.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number (e.g., 118)
bill_typeYesBill type
bill_numberYesBill number
limitNoMax actions to return (default: 100)

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. The description adds value by specifying what the timeline includes (committee, votes, amendments) and that roll-call vote numbers appear when available. No contradictions with annotations.

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

Conciseness5/5

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

Two sentences, each serving a distinct purpose: first explains what the tool does, second provides a usage workflow. No fluff, front-loaded with core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the description gives a good sense of what is returned (list of actions with vote number when available). Could be slightly more explicit about ordering (chronological) but is largely complete for its complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description mentions the three required parameters in the usage note but does not add new semantics beyond what is 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 uses a specific verb 'Get' and clearly identifies the resource as 'full action history / timeline for a bill', listing distinct steps (introduction, committee, floor votes, amendments, signing). This differentiates it from sibling tools like congress_bill_details or congress_bill_votes.

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 'Use congress_search_bills first to find the congress number, bill type, and bill number', providing a clear prerequisite and workflow hint. However, it does not explicitly list alternatives or when to avoid this tool.

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

congress_bill_amendmentsA
Read-only

Get amendments filed on a specific bill. Shows amendment sponsors, purposes, and status. Critical for tracking how bills are modified (e.g., 'gutted and replaced').

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number
limitNoMax results (default: 50)

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, so the description adds value by mentioning the specific information returned (sponsors, purposes, status) and an example of tracking 'gutted and replaced' bills.

Agents need to know what a tool does to the world before 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, no extraneous words, and the key 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?

The description covers the tool's purpose and key outputs. It does not mention pagination or handling of large result sets, but the limit parameter is in the schema. Adequate for a straightforward data retrieval 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?

Input schema has 100% coverage for all 4 parameters. The description does not add additional semantic meaning beyond what is in the schema, so 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 'Get amendments filed on a specific bill' with specific verb and resource, and lists what is shown (sponsors, purposes, status). It distinguishes from sibling tools by focusing on amendments.

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 for tracking modifications but does not explicitly state when to use or when not to use, nor does it mention alternatives among the many sibling tools.

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

congress_bill_committeesA
Read-only

Get committees a bill was referred to, with activity dates. Shows which committees had jurisdiction and what actions they took (referral, hearings, markup, reporting).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true. The description adds behavioral context by specifying the types of data returned (committees, jurisdiction, actions), but does not disclose 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 concise sentences that front-load the purpose and add key details without 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 tool with no output schema, the description covers returned data (committees, jurisdiction, actions). It lacks mention of pagination, but the tool is 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 input schema covers all three parameters with descriptions. The description adds no further parameter semantics beyond what the schema provides, so 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 the tool retrieves committees for a bill with activity dates, jurisdiction, and actions. This distinguishes it from related tools like congress_committee_bills and 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 Guidelines3/5

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

The description implies usage for getting bill committee info but does not explicitly state when to use this tool versus alternatives or provide usage exclusions.

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-only

Get the full list of cosponsors for a bill with party affiliation and sponsorship dates. Returns individual cosponsor details unlike congress_bill_details which only provides a party breakdown summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number
limitNoMax results (default: 250)
sortNoSort order. Value can be updateDate+asc or updateDate+desc

TDQS

A3.9/5.0
Behavior3/5

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

The description adds that the tool returns individual cosponsor details including party and dates, which goes beyond the readOnlyHint annotation. However, it does not disclose potential behavioral traits like pagination, rate limits, or authorization needs. With annotations already covering read-only, the description provides moderate additional 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?

The description is two sentences long, front-loads the action, and contains no extraneous words. Every sentence earns its place by stating the primary function and differentiating from a sibling.

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

Completeness3/5

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

The tool has no output schema, so the description should ideally explain the return structure more fully. It mentions party affiliation and sponsorship dates but does not detail fields like type of cosponsor, date format, or pagination behavior. The description is adequate but not thorough for a list tool with 5 parameters.

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

Parameters3/5

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

All parameters in the input schema have descriptions (100% coverage). The tool description does not add meaning beyond what the schema already provides, such as explaining the format of dates or the default limit. According to rules, high schema coverage yields a baseline of 3, which is met.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Get the full list of cosponsors for a bill with party affiliation and sponsorship dates.' It also explicitly distinguishes from the sibling tool congress_bill_details, which provides only a party breakdown summary, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description contrasts with congress_bill_details, telling when to use this tool (for individual cosponsor details) vs the other (for party breakdown summary). It does not explicitly state when not to use, but the context is clear. A 4 is appropriate.

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-only

Get detailed information about a specific bill including sponsors, cosponsors with party breakdown, actions, committees, and current status.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number (e.g., 119, 118, 117)
bill_typeYesBill type
bill_numberYesBill number (e.g., 1, 25, 3076)

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true; description adds context on content (sponsors, actions) but no additional behavioral traits such as pagination, data freshness, or constraints. Adequate 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.

Conciseness5/5

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

Single sentence that is front-loaded with the action and specifies key content. No wasted words; efficiently conveys purpose.

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

Completeness4/5

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

Lists main fields returned but lacks mention of output format, pagination, or error handling. Given simple schema and readOnlyHint, it is nearly complete but could be more thorough.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for each parameter. Description adds no new meaning beyond implying the combination identifies a bill. 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?

Description states 'Get detailed information about a specific bill' with explicit listing of included categories (sponsors, cosponsors, actions, committees, status). This clearly differentiates from sibling tools like congress_bill_actions or congress_bill_cosponsors which cover only subsets.

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?

Implies use when comprehensive bill details are needed vs. granular endpoints. Does not explicitly state when not to use or mention alternative tools, but context is clear for a knowledgeable agent.

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

congress_bill_full_profileA
Read-only

Get a COMPLETE bill profile in ONE call — combines bill details, all cosponsors (with party breakdown), full action timeline, CRS summaries, committees, legislative subjects, text versions, related bills, and all titles. Fetches 8 endpoints in parallel. Use this instead of calling congress_bill_details + congress_bill_actions + congress_bill_summaries + congress_bill_committees + congress_bill_subjects + congress_bill_text + congress_bill_related + congress_bill_titles individually.

Ideal for: Complete legislative analysis, bill research, accountability investigations, or getting everything needed to cross-reference with FEC (who funded the sponsors), lobbying_search (who lobbied), and FRED (economic impact after passage).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number (e.g., 119, 118, 117)
bill_typeYesBill type
bill_numberYesBill number (e.g., 1, 25, 3076)

TDQS

A4.7/5.0
Behavior5/5

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

The description reveals a key behavioral trait: 'Fetches 8 endpoints in parallel', which adds value beyond the readOnlyHint annotation. It fully discloses the composite nature and scope of data returned, with no contradiction to 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, using two sentences to pack essential information. The first sentence lists all combined endpoints, and the second provides ideal use cases. Every sentence adds value, with no 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?

Despite lacking an output schema, the description enumerates all the components returned (bill details, cosponsors, actions, etc.) and outlines practical use cases. This provides sufficient context for an agent to understand the tool's scope and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 all three parameters (congress, bill_type, bill_number) with 100% description coverage, including examples. The description does not add additional semantics beyond what the schema already provides, 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 explicitly states the tool gets a 'COMPLETE bill profile in ONE call' and lists the specific endpoints combined (bill details, cosponsors, actions, summaries, etc.), clearly distinguishing it from sibling tools like congress_bill_details by saying 'Use this instead of calling 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 Guidelines5/5

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

It provides explicit guidance: 'Use this instead of calling' individual tools, and identifies ideal use cases: 'Complete legislative analysis, bill research, accountability investigations'. It also suggests cross-referencing with related tools (FEC, lobbying_search, FRED), offering clear when-to-use and when-not-to-use context.

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

congress_bill_subjectsA
Read-only

Get legislative subjects tagged on a bill, plus the primary policy area. Useful for finding all bills on a topic and for cross-referencing with lobbying data.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number
limitNoMax results (default: 100)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description does not need to repeat that. It adds context about the return value (subjects and policy area) but no additional behavioral traits such as 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?

The description is two short sentences, front-loading the purpose then providing use cases. Every sentence earns its place without unnecessary detail.

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

Completeness4/5

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

Given no output schema, the description adequately hints at return values (subjects and policy area). It provides use cases that help an agent understand when to invoke this tool among many congress siblings. Some additional detail on whether subjects are returned as a list or count would 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 description coverage is 100% with clear parameter descriptions. The description adds marginal value by explaining what the tool returns (subjects and policy area) beyond the schema, but this is not essential 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 clearly states 'Get legislative subjects tagged on a bill, plus the primary policy area', using a specific verb and resource. It distinguishes from sibling tools like congress_bill_details which focus on overall details.

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 use cases ('finding all bills on a topic and cross-referencing with lobbying data') but does not explicitly state when not to use this tool or compare it to alternatives among the many congress tools.

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

congress_bill_summariesA
Read-only

Get CRS (Congressional Research Service) summaries of a bill. These are plain-English, non-partisan summaries written by CRS analysts. Multiple versions may exist (as introduced, as reported, as passed).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number

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, so the description adds value by explaining the nature of summaries (plain-English, non-partisan) and the possibility of multiple versions. 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 two sentences, precisely written with no extraneous information. It front-loads the purpose and quickly provides key characteristics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 simplicity, no output schema, and rich sibling context, the description is complete enough. It explains what to expect (summaries, multiple versions) and all parameters 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 description coverage is 100%, so the input schema already adequately describes parameters. The description does not add further meaning beyond what is in the schema, but it is consistent and sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it retrieves CRS summaries of a bill, specifies they are plain-English and non-partisan, and notes multiple versions may exist. This precisely identifies the tool's action and distinguishes it from sibling tools like congress_bill_details or congress_bill_text.

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 implicitly indicates when to use this tool (to get summaries) but does not explicitly exclude other uses or mention alternative tools. However, the context from sibling tools provides differentiation, and the description is clear enough for an agent to decide.

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

congress_bill_textA
Read-only

Get available text versions for a bill (e.g., introduced, reported, engrossed, enrolled). Returns version types and format URLs. For full bill text content, use govinfo_bill_text.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description reveals that it returns 'version types and format URLs', adding useful behavioral detail without contradicting annotations.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose, zero filler. Every sentence adds 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?

For a tool with 3 simple parameters and no output schema, the description fully explains what the tool does and what it returns, making it complete.

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

Parameters3/5

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

With 100% schema description coverage, the schema already explains all parameters. The description adds no additional parameter semantics beyond the schema's 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?

Description clearly states 'get available text versions for a bill' with examples (introduced, reported, engrossed, enrolled) and explicitly distinguishes from sibling tool govinfo_bill_text, making the purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly tells when to use this tool (to get version types and URLs) and when to use an alternative (govinfo_bill_text for full text content), providing clear usage guidance.

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

congress_bill_titlesA
Read-only

Get all titles for a bill — short titles, official titles, display titles, and titles as they appeared in different text versions. Useful for finding the popular name of legislation (e.g., 'Inflation Reduction Act').

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number
limitNoMax results (default: 100)

TDQS

A3.5/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, so the read-only behavior is clear. However, the description does not address potential pitfalls like the 'limit' parameter (which contradicts 'get all'), authentication needs, or error scenarios. The discrepancy between 'get all' and a limit parameter reduces 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 two sentences long, front-loads the primary action, and includes a concrete example without extraneous words. 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 read-only tool with no output schema, the description explains the expected output and provides a usage example. However, it omits details about the 'limit' parameter, pagination behavior, and error handling, leaving some gaps for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 all 4 parameters with descriptions, achieving 100% coverage. The description adds value by explaining the output includes various title types, but it does not enhance parameter understanding 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 clearly states the tool retrieves all titles for a bill, enumerates specific title types (short, official, display, text version), and provides a concrete usage example ('Inflation Reduction Act'). This distinguishes it from sibling tools like congress_bill_details or congress_bill_subjects.

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 used to find popular names or multiple title variations, but it lacks explicit guidance on when to use it versus alternatives, such as when bill subjects or summaries are needed. No exclusion conditions or comparative context are provided.

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

congress_bill_votesA
Read-only

Find ALL roll-call votes on a specific bill and fetch the party-line breakdowns — the KEY tool for 'follow the money' investigations. Scans the bill's action timeline for recorded vote references, then fetches each House and Senate vote with member-level results and party tallies.

This is the critical bridge between legislation and accountability: • Bill → Votes (this tool) • Votes → Who voted how (party tallies returned here) • Who voted → Who funded them (fec_candidate_financials / fec_committee_disbursements) • Who lobbied → lobbying_search

Returns all House and Senate roll-call votes associated with the bill, with full party breakdowns.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
bill_typeYesBill type
bill_numberYesBill number

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that the tool 'scans the bill's action timeline for recorded vote references' and fetches votes with 'member-level results and party tallies.' This adds behavioral context beyond the readOnlyHint annotation. It correctly implies a read-only operation with no destructive effects, consistent with the annotation.

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 main purpose, then delves into scanning details and related tools. It is moderately concise, with no extraneous fluff. The bullet-like list of related tools could be more compact, but overall it's well-structured and efficient.

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 has only 3 parameters and no output schema, the description adequately covers input, process (scanning bill timeline), and output (House/Senate votes with party breakdowns). It also situates the tool within a broader investigation workflow by listing related tools. No gaps are apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% description coverage with minimal but clear parameter descriptions (e.g., 'Congress number', 'Bill type' with enum). The description adds context about how params identify the bill but does not elaborate on each parameter's syntax or constraints. Since the schema already covers the parameters adequately, the description provides marginal added 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 states the tool finds 'ALL roll-call votes on a specific bill and fetch the party-line breakdowns.' It specifies the exact action (find and fetch) and the resource (bill votes). It also distinguishes itself as the key tool for 'follow the money' investigations, setting it apart from sibling tools like congress_house_votes or congress_senate_votes by emphasizing its comprehensive coverage of both chambers.

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: it is the 'critical bridge between legislation and accountability' and outlines a chain of investigation (bill → votes → who voted → who funded). It implies when to use this tool (for bill vote analysis) but does not explicitly state when not to use it or mention alternatives. The guidance is strong but lacks exclusion criteria.

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

congress_bound_congressional_recordA
Read-only

Get bound Congressional Record issues — the permanent, final publication of proceedings. Filter by year, month, and day.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoYear (e.g., 1990)
monthNoMonth (1-12)
dayNoDay of month
limitNoMax results (default: 20)

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, so the description aligns. It adds minimal context beyond 'Get' and filtering, but does not disclose pagination, rate limits, or data format. With annotations present, the bar is lower, but value added is limited.

Agents need to know what a tool does to the world before 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. Front-loads the core verb and resource, then briefly lists filters. Excellent structure for quick comprehension.

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 4 optional parameters and no output schema, the description fails to explain what the output contains (e.g., list of issues with metadata). It does not mention defaults or limitations, leaving the agent guessing about the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 baseline is 3. The description only repeats that params exist for filtering, adding no additional semantics beyond the schema's descriptions of year, month, day, and 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?

The description explicitly states 'Get bound Congressional Record issues' with a clear verb and resource. It distinguishes from siblings like congress_daily_congressional_record by noting it's the 'permanent, final publication.'

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 mentions filtering by year, month, and day but provides no guidance on when to use this tool versus alternatives like congress_congressional_record or congress_daily_congressional_record. No exclusions or use cases are given.

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

congress_committee_billsA
Read-only

Get bills referred to a specific committee. Use congress_committees to find the committee system code. Useful for tracking which bills die in committee vs. get reported out.

ParametersJSON Schema
NameRequiredDescriptionDefault
chamberYesChamber
committee_codeYesCommittee system code (e.g., 'hsba00' for House Financial Services, 'ssfi00' for Senate Finance)
limitNoMax results (default: 20)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the tool's non-destructive nature is known. The description adds context about tracking bill outcomes but does not disclose any additional behavioral traits like pagination or potential rate limits. 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 two sentences, front-loaded with the core action, and free of fluff. Every part contributes meaningfully.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 simplicity and the lack of output schema, the description provides enough context for basic use. It could mention return format (e.g., list of bills), but the purpose and input 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?

With 100% schema coverage, the description adds minimal value beyond the existing parameter descriptions. It mentions an example committee code that already appears in the schema. 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 'Get bills referred to a specific committee', a specific verb-resource combo. It distinguishes from sibling tools like congress_member_bills by focusing on committee referrals. The title 'Congress: Committee Bills' further reinforces this.

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 advises using congress_committees to find the committee system code, providing helpful prerequisite guidance. It also suggests the tool's utility for tracking bill outcomes, implying when to use it. However, it lacks explicit alternatives for cases where filtering by member or other criteria is needed.

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

congress_committee_detailsA
Read-only

Get detailed information about a specific congressional committee by chamber and committee code. Returns full history, website URL, subcommittees, bill/report counts, and related communications.

ParametersJSON Schema
NameRequiredDescriptionDefault
chamberYesChamber
committee_codeYesCommittee system code (e.g., 'hspw00' for House Transportation, 'ssju00' for Senate Judiciary)

TDQS

A3.5/5.0
Behavior4/5

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

Description adds context beyond the readOnlyHint annotation by detailing what is returned (history, subcommittees, etc.). 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?

Two sentences: first sentence states purpose, second lists outputs. Efficient but could be more concise. No wasted words, but could integrate a bit.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the description adequately explains return content (history, website, subcommittees, counts, communications). Missing pagination info but acceptable for a detail 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?

Input schema covers both parameters with descriptions and example for committee_code, so the description adds no extra parameter meaning. Coverage is 100%, so 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?

Description clearly states the tool retrieves detailed info about a congressional committee by chamber and committee code, and lists specific outputs (history, website, subcommittees, counts, communications). It's specific but doesn't explicitly differentiate from sibling tools like congress_committee_full_profile or congress_committee_bills.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention prerequisites or when to choose this over other committee tools.

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

congress_committee_details_by_congressA
Read-only

Get detailed information about a committee filtered by a specific congress number. Shows membership for that specific congress vs. all-time details from congress_committee_details.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number (e.g., 119)
chamberYesChamber
committee_codeYesCommittee system code (e.g., 'hspw00')

TDQS

A4.1/5.0
Behavior4/5

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

The description aligns with the readOnlyHint annotation and adds behavioral context that the tool shows membership data for a specific congress. No contradictions exist. The description adds value beyond annotations by clarifying the scope of data returned (membership for that congress).

Agents need to know what a tool does to the world before 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, front-loads the purpose, and has zero unnecessary information. Every word adds value.

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, but the description mentions the output shows membership for that specific congress. However, it does not fully detail the structure of the response (e.g., committee name, chair, members) which would be helpful. For a simple detail tool, it is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 all three parameters. The description does not add additional parameter-level meaning beyond what the schema provides, 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?

The description clearly states the tool gets detailed committee information filtered by congress number, and explicitly distinguishes it from the sibling tool congress_committee_details which provides all-time details. The verb 'get' and resource 'committee details' are specific.

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

Usage Guidelines4/5

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

The description provides clear context on when to use this tool (for membership of a specific congress) versus the sibling tool (all-time details). It does not include explicit 'when not to use' statements, but the alternative is clearly named.

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

congress_committee_full_profileA
Read-only

Get a COMPLETE committee profile in ONE call — combines committee details (history, subcommittees, website), recent bills referred, recent reports published, and recent nominations referred (4 endpoints in parallel). Use this instead of calling congress_committee_details + congress_committee_bills + congress_committee_reports_for_committee + congress_committee_nominations_for_committee individually.

Ideal for: Understanding a committee's jurisdiction, workload, and oversight activity. Cross-reference committee chair (from congress_member_details) with FEC donors and lobbying_search.

ParametersJSON Schema
NameRequiredDescriptionDefault
chamberYesChamber
committee_codeYesCommittee system code (e.g., 'hsba00' for House Financial Services, 'ssju00' for Senate Judiciary)
limitNoMax items per sub-resource (default: 10)

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds that it combines 4 endpoints in parallel, which is behavioral context beyond the annotation. No contradictions. Could have mentioned rate limits or caching, but not required.

Agents need to know what a tool does to the world before 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 with two clear paragraphs. Front-loaded with the main benefit. Every sentence serves a purpose without 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?

Given no output schema, the description adequately explains what is returned (committee details, bills, reports, nominations). It also hints at related tools like congress_member_details for cross-referencing, providing sufficient context for effective use.

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 description adds value by providing examples for committee_code (e.g., 'hsba00' for House Financial Services). It also explains the limit parameter's default and max. Good but not extensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 gets a COMPLETE committee profile in ONE call, combining four endpoints. It specifies the verb 'get' and the resource 'committee profile', and distinguishes from siblings by naming the individual tools it replaces.

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

Usage Guidelines5/5

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

Explicitly tells when to use this tool: 'Use this instead of calling congress_committee_details + congress_committee_bills + congress_committee_reports_for_committee + congress_committee_nominations_for_committee individually.' Also gives ideal use cases like understanding jurisdiction and workload.

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

congress_committee_house_communicationsA
Read-only

Get House communications referred to a specific House committee.

ParametersJSON Schema
NameRequiredDescriptionDefault
committee_codeYesHouse committee system code (e.g., 'hsgo00')
limitNoMax results (default: 20)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations include readOnlyHint: true, and the description adds that the tool retrieves communications 'referred to a specific House committee,' which is consistent with the read-only nature. No contradictions.

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

Conciseness5/5

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

The description is a single, concise sentence that efficiently communicates the tool's purpose with no extraneous information.

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

Completeness3/5

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

The tool is simple with only two parameters, but there is no output schema and the description does not mention what the response contains or any additional details about the returned data, leaving some context incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 adds no extra meaning beyond what the schema provides for committee_code and 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?

The description clearly states 'Get House communications referred to a specific House committee,' with a specific verb and resource. It distinguishes itself from siblings like congress_committee_senate_communications by specifying 'House.'

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives such as congress_house_communications (which lists all communications) or congress_committee_senate_communications. Usage is implied but not clarified.

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

congress_committee_meeting_detailsA
Read-only

Get detailed information about a specific committee meeting including title, committees, witnesses, meeting documents, related bills, and video links.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
chamberYesChamber
event_idYesEvent ID (e.g., '115538')

TDQS

A3.8/5.0
Behavior3/5

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

Annotations include readOnlyHint, and the description describes a read operation consistently. However, beyond the annotation, no additional behavioral traits (e.g., authentication, rate limits, or return format details) are disclosed.

Agents need to know what a tool does to the world before 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 immediately conveys the tool's purpose and key information items. It is front-loaded and contains no redundant 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?

Given the readOnly annotation and required parameters, the description sufficiently outlines the return information. However, it could be more complete by clarifying the relationship to sibling tools (e.g., meeting lists vs details) or specifying any required prerequisites like committee 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?

Input schema has 100% coverage with descriptions for each parameter. The description does not add further meaning beyond the schema, as it only mentions 'Event ID' in passing. Baseline score of 3 applies because schema already documents parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 that the tool retrieves detailed information about a specific committee meeting, listing specific content types (title, committees, witnesses, documents, bills, video links). It is distinct from sibling tools like congress_committee_meetings (which likely lists meetings) and congress_hearing_details.

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 for retrieving meeting details but provides no explicit guidance on when to use this tool versus alternatives like hearing_details or committee_meetings. No prerequisites or exclusions are mentioned.

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

congress_committee_meetingsA
Read-only

List committee meetings (hearings, markups, etc.) with dates, locations, and topics. Filter by congress and chamber.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number
chamberNoChamber
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

TDQS

A3.7/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, so the description's addition of listing dates, locations, and topics adds behavioral context. However, it does not disclose pagination behavior, rate limits, or what happens if no results match.

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

Conciseness5/5

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

The description is a single concise sentence followed by a short filtering note. No redundant information, and the key purpose 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?

With no output schema, the description hints at return fields (dates, locations, topics) but does not mention pagination via the 'limit' parameter or ordering. It is adequate for a simple list tool but lacks full completeness for an agent to predict exact 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 baseline is 3. The description mentions filtering by congress and chamber but does not add meaning beyond the schema for fromDateTime, toDateTime, or limit. The schema already provides clear descriptions for each 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?

The description clearly states it lists committee meetings (hearings, markups, etc.) with dates, locations, and topics. It distinguishes from sibling tools like congress_committee_meeting_details (specific details) and congress_hearings (maybe just hearings) by using a general 'List' verb and specifying the types of meetings.

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 says 'Filter by congress and chamber', implying usage for general listing, but does not explicitly state when to use this tool versus alternatives (e.g., congress_committee_meeting_details for a single meeting). No exclusions or when-not guidance.

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

congress_committee_nominations_for_committeeA
Read-only

Get nominations referred to a specific committee. Useful for tracking judicial or agency head nominations before a particular Senate committee.

ParametersJSON Schema
NameRequiredDescriptionDefault
chamberYesChamber (usually 'senate' for nominations)
committee_codeYesCommittee system code (e.g., 'ssju00' for Senate Judiciary)
limitNoMax results (default: 20)

TDQS

A4/5.0
Behavior3/5

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

Description adds context that tool returns nominations referred to a committee, but does not disclose additional behavioral traits like scope (all congresses?), response structure, or authorization needs. Annotations already declare readOnlyHint=true, and description does not contradict nor significantly enhance beyond suggesting judiciary/agency head usage.

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

Conciseness5/5

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

Description is two sentences, front-loaded with the main purpose and a usage example. No unnecessary words, efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, clear schema, and readOnly annotation, the description is adequate. It explains what the tool does and suggests a use case. However, it could benefit from mentioning the response format or that it returns nomination objects, but this is not critical for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% coverage with descriptions for all parameters (chamber, committee_code, limit). The description does not add additional meaning beyond what the schema provides. Baseline score of 3 is appropriate as the schema already explains the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'Get nominations referred to a specific committee' and resource (nominations by committee). Adds context about tracking judicial or agency head nominations. Clearly distinguishes from sibling tools like congress_nominations or congress_nomination_details by focusing on committee-filtered results.

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 usefulness for tracking nominations before a specific committee, implying when to use. However, does not explicitly exclude usage or compare to alternatives like congress_nominations (which lists all nominations). Provides clear but not exhaustive guidance.

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

congress_committee_print_detailsA
Read-only

Get details about a specific committee print by congress, chamber, and jacket number.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
chamberYesChamber
jacket_numberYesJacket number (e.g., 48144)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's 'Get details' is consistent. However, it adds no additional behavioral context beyond what annotations provide, such as disclosure of required permissions or specifics about the returned data. Given annotations, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single sentence with no redundant words. It efficiently conveys the tool's action and required identifiers.

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 does not mention what kind of 'details' are returned (e.g., metadata, full text). Since there is no output schema, more context would be beneficial. However, for a simple detail retrieval tool, the description is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 all three parameters, so the schema already documents their meaning. The description merely repeats the parameter names without adding further context (e.g., format or constraints). Thus baseline score of 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 clearly states the tool retrieves details about a specific committee print, using three identifiers (congress, chamber, jacket number). This distinguishes it from sibling tools like congress_committee_prints (which lists prints) and congress_committee_print_text (which retrieves text).

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 what the tool does but does not provide explicit guidance on when to use it vs. alternatives (e.g., when to use this over congress_committee_prints or congress_committee_print_text). 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.

congress_committee_printsA
Read-only

List committee prints — publications ordered by committees that are not committee reports. Often include Rules Committee prints with bill text for floor consideration.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number
chamberNoChamber
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

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 description adds context about the content (publications ordered by committees, often including bill text). No contradiction, and the description adds 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?

Two sentences with no extraneous words. Front-loaded verb 'List' immediately conveys the action. 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?

Describes what committee prints are and their typical content. No output schema exists, but the description adequately sets expectations for a list tool with read-only behavior. Could mention default sorting or pagination 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?

Input schema has 100% coverage with descriptions for all 5 parameters. Description does not add any additional parameter-specific information 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?

Description clearly states verb 'List' and resource 'committee prints', explicitly distinguishing them from committee reports. Provides a concrete example (Rules Committee prints with bill text) for clarity.

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?

States that committee prints are not committee reports, implying when not to use this tool. However, it does not explicitly name sibling tools like congress_committee_reports or provide comprehensive when-to-use guidance.

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

congress_committee_print_textA
Read-only

Get text versions for a committee print. Returns formatted text and PDF URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
chamberYesChamber
jacket_numberYesJacket number

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's claim that it 'gets' text is consistent. However, the description does not add behavioral details beyond what annotations provide, such as rate limits, authentication needs, or what happens if the jacket number is invalid.

Agents need to know what a tool does to the world before 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 that front-load the purpose and output. No wasted words, and the structure is ideal for quick understanding.

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

Completeness3/5

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

Given no output schema and simple input, the description is adequate but leaves gaps: it doesn't specify formats of text (e.g., plain text, HTML), what 'PDF URLs' include, or whether multiple versions exist. For a retrieval tool, more detail on expected output would help.

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

Parameters3/5

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

All 3 parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning. The description does not clarify parameter relationships or usage constraints 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 it gets text versions for a committee print, specifying it returns formatted text and PDF URLs. This distinguishes it from sibling tools like 'congress_committee_print_details' which likely provides metadata, and 'congress_committee_prints' which lists prints. The verb 'get' and resource 'committee print text' are specific.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'congress_committee_print_details' or 'congress_committee_text' for other documents. There is no mention of prerequisites or context for use.

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

congress_committee_report_detailsA
Read-only

Get detailed information about a specific committee report, including associated bills, title, issue date, and text versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
report_typeYesReport type: 'hrpt' (House Report), 'srpt' (Senate Report), 'erpt' (Executive Report)
report_numberYesReport number (e.g., 617)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description confirms a read-only action ('Get detailed information'). The description adds useful behavioral context about the content (associated bills, title, etc.) without contradicting annotations. No additional behavioral details (e.g., error handling, rate limits) are provided, but annotations cover the safety profile.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant words. It efficiently communicates the tool's purpose and key output fields. Every word earns its place.

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

Completeness4/5

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

All three required parameters are covered by schema descriptions. The description mentions key response elements (bills, title, issue date, text versions), which gives a good idea of the output. However, there is no output schema, and the description does not explain the response structure or error behavior. For a simple lookup tool, this is mostly adequate but leaves some gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented. The tool description does not add new meaning beyond listing the fields in the response. For example, it doesn't explain how parameters map to those fields. Baseline is 3 due to full schema coverage, and the description adds no extra semantic 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 states the tool retrieves detailed information about a specific committee report, listing specific fields (associated bills, title, issue date, text versions). This differentiates it from sibling tools like congress_committee_reports (list) and congress_committee_report_text (just text).

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 no explicit guidance on when to use this tool versus alternatives or when not to use it. It only states what it does, leaving the agent to infer context from the name and sibling list. No exclusions or alternative recommendations are mentioned.

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

congress_committee_reportsA
Read-only

List committee reports — formal reports accompanying legislation reported out of committee. Filter by congress, report type (hrpt/srpt/erpt), and conference report flag. Critical for understanding committee intent and legislative history.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number
report_typeNoReport type: 'hrpt' (House Report), 'srpt' (Senate Report), 'erpt' (Executive Report)
conferenceNoFilter to conference reports only
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description does not contradict this. It adds domain context (formal reports, committee intent) but does not disclose additional behavioral traits such as pagination, rate limits, or response structure 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?

The description is two sentences: first defines the tool and its importance, second lists key filters. No redundancy, highly front-loaded, and every word adds value.

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

Completeness3/5

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

Given the complexity (6 optional parameters, no required, no output schema), the description adequately covers the tool's purpose and filters but lacks information on return format, pagination behavior (default limit not explained), or how results are ordered.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explicitly enumerating report type values (hrpt, srpt, erpt) and explaining the conference report flag, reinforcing the schema and guiding correct parameter use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'List committee reports' with a specific resource and includes the domain context of formal reports accompanying legislation. It distinguishes itself from sibling tools like congress_committee_details by focusing on reports and their legislative history role.

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 for understanding committee intent and legislative history, and lists filter parameters (congress, report type, conference flag) but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like congress_committee_details or congress_bill_details.

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

congress_committee_reports_for_committeeA
Read-only

Get reports published by a specific committee. Shows formal committee reports accompanying legislation — use congress_committees to find the committee system code.

ParametersJSON Schema
NameRequiredDescriptionDefault
chamberYesChamber
committee_codeYesCommittee system code (e.g., 'hsju00')
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=true, so the description does not need to restate this. It adds that the tool returns formal committee reports, which provides useful context. However, it does not disclose any additional behavioral traits such as pagination, rate limits, or empty result handling, which is acceptable given the annotations but could be richer.

Agents need to know what a tool does to the world before 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 very concise, with two sentences that are front-loaded with the tool's purpose. Every sentence adds value without extraneous words.

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

Completeness3/5

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

The tool has no output schema, and the description only vaguely mentions what is returned ('formal committee reports'). It does not describe the output structure, fields, pagination, or ordering. Given the simplicity of a list tool, this is adequate but not fully complete.

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

Parameters3/5

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

The input schema covers all 5 parameters with descriptions (100% coverage). The description adds no new parameter details beyond what is already in the schema. With full schema coverage, 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 states the tool's function: 'Get reports published by a specific committee.' It specifies that these are formal committee reports accompanying legislation and directs users to a related tool for finding committee codes, which distinguishes it 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 provides clear context by mentioning a prerequisite tool ('use congress_committees to find the committee system code'). However, it does not explicitly differentiate when to use this tool versus other committee report tools (e.g., congress_committee_reports or congress_committee_report_details), though the scope is implied.

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

congress_committee_report_textA
Read-only

Get text versions for a committee report. Returns formatted text and PDF URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
report_typeYesReport type: 'hrpt' (House Report), 'srpt' (Senate Report), 'erpt' (Executive Report)
report_numberYesReport number

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, consistent with a read operation. The description adds return type details (formatted text and PDF URLs) but does not discuss potential size limits or error handling, which is acceptable 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.

Conciseness5/5

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

Description is two concise sentences with no waste, front-loading the action and return value.

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

Completeness4/5

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

With no output schema, the description adequately states what is returned (formatted text and PDF URLs). However, minor details about PDF URL format or pagination are missing. Overall sufficient given schema richness.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 covers all parameters with clear descriptions (congress, report_type enum, report_number). The tool description adds no extra parameter information; baseline score applies due to full 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 clearly states 'Get text versions for a committee report' and specifies returns 'formatted text and PDF URLs,' distinguishing it from metadata-focused sibling tools like congress_committee_report_details.

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 retrieving report text but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or alternative tool names.

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

congress_committeesA
Read-only

List congressional committees. Filter by congress number and/or chamber (house, senate, joint). Returns committee name, system code, and chamber.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number (e.g., 119). Default: current
chamberNoChamber
limitNoMax results (default: 50)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

TDQS

A4.1/5.0
Behavior4/5

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

The description complements the readOnlyHint annotation by clarifying it returns specific fields. It adds value beyond annotations by specifying the output structure, though no additional behavioral quirks are disclosed.

Agents need to know what a tool does to the world before 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 wasted words. The purpose is front-loaded, and the structure is efficient.

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 simplicity, the description is complete: it explains what the tool returns and its filters. No output schema exists, so the return fields are adequately 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?

With 100% schema description coverage, the schema sufficiently documents all parameters. The description reiterates the filter parameters but does not add new semantic meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states it lists congressional committees, specifies filters (congress, chamber), and indicates return fields (name, system code, chamber). It distinguishes from other congress tools that focus on details or bills.

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

Usage Guidelines3/5

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

The description implies when to use this tool (to list committees with optional filters) but does not explicitly state when not to use it or mention alternatives like congress_committee_details or congress_committee_bills.

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

congress_committee_senate_communicationsA
Read-only

Get Senate communications referred to a specific Senate committee.

ParametersJSON Schema
NameRequiredDescriptionDefault
committee_codeYesSenate committee system code (e.g., 'ssfr00')
limitNoMax results (default: 20)

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, so the description's safety profile is covered. The description adds no additional behavioral context beyond stating the read action, which is consistent with the 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 sentence that conveys the essential information with no unnecessary words. It is front-loaded and efficiently communicates the tool's purpose.

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

Completeness4/5

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

For a simple read-only list tool with no output schema, the description adequately states what the tool does. It could mention pagination via the limit parameter, but that is already in the schema. Slight lack of context on the nature of 'communications' 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%, with both parameters adequately described in the schema. The description itself does not add any new meaning to the parameters 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 specifies the action ('Get'), the resource ('Senate communications'), and the scope ('referred to a specific Senate committee'). This clearly distinguishes it from sibling tools like congress_committee_house_communications or general congress_senate_communications.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of when not to use it or which other tools might be more appropriate for similar queries.

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

congress_congressional_recordA
Read-only

Get Congressional Record issues — the official daily record of debate, speeches, and proceedings in Congress. Filter by year, month, and day.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoYear (e.g., 2024)
monthNoMonth (1-12)
dayNoDay of month
limitNoMax results (default: 20)

TDQS

A3.7/5.0
Behavior3/5

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

The description states 'Get' which aligns with the readOnlyHint annotation. It does not add behavioral details beyond what annotations provide, such as rate limits or authentication needs, but the annotation already indicates a safe read operation.

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

Conciseness5/5

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

The description is two short sentences, front-loading the purpose and then covering filter options. No extraneous information, every word earns its place.

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

Completeness3/5

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

Without an output schema, the description should hint at the return structure. It mentions 'issues' but does not describe fields or pagination. For a filtered retrieval tool, this is minimally adequate but could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 all 4 parameters, so the description does not need to add much. It merely restates the filter concept without providing additional meaning or usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves 'Congressional Record issues' and explains it's the official daily record. It uses a specific verb 'Get' and identifies the resource, distinguishing it from other congress 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 tells users to filter by year, month, and day, implying usage context. However, it does not explain when to use this tool versus siblings like 'congress_daily_congressional_record' or 'congress_bound_congressional_record', nor does it mention any prerequisites or exclusions.

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

congress_crs_report_detailsA
Read-only

Get detailed information about a specific CRS report by report number/ID. Returns full summary, authors, topics, related legislation, and format links (PDF, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
report_numberYesThe report number or ID (e.g., 'R47175', 'RL33110', 'IF12345')

TDQS

A4/5.0
Behavior3/5

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

The description does not contradict the readOnlyHint annotation and correctly describes a read-only operation. However, beyond that, it does not disclose any behavioral traits such as rate limits, authentication needs, or error states. The annotations already cover the safety profile, so the description adds limited 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?

The description is two sentences long with no wasted words. It front-loads the purpose and then lists returned attributes efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameter set, presence of readOnlyHint annotations, and lack of output schema, the description is fairly complete. It covers what is returned, though it could mention what happens if the report number is invalid or not found.

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 describes the single parameter 'report_number' with 100% coverage. The description adds examples ('R47175', 'RL33110', 'IF12345') which provide useful context beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'Get', the resource 'detailed information about a specific CRS report', and the scope 'by report number/ID'. It also lists what is returned (full summary, authors, topics, etc.), distinguishing it from sibling tools like 'congress_crs_reports' which likely list reports.

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

Usage Guidelines3/5

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

The description implies use when you have a specific report number but does not explicitly state when not to use or mention alternatives. The sibling 'congress_crs_reports' could be used for listing, but no direct guidance is provided.

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

congress_crs_reportsA
Read-only

Get Congressional Research Service reports — authoritative, nonpartisan analysis on legislative topics. CRS reports are considered the gold standard for policy research.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

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, indicating a safe read operation. The description adds no further behavioral traits such as authorization needs, rate limits, or side effects. With annotations present, the description's omission is acceptable but not enhanced; thus a mid-range 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 sentences with no extraneous words. It front-loads the core function ('Get Congressional Research Service reports') and includes a sentence that sells the quality of the data without repetition. Every word serves a purpose.

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

Completeness4/5

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

The description explains the nature of CRS reports (authoritative, nonpartisan) and their reputation, providing context for an agent to understand the data quality. However, since no output schema exists, the description could have briefly noted what fields are returned (e.g., title, date, summary). For a simple list tool with good annotations, this is mostly complete but lacks output structure hints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 all three parameters effectively. The description adds no additional parameter-level guidance (e.g., common use cases for date filters, limit best practices). Baseline 3 is merited as the description does not detract but also does not add 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 clearly states the tool retrieves Congressional Research Service reports, using the verb 'Get' and the resource 'Congressional Research Service reports'. It distinguishes from sibling tools like congress_crs_report_details by focusing on the general collection rather than a single report, and the phrasing 'authoritative, nonpartisan analysis' adds context 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like congress_crs_report_details or other search tools. It does not mention prerequisites, filter applicability, or scenarios where this tool is preferred. The lack of usage context forces the agent to infer from the purpose alone.

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

congress_daily_congressional_recordA
Read-only

Get daily Congressional Record issues with sections (Senate, House, Extensions of Remarks, Daily Digest). Filter by volume and issue number for specific issues, or list recent issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
volume_numberNoVolume number (e.g., 171)
issue_numberNoIssue number (requires volume_number)
limitNoMax results (default: 20)

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint: true. Description adds that the tool returns sections and can list recent issues, but does not disclose pagination, rate limits, or other behavioral traits, which is acceptable given the low complexity.

Agents need to know what a tool does to the world before 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 superfluous content, front-loading the core purpose and then detailing usage options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, but description adequately covers retrieval of issues with sections. Could specify that limit applies to recent issues, but overall sufficient for a simple tool.

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

Parameters4/5

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

Schema coverage is 100% with descriptions. Description clarifies that issue_number requires volume_number, a constraint not evident from schem a alone, adding meaningful guidance 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 uses specific verb 'Get' and resource 'daily Congressional Record issues', mentioning sections and filtering, clearly distinguishing from sibling tools like congress_bound_congressional_record and congress_congressional_record.

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?

Description states filtering by volume/issue or listing recent issues, providing basic usage scenarios, but lacks explicit guidance on when to use this tool versus 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.

congress_hearing_detailsA
Read-only

Get detailed information about a specific hearing including title, date, committees, associated meeting, citation, and available text formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
chamberYesChamber
jacket_numberYesHearing jacket number

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description is consistent, indicating a read operation. It adds that it returns specific fields, but lacks details on permissions, rate limits, or response structure. With annotations, the bar is lower, so a score of 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?

A single sentence of 19 words that is front-loaded with the tool's purpose. Every word is necessary, with no redundancy or fluff.

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

Completeness4/5

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

The description lists several return fields but does not specify the structure or format. Given no output schema, a bit more structure would be beneficial. However, for a read tool with readOnlyHint, it is largely 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?

Input schema covers 100% of parameters with descriptions, so the schema already documents them. The description does not add extra meaning beyond what the schema provides, earning the baseline score of 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 clearly states it retrieves detailed information for a specific hearing, listing key fields like title, date, committees, etc. This is a specific verb-resource pair that distinguishes it from sibling tools like congress_hearings.

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 when you need details on one hearing, but it does not explicitly state when not to use it or provide alternatives among the many sibling tools. Usage guidance is implied but not explicit.

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

congress_hearingsB
Read-only

List congressional hearings. Filter by congress and chamber. Hearings are formal proceedings where committees gather testimony from witnesses.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number
chamberNoChamber
limitNoMax results (default: 20)

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true, so the read-only nature is clear. The description adds no further behavioral context (e.g., pagination, result limits beyond the limit parameter, or any potential constraints). Since annotations carry the burden, the description adds minimal 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?

Two concise sentences with the primary action front-loaded. No wasted words, though the third sentence about hearing definitions is slightly extraneous for tool usage.

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 list tool with no output schema, the description is mostly adequate. However, it could mention expected response format (e.g., array of hearings) or default limit behavior. Given the complexity and context signals, it falls short of fully comprehensive.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all three parameters. The description echoes the filtering parameters but does not add deeper meaning (e.g., format requirements for congress number, default behavior of 'limit'). 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 clearly states the tool lists congressional hearings and specifies filtering by congress and chamber. It distinguishes itself from sibling tools like congress_hearing_details (which focuses on a single hearing) and congress_committee_meetings (which covers meetings broader than hearings).

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 mentions filtering options but does not provide guidance on when to use this tool versus alternatives such as congress_hearing_details or congress_committee_meetings. No exclusion criteria or alternative tool names are given.

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

congress_house_communication_detailsA
Read-only

Get detailed information about a specific House communication including abstract, committees, submitting agency, and legal authority.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
communication_typeYesCommunication type: 'ec' (Executive Communication), 'ml' (Memorial), 'pm' (Presidential Message), 'pt' (Petition)
communication_numberYesCommunication number

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already declares it as a read operation. The description adds value by listing return fields but does not disclose other behavioral traits like authentication needs or error handling.

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, clear sentence. While concise, it could be slightly more structured with mention of parameter usage.

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?

Without an output schema, the description lists some return fields but lacks details on response format, pagination, or error scenarios. Adequate for a detail endpoint given sibling 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 parameters are already well-documented. The description does not add extra meaning beyond listing return fields, so baseline score 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 the tool's purpose: 'Get detailed information about a specific House communication' followed by specific fields. It distinguishes from sibling tools like congress_house_communications (list) and congress_senate_communication_details.

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 for retrieving details given specific identifiers but does not explicitly state when to use this tool over similar ones or mention any prerequisites or exclusions.

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

congress_house_communicationsA
Read-only

List House communications — executive communications, memorials, presidential messages, and petitions referred to House committees. Types: ec (Executive Communication), ml (Memorial), pm (Presidential Message), pt (Petition).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number
communication_typeNoCommunication type: 'ec' (Executive Communication), 'ml' (Memorial), 'pm' (Presidential Message), 'pt' (Petition)
limitNoMax results (default: 20)

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, indicating a safe read operation. The description adds the types of communications listed but does not disclose any additional behavioral traits such as pagination, sorting, or response structure. 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 two sentences, front-loaded with purpose and type enumeration. Every sentence adds value without redundancy. It is appropriately concise for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 list tool with 3 optional parameters and no output schema, the description is fairly complete: it explains what is listed and the possible types. However, it could mention that the tool returns a list of communication summaries and note the absence of committee-level filtering (which is handled by a sibling tool).

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

Parameters4/5

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

The schema covers 100% of parameters with descriptions (congress, communication_type, limit). The description adds context beyond the schema by summarizing the communication types and indicating that these are communications 'referred to House committees', which is not explicit in the schema. This helps an agent understand the scope of the tool.

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

Purpose4/5

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

The description clearly states it lists House communications with specific types, using a specific verb 'List' and resource 'House communications'. However, it does not explicitly differentiate from sibling tools like congress_committee_house_communications or congress_house_communication_details, which may confuse an agent on which to use.

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 its siblings (e.g., congress_committee_house_communications for committee-specific listings, or congress_house_communication_details for individual communication details). An agent is left to infer usage context without explicit direction.

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

congress_house_requirement_detailsA
Read-only

Get detailed information about a specific House requirement including legal authority, frequency, nature, and matching communications count.

ParametersJSON Schema
NameRequiredDescriptionDefault
requirement_numberYesRequirement number (e.g., 8070)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows it's a safe read. The description adds that it retrieves detailed information but does not disclose additional behaviors like error handling, response structure, or any constraints.

Agents need to know what a tool does to the world before 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 is clear and front-loaded with the action, wastes no 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?

Given the tool has one parameter, no output schema, and sibling tools handle listing, the description is sufficient for an agent to decide when to call it and what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the requirement_number parameter with an example. The description does not add any extra meaning or usage context 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?

Description clearly states 'Get detailed information about a specific House requirement', listing specific details (legal authority, frequency, nature, matching communications count). This distinguishes it from sibling tools like 'congress_house_requirements' which lists all requirements.

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 when a specific requirement number is known, but it does not explicitly state when to use this tool versus alternatives (e.g., congress_house_requirements for listing). No exclusion or context for when not to use.

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

congress_house_requirement_matching_communicationsA
Read-only

Get communications that match a specific House requirement. Shows agency submissions fulfilling a recurring reporting obligation.

ParametersJSON Schema
NameRequiredDescriptionDefault
requirement_numberYesRequirement number (e.g., 8070)
limitNoMax results (default: 20)

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, and the description does not contradict this. It adds valuable context that the communications are 'agency submissions fulfilling a recurring reporting obligation,' which clarifies the nature of the data beyond the annotation.

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 consists of two concise sentences. The first states the core function; the second adds detail. It is front-loaded and efficient, but could be slightly more informative about the nature of 'communications.'

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 and moderate complexity, the description covers the basics but lacks details on pagination, result interpretation, or how this tool relates to other congress tools. Given the wealth of sibling tools, additional context would 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?

The input schema already provides clear descriptions for both parameters (requirement_number and limit), with 100% coverage. The tool description does not add additional meaning or syntax beyond what is in the schema, so 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 the tool retrieves communications matching a specific House requirement, with the added context that these are agency submissions for recurring reporting obligations. This distinguishes it from sibling tools like congress_house_communications (all communications) and congress_house_requirement_details (requirement info).

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 guidance on when to use this tool versus alternatives. While the purpose implies it is for finding submissions tied to a requirement, it does not mention when not to use it or suggest other tools for broader queries. Given the many sibling congress tools, more guidance would be helpful.

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

congress_house_requirementsA
Read-only

List House requirements — recurring reporting obligations from executive agencies to Congress. Shows requirement number, frequency, and matching communications count.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default: 20)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide 'readOnlyHint: true', indicating a safe read operation. The description adds output details but does not disclose other behaviors like pagination or rate limits. 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 a single sentence followed by a clarifying output summary. It is concise, front-loaded, and every sentence adds value.

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

Completeness4/5

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

Given no output schema, the description names some output fields (requirement number, frequency, matching communications count). It is fairly complete for a list tool but could mention additional fields or list 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% for the single parameter 'limit', which is documented. The description adds no additional parameter guidance, so per guidelines 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 uses specific verbs ('List') and resource ('House requirements'), defines them as recurring reporting obligations, and mentions output fields (requirement number, frequency, matching communications count). It differentiates from sibling tools like 'congress_house_requirement_details' and 'congress_house_requirement_matching_communications'.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. It implies listing all requirements but offers no guidance on contexts where filtering or specific requirement lookup is needed, leaving the AI to infer from sibling 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-only

Get House of Representatives roll call vote results with member-level party breakdown. Primary source: Congress.gov API (118th-119th Congress); falls back to clerk.house.gov XML for older congresses. Coverage: 1990 to present. Use year param for historical votes. Cross-reference with: congress_senate_votes (same bill's Senate vote), FEC (congress_member donors via fec_candidate_financials), lobbying_search (who lobbied on the bill), FRED (economic impact 1-3 years after passage). For Senate votes, use congress_senate_votes.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number (default: current). Used with session to determine year.
sessionNoSession (1 or 2). Default: current session
yearNoCalendar year (e.g. 2024). Overrides congress+session if provided.
vote_numberNoSpecific roll call vote number. Omit to list recent votes.
limitNoMax results when listing votes (default: 20)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true. The description adds valuable behavioral context: it uses two data sources (Congress.gov API for recent, clerk.house.gov for older), covers 1990-present, and includes fallback behavior. This goes beyond annotations, though it could mention 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?

The description is concise (two main sentences plus cross-references) and front-loaded with the primary purpose. The cross-references are comprehensive but not verbose. Every sentence adds value, though the list of cross-references could be slightly trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complexity (5 parameters, multiple sources, no output schema), the description covers key aspects: data sources, coverage, parameter behavior, and related tools. It doesn't detail the return format or pagination, but for a read-only vote tool, this 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?

The input schema has 100% description coverage for all 5 parameters. The description adds the context that the year parameter overrides congress+session and that vote_number can be omitted to list recent votes, which slightly enhances meaning, but the schema already covers the basics. 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 clearly states the tool gets House roll call votes with party breakdown, and distinguishes it from congress_senate_votes. It specifies the source and coverage, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance: when to use the year parameter, cross-references to related tools for deeper analysis, and explicitly states to use congress_senate_votes for Senate votes. This leaves no ambiguity about when 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.

congress_infoA
Read-only

Get information about congresses and their sessions — start/end dates, session numbers, and chambers. Use to look up when a congress was in session, or get current congress details.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoSpecific congress number (e.g., 118). Omit to list recent congresses
currentNoSet true to get the current congress info
limitNoMax results when listing (default: 20)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description aligns with a read-only operation by stating 'Get information'. The description adds behavioral detail by specifying the types of data returned (dates, session numbers, chambers). No contradictions or missing disclosures.

Agents need to know what a tool does to the world before 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 extremely concise: two sentences with no redundant information. The first sentence defines the purpose and content, the second gives concrete use cases. Every sentence serves a purpose.

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

Completeness4/5

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

Given no output schema, the description sufficiently explains what the tool returns (dates, session numbers, chambers). It covers the core functionality and two primary use cases. It could mention that listing returns recent congresses, but the schema's 'limit' parameter implies that. Overall, complete 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?

Schema description coverage is 100%, with each parameter having a clear description. The tool description adds value by explaining the kind of information returned (start/end dates, session numbers, chambers), which is not in the schema. This helps an agent understand the expected output beyond parameter inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves information about congresses and their sessions, including start/end dates, session numbers, and chambers. It also provides specific use cases like looking up when a congress was in session or getting current congress details. This verb+resource specificity distinguishes it from sibling tools that focus on bills, committees, etc.

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 context: 'Use to look up when a congress was in session, or get current congress details.' It implies when to use this tool, though it does not explicitly state when not to use it or name alternatives. However, the presence of many sibling congress tools makes alternatives clear.

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

congress_law_detailsA
Read-only

Get detailed information about a specific public or private law, including sponsors, CBO cost estimates, committee reports, and constitutional authority statement. Requires congress number, law type, and law number.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number (e.g., 118, 119)
law_typeYesLaw type: 'pub' (Public Law), 'priv' (Private Law)
law_numberYesLaw number (e.g., 274 for Public Law 118-274)

TDQS

A4.1/5.0
Behavior4/5

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

The description is consistent with the readOnlyHint annotation, confirming no destructive behavior. It adds value by listing the specific information returned (sponsors, CBO cost estimates, committee reports, constitutional authority statement), which goes beyond what annotations provide. While annotations already establish safety, the description enriches behavioral understanding, earning a 4.

Agents need to know what a tool does to the world before 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 efficiently conveys purpose, included details, and required parameters. It is front-loaded with the main action and avoids any redundant or unnecessary information. Every word contributes to clarity, making it highly concise.

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 description lists the key types of information returned (sponsors, CBO cost estimates, committee reports, constitutional authority statement) and specifies the three required parameters. With annotations declaring readOnlyHint, the tool's behavior is fully covered. No output schema exists, but the description compensates by detailing the content, making it complete for an agent to understand the tool's input and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% parameter coverage with descriptions for congress, law_type, and law_number, including examples. The description merely restates that these three parameters are required, adding no extra semantic value. With full schema coverage, the baseline is 3, and no additional information is provided to 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 description clearly states 'Get detailed information about a specific public or private law' with a specific verb and resource, listing included details like sponsors and CBO cost estimates. This distinguishes it from sibling congress tools that focus on bills, amendments, or committees, making the 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 Guidelines3/5

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

The description notes that using the tool requires congress number, law type, and law number, giving clear required context. However, it does not explicitly state when to use this tool over alternatives like congress_bill_details or congress_committee_reports, nor does it provide when-not-to-use guidance. With many sibling tools, this lack of comparative guidance limits the score to 3.

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

congress_member_billsA
Read-only

Get bills sponsored or cosponsored by a specific member of Congress. Requires the member's BioGuide ID (use congress_search_members to find it).

ParametersJSON Schema
NameRequiredDescriptionDefault
bioguide_idYesMember's BioGuide ID (e.g., 'S000033' for Bernie Sanders, 'C001098' for Ted Cruz)
typeNoBill relationship type (default: sponsored)
limitNoMax results (default: 20)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate read-only behavior. The description adds value by specifying the two bill relationship types (sponsored/cosponsored) and the need for a BioGuide ID, but does not disclose other behavioral details such as pagination or error 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?

The description is two concise sentences. The first sentence states the purpose, and the second provides usage guidance. No unnecessary words, well-structured.

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

Completeness3/5

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

The description does not explain what the returned bills contain or if there is pagination. Given the absence of an output schema, more context about the return value would be helpful for an agent to decide if further calls are needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 includes descriptions for all parameters. The description does not add significant meaning beyond what the schema already provides, so 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 it gets bills sponsored or cosponsored by a specific member of Congress, using a specific verb and resource. It distinguishes from sibling tools like congress_search_bills by focusing on a single member's bills.

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 the prerequisite (BioGuide ID) and references congress_search_members to find it. It implies when to use this tool but does not explicitly state when not to use it or list alternatives.

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-only

Get detailed information about a specific member of Congress by BioGuide ID. Returns full bio, party history, all terms served, committee assignments, photo URL, and official website.

Use congress_search_members first to find the BioGuide ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioguide_idYesBioGuide ID (e.g., 'P000197' for Pelosi, 'M000355' for McConnell)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true. Description adds value by detailing what information is returned (bio, party history, terms, committees, photo URL, website), providing behavioral context beyond the 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?

Two sentences, no wasted words, front-loaded with purpose and followed by usage guidance. Highly efficient and well-structured.

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 no output schema, the description fully enumerates return content. The tool is simple with one parameter, and the description covers all necessary aspects 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?

Schema coverage is 100% with a well-described parameter and example. Description adds minimal additional meaning beyond referencing the search tool, so 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?

Description clearly states 'Get detailed information about a specific member of Congress by BioGuide ID' with a specific verb and resource. It lists the content returned and references sibling tool congress_search_members, distinguishing it from similar tools.

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 instructs to 'Use congress_search_members first to find the BioGuide ID,' providing clear context for when and how to use this tool, and directing to the appropriate sibling for prior steps.

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

congress_member_full_profileA
Read-only

Get a COMPLETE member of Congress profile in ONE call — combines bio/details, recent sponsored legislation, and recent cosponsored legislation (3 endpoints in parallel). Returns party history, terms served, committee assignments, photo, website, plus legislative activity.

Use this instead of calling congress_member_details + congress_member_bills (sponsored) + congress_member_bills (cosponsored) individually.

Ideal for: Accountability research — cross-reference with FEC (fec_candidate_financials) for donors, lobbying_search for industry lobbying, and congress_house_votes / congress_senate_votes for voting record.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioguide_idYesMember's BioGuide ID (e.g., 'P000197' for Pelosi, 'M000355' for McConnell). Use congress_search_members to find it.
bill_limitNoMax bills to return per category (default: 20)

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so no contradiction. The description adds value by explaining the composite nature (3 endpoints in parallel) and listing returned fields (party history, terms, etc.), providing context beyond the 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?

Description is concise, front-loaded with main purpose, then usage, then ideal use. Every sentence adds value with no 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?

Given no output schema, the description adequately explains the composite functionality, return content, and comparison to individual endpoints. It provides complete context for an agent to select and invoke the tool.

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?

Schema coverage is 100%, but description still adds meaning: bioguide_id includes guidance to 'Use congress_search_members to find it', and bill_limit specifies default (20) and maximum. This enhances 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 'Get a COMPLETE member of Congress profile in ONE call' and specifies what it combines (bio/details, sponsored/cosponsored legislation). It distinguishes from sibling tools like congress_member_details and congress_member_bills.

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 'Use this instead of calling congress_member_details + congress_member_bills... individually' and provides ideal use cases for accountability research with cross-references to other tools.

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

congress_nomination_committeesA
Read-only

Get committees associated with a nomination. Shows committee activities (referral, hearing, discharge).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
nomination_numberYesNomination number

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's 'Get' verb aligns. It adds value by detailing the specific activities (referral, hearing, discharge), but does not disclose any additional behavioral traits 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?

The description is a single sentence that efficiently conveys the tool's purpose and the specific activities it covers, with no wasted words. It is front-loaded and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 has only two parameters, no output schema, and annotations, the description provides sufficient context about what the tool returns (committees and their activities). It is complete enough for an agent to understand its use, though it could mention output specifics.

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

Parameters3/5

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

Both parameters have descriptions in the schema (100% coverage). The description does not add any additional meaning or constraints beyond the schema, earning a baseline score of 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 clearly states the tool retrieves committees associated with a nomination and specifies the activities shown (referral, hearing, discharge). It uses a specific verb and resource, and it is distinct from sibling tools that focus on other aspects of nominations or bills.

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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. The context implies use for committee activities, but no direct comparison to sibling tools like congress_nomination_details or congress_nomination_full_profile.

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

congress_nomination_detailsA
Read-only

Get detailed information about a specific presidential nomination, including all actions (committee referral, hearing, vote, confirmation/rejection).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
nomination_numberYesNomination number (PN number)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's disclosure of returning all actions (committee referral, hearing, vote, confirmation/rejection) adds useful behavioral context beyond the annotation. No contradictions, and the description clarifies the scope of data 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 a single, concise sentence that front-loads the purpose and includes key details about actions. No redundant information, and every word adds value.

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

Completeness4/5

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

Given no output schema and low complexity (2 params), the description adequately covers returned data (all actions). It omits error handling or prerequisites, but for a lookup tool, this is acceptable. Slightly incomplete for edge cases, but overall 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?

Input schema covers both parameters with basic descriptions (congress number, nomination number). The description adds no additional semantic detail beyond the schema. Since schema_description_coverage is 100%, a baseline 3 is appropriate; no improvement needed.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed information about a presidential nomination, specifically listing the types of actions included (committee referral, hearing, vote, confirmation/rejection). This distinguishes it from sibling tools like congress_nomination_committees or congress_nomination_hearings, which focus on subsets.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. It implies use for a specific nomination but offers no context on when to prefer it over congress_nomination_full_profile or other nomination tools. With many siblings, this omission reduces guidance.

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

congress_nomination_full_profileA
Read-only

Get a COMPLETE presidential nomination profile in ONE call — combines nomination details, full action timeline, committee referrals/activity, and associated hearings (4 endpoints in parallel). Use this instead of calling congress_nomination_details + congress_nomination_committees + congress_nomination_hearings individually.

Ideal for: Tracking judicial and executive nominations from submission through confirmation/rejection. Cross-reference with lobbying_search for industry interest in the nominee.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
nomination_numberYesNomination number (PN number)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations include readOnlyHint, and description adds that it combines 4 endpoints in parallel, providing useful insight into internal behavior. No contradictions, and it discloses the composite nature beyond the 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?

Concise, front-loaded with purpose and benefit. Each sentence adds value: purpose, composition, usage guidance. No wasted words.

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?

Does not describe the output format or structure, which is important since there is no output schema. However, the description adequately conveys what the tool does and its scope. Could be more complete with return details.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for both parameters. The description does not add further meaning beyond the schema, but schema itself is clear. 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?

Clearly states the tool retrieves a complete presidential nomination profile in one call, combining multiple data sources. Distinguishes itself from sibling tools like congress_nomination_details, congress_nomination_committees, and congress_nomination_hearings.

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 advises using this tool instead of calling individual endpoints, and suggests cross-referencing with lobbying_search. Does not cover when not to use it, but the recommendation is clear and actionable.

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

congress_nomination_hearingsA
Read-only

Get printed hearings associated with a nomination. Shows hearing dates, citations, and chambers.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
nomination_numberYesNomination number

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the description adds value by mentioning what is shown (dates, citations, chambers) but does not discuss potential limitations like pagination or data freshness.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, no extraneous information. Highly efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 simplicity (2 required params, no output schema) and readOnlyHint annotation, the description is mostly complete. It could specify that it returns a list or mention result format, but the listed fields suffice for basic 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?

Input schema has 100% description coverage for both parameters. The description does not add additional context beyond what the schema provides, so 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 uses specific verb ('Get') and resource ('printed hearings') and clarifies association with a nomination. It clearly distinguishes from other nomination-related tools like congress_nomination_details by specifying printed hearings.

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 usage for retrieving printed hearings of a nomination but does not explicitly state when not to use or provide alternative tool names. The purpose is clear enough for an agent to select appropriately.

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

congress_nomination_nomineesA
Read-only

Get the list of nominees for a specific position within a nomination. Some nominations contain multiple positions (ordinals). Use congress_nomination_details first to see the ordinal numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
nomination_numberYesNomination number
ordinalYesPosition ordinal (typically 1)
limitNoMax results (default: 20)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, and description clarifies it returns a list of nominees for a specific ordinal. Adds value beyond annotations by explaining the relationship with ordinal.

Agents need to know what a tool does to the world before 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 wasted words. Front-loaded with purpose.

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

Completeness4/5

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

No output schema, but description gives the core idea. The limit parameter is not addressed in description, but that's minor given high schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 schema already documents parameters. Description adds minimal extra meaning beyond contextualizing the ordinal 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?

Clearly states the tool gets nominees for a specific position within a nomination. Distinguishes from siblings by referencing ordinals and congress_nomination_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?

Explicitly advises to use congress_nomination_details first to determine ordinal numbers. Provides clear context but lacks when-not-to-use guidance.

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

congress_nominationsA
Read-only

List presidential nominations to federal offices (judges, cabinet, ambassadors, agency heads). Shows nominee name, position, organization, and confirmation status.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number (default: current)
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already include readOnlyHint=true, so the description's primary behavioral contribution is listing the output fields. It does not disclose pagination behavior, default ordering, or other quirks beyond what is in the schema. The description adds some context but is limited.

Agents need to know what a tool does to the world before 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 purpose, no redundant information. 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 list tool with 4 parameters (all optional) and no output schema, the description is fairly complete. It explains what the tool returns. Minor omission: does not explicitly state that it only returns nominations for a given congress (default current), but the schema covers that. Score 4 as it is adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameters are already described in the schema. The description does not add any additional meaning or usage tips for the parameters (congress, limit, fromDateTime, toDateTime). 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 the verb 'list', the resource 'presidential nominations to federal offices', and specifies the types of offices (judges, cabinet, ambassadors, agency heads) and output fields (nominee name, position, organization, confirmation status). This distinguishes it from sibling tools that focus on details or full profiles.

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

Usage Guidelines3/5

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

The description implies usage for getting a list of nominations but does not explicitly state when to use this tool versus alternatives like congress_nomination_details or congress_nomination_full_profile. With many sibling nomination tools, explicit guidance would be beneficial.

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-only

Get recently enacted laws (bills signed by the President). Optionally filter by law type (public or private). Shows what legislation has become law.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number (default: current)
law_typeNoLaw type: pub (public law) or priv (private law). Default: all
limitNoMax results (default: 20)

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already provide readOnlyHint=true. The description adds no behavioral details beyond the annotation, such as rate limits, pagination, or result ordering. It merely restates the purpose.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the verb and resource. No superfluous words or 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 tool with 3 optional parameters and no output schema, the description covers the essential purpose and main filter. It is complete enough to understand basic 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%, with clear descriptions for each parameter. The description only restates the law_type filter, adding 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 clearly states the verb 'Get', the resource 'recently enacted laws', and explains that these are bills signed by the President. It distinguishes from sibling tools like congress_law_details by focusing on recency.

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 mentions optional filtering by law type but does not explicitly guide when to use this tool versus alternatives like congress_bill_details. Usage is implied but not clearly contrasted with siblings.

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-only

Search for bills in Congress by keyword, congress number, or bill type. Returns bill number, title, sponsor, latest action, and status.

Congress numbers: 118th (2023-2024), 119th (2025-2026), 117th (2021-2022). Bill types: hr (House), s (Senate), hjres, sjres, hconres, sconres, hres, sres

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoKeyword/text search across bill titles and summaries (e.g., 'infrastructure', 'tax reform', 'climate')
congressNoCongress number (e.g., 119 for 2025-2026, 118 for 2023-2024). Omit to list bills across all congresses
bill_typeNoBill type
limitNoMax results (default: 20)
offsetNoResults offset for pagination (default: 0)
fromDateTimeNoFilter by update date from this timestamp. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to this timestamp. Format: YYYY-MM-DDT00:00:00Z
sortNoSort order. Value can be updateDate+asc or updateDate+desc (default: updateDate+desc)

TDQS

A3.6/5.0
Behavior3/5

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

The description adds context about congress numbers and bill types but does not disclose behavioral traits beyond what the readOnlyHint annotation already provides (safe read). It lacks information on pagination behavior, rate limits, or response format, which are not covered by annotations.

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

Conciseness5/5

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

The description is concise: four sentences front-loading the purpose and then providing essential examples. No redundant or unnecessary 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?

Given the tool has 8 parameters all described in the schema, the description sufficiently covers return fields and provides examples. However, it could mention pagination (implicit via limit/offset) and that omitting congress searches all congresses, which is 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 description coverage is 100%, so the description adds minimal extra meaning—only provides examples of congress numbers and bill types, which are already in the schema. No additional semantics for date formatting or sort options are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'search' and the resource 'bills in Congress', and specifies search criteria (keyword, congress number, bill type). It also lists returned fields, distinguishing it from sibling tools like congress_bill_details which focus on specific bills.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as congress_bill_details or congress_bill_full_profile. The description does not mention preconditions or scenarios where other tools would be more appropriate.

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-only

Search for members of Congress by state, congress number, district, or get all current members. Supports: /member (all), /member/{stateCode} (by state), /member/{stateCode}/{district} (by district), /member/congress/{congress} (by congress), /member/congress/{congress}/{stateCode}/{district} (combined).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number. When used with state+district, filters to that congress. Use alone to list all members of a congress.
stateNoTwo-letter state code to filter by, e.g. 'CA', 'TX'. Can be used alone or with district.
districtNoHouse district number (use with state). Returns all historical members for that seat.
currentMemberNoFilter by current member status. true = current members only, false = former only
fromDateTimeNoFilter by update date start (YYYY-MM-DDT00:00:00Z)
toDateTimeNoFilter by update date end (YYYY-MM-DDT00:00:00Z)
limitNoMax results (default: 50)

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, indicating a safe read operation. The description adds the endpoint patterns but does not disclose additional behavior like pagination, default limit, or response format, so it provides limited extra 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 concise with two sentences. The first sentence front-loads the core purpose ('Search for members of Congress'), and the second lists the supported patterns 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?

The description covers the main use cases but omits details like pagination (limit parameter), date filtering, and the structure of returned data. While the schema covers parameters, the description could benefit from mentioning result limits or the 'currentMember' filter.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 all 7 parameters, so the schema already explains parameter purposes. The description only restates the endpoint patterns, adding no new semantic information 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 it searches for members of Congress using various criteria (state, congress, district, etc.) and lists the supported endpoint patterns. This distinguishes it from sibling member detail tools like congress_member_details.

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 scenarios through the listed endpoints (e.g., 'get all current members', 'by state'), but does not explicitly state when to use this tool versus alternatives like congress_member_details or congress_member_full_profile.

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

congress_senate_communication_detailsA
Read-only

Get detailed information about a specific Senate communication including abstract, committees, and congressional record date.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
communication_typeYesCommunication type: 'ec' (Executive Communication), 'pm' (Presidential Message), 'pom' (Petition or Memorial)
communication_numberYesCommunication number

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, so the description adds limited behavioral context beyond listing example fields. It does not disclose error handling, response format, or any other behavioral traits. However, it does not contradict annotations, and the described behavior aligns with a read-only retrieval.

Agents need to know what a tool does to the world before 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 is front-loaded with the action and resource ('Get detailed information about a specific Senate communication'). It lists key fields concisely without extraneous words, making it efficient for an agent to process.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 detail retrieval tool with three required parameters, the description provides a good overview of what it does and what information (abstract, committees, record date) it returns. It lacks mention of error cases or response format, but given the absence of an output schema and the tool's straightforward nature, it is largely 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%, meaning the input schema already describes all three parameters (congress, communication_type, communication_number). The description adds no additional meaning or context to these parameters, so it meets the baseline but does not improve 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 clearly states it gets detailed information about a specific Senate communication, listing key fields (abstract, committees, congressional record date). It distinguishes from sibling tools like congress_senate_communications (which lists communications) and congress_house_communication_details (different chamber), making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool vs alternatives. While it is implied that this is for details on a single communication after a search (like congress_senate_communications), no direct guidance is provided. The name helps, but explicit usage instructions are missing.

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

congress_senate_communicationsA
Read-only

List Senate communications — executive communications, presidential messages, and petitions/memorials referred to Senate committees. Types: ec (Executive Communication), pm (Presidential Message), pom (Petition or Memorial).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number
communication_typeNoCommunication type: 'ec' (Executive Communication), 'pm' (Presidential Message), 'pom' (Petition or Memorial)
limitNoMax results (default: 20)

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, so the description need not repeat that. However, it adds no extra behavioral traits such as pagination behavior, result count limits, or sorting defaults beyond the limit 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?

Two short sentences with no filler. The purpose is front-loaded, and the type list is efficiently appended. 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 list tool with three parameters and no output schema, the description provides adequate context for the input (congress, type, limit). However, it lacks details about the output format or pagination behavior, which would make 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%, with each parameter described in the schema. The description only reiterates the enum values (ec, pm, pom) already present in the schema, adding no new meaning. 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 states it lists Senate communications and enumerates the three specific types (executive communications, presidential messages, petitions/memorials). This distinguishes it from sibling tools like congress_committee_senate_communications (committee-specific) and congress_senate_communication_details (detail retrieval).

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 listing Senate communications by type and congress, but does not explicitly state when to use this tool versus alternatives (e.g., for a specific committee or details). No when-not-to-use guidance is provided.

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

congress_senate_votesA
Read-only

Get Senate roll call vote results from senate.gov XML. Shows how senators voted by party on specific legislation, nominations, and procedural motions. Coverage: 101st Congress (1989) to present. Cross-reference with: congress_house_votes (same bill's House vote), FEC (senator donors via fec_candidate_financials), lobbying_search (who lobbied on the bill), congress_member_bills (senator's voting vs sponsoring patterns). For House votes, use congress_house_votes.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number (default: current). Coverage: 101st (1989) to present
sessionNoSession (1 or 2). Default: current session (1 for odd years, 2 for even)
vote_numberNoSpecific roll call vote number. Omit to list recent votes.
limitNoMax results when listing votes (default: 20)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations indicate readOnlyHint=true, and the description confirms a non-destructive read operation. It adds context about the returned data (party breakdown, types of votes) beyond the annotation, with no contradictions.

Agents need to know what a tool does to the world before 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 core purpose, followed by coverage and cross-references. No wasted words, efficient and scannable.

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

Completeness4/5

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

Covers purpose, source, coverage, and related tools. Without an output schema, it implies the result structure (roll call votes by party), but does not specify exact fields or format. Sufficient for an agent to decide 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 coverage is 100% with detailed per-parameter descriptions. The tool-level description adds minimal extra value, only noting default limit and vote_number omission 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 clearly states the tool retrieves Senate roll call vote results from a specific source (senate.gov XML), covering a defined range (101st Congress to present). It distinguishes itself from the sibling tool congress_house_votes.

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 provides when-to-use and when-not-to-use guidance: 'For House votes, use congress_house_votes' and lists cross-references for complementary analyses (FEC, lobbying, member bills). Also notes the coverage window.

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

congress_treatiesA
Read-only

List treaties submitted to the Senate. Shows treaty topic, date transmitted, and ratification status.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number (default: all)
limitNoMax results (default: 20)
fromDateTimeNoFilter by update date from. Format: YYYY-MM-DDT00:00:00Z
toDateTimeNoFilter by update date to. Format: YYYY-MM-DDT00:00:00Z

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. The description adds that output includes topic, date transmitted, and ratification status, which is helpful but does not disclose other behaviors like default limit, pagination, or ordering. Score is adequate 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 extremely concise (two sentences, 14 words). It front-loads the purpose and immediately follows with expected output. Every word adds value with zero 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 list tool with no output schema, the description covers the purpose and key output fields. However, it omits default behavior (e.g., default congress and limit) and does not explain what happens when no parameters are provided. Still, it is fairly complete for an experienced 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?

The input schema has 100% description coverage for all 4 parameters. The tool description does not add any additional meaning to these parameters. Per guidelines, baseline is 3 when schema coverage is high and no extra param info is provided.

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

Purpose5/5

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

The description uses the specific verb 'List' and resource 'treaties submitted to the Senate'. It clearly states the output fields (topic, date transmitted, ratification status), distinguishing it from sibling tools like congress_treaty_details which focus on individual treaty information.

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 does not provide any guidance on when to use this tool versus alternatives (e.g., congress_treaty_details for detailed information). It neither states prerequisites nor conditions for use, leaving the agent to infer context 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.

congress_treaty_committeesB
Read-only

Get committees associated with a treaty. Typically the Senate Foreign Relations Committee.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
treaty_numberYesTreaty document number

TDQS

B3.3/5.0
Behavior3/5

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

The description aligns with the readOnlyHint annotation by stating 'Get committees,' indicating a read operation. The typical committee hint adds minor context. However, it does not disclose any additional behavioral traits such as authentication requirements or rate limits. The annotation already covers safety, so a score of 3 is appropriate.

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

Conciseness5/5

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

The description is extremely concise, with two sentences that directly convey the main purpose. No extraneous information. It is well front-loaded and easy 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?

While the description is adequate for a simple lookup, it lacks details about the return format or structure. Given that there is no output schema, the description could hint at what fields or data to expect. The context is partially complete but leaves some ambiguity.

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

Parameters3/5

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

Both parameters have descriptive text in the schema (congress, treaty_number). The description reinforces their purpose but adds no new semantic details. With 100% schema coverage, the baseline is 3, and the description does not exceed 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?

The description clearly states the tool retrieves committees associated with a treaty, and mentions a typical committee (Senate Foreign Relations Committee). It effectively communicates the specific verb and resource. However, it does not explicitly differentiate from sibling tools like congress_committee_details, but the context implies distinct functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions or conditions. It only hints at a typical committee but does not compare to other committee-related tools or specify prerequisites. This lack of context may lead to improper selection.

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

congress_treaty_detailsB
Read-only

Get detailed information about a specific treaty, including all Senate actions (committee referral, hearings, ratification vote).

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress in which the treaty was received
treaty_numberYesTreaty document number

TDQS

B3.3/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, confirming safe read. The description adds that the tool returns Senate actions (committee referral, hearings, ratification vote), offering behavioral context beyond the annotation but not covering other aspects like rate limits or authentication.

Agents need to know what a tool does to the world before 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 efficiently conveys the tool's function and key output content without extraneous words.

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, so the description partially compensates by mentioning Senate actions. However, it omits other possible return fields (e.g., treaty text, dates) and does not fully address completeness given the complexity of treaty details.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters (congress and treaty_number). The description does not add further semantic 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.

Purpose4/5

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

The description clearly states the tool retrieves detailed information about a specific treaty, including Senate actions. It distinguishes from list tools like congress_treaties, but does not explicitly differentiate from other detail tools such as congress_treaty_full_profile or congress_treaty_partitioned_details.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternative treaty tools (e.g., congress_treaty_full_profile, congress_treaty_committees). The description lacks usage context or exclusion criteria.

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

congress_treaty_full_profileA
Read-only

Get a COMPLETE treaty profile in ONE call — combines treaty details, full action timeline, and committee assignments (3 endpoints in parallel). Use this instead of calling congress_treaty_details + congress_treaty_committees individually.

Ideal for: International agreement research and Senate Foreign Relations Committee tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress in which the treaty was received
treaty_numberYesTreaty document number

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the safety profile is clear. The description adds that it combines three endpoints in parallel. No other behavioral traits (e.g., response size, rate limits) are disclosed. Bar is lower due to annotations, 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?

Two sentences, front-loaded with the key benefit and clear structure. 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?

No output schema exists, but the description explains what it returns (details, timeline, committees). For a composite tool, it gives a sufficient overview. Could be improved by noting the response format, but overall complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% coverage with descriptions for each parameter ('Congress in which the treaty was received', 'Treaty document number'). The description does not add any extra meaning beyond what the schema already provides. 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?

The description clearly states it gets a 'COMPLETE treaty profile' combining treaty details, action timeline, and committee assignments. It distinguishes itself from individual sibling tools like congress_treaty_details and congress_treaty_committees by offering a composite endpoint.

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 advises using this tool instead of calling the two individual endpoints. Provides ideal use cases ('International agreement research and Senate Foreign Relations Committee tracking'). Does not mention when not to use it, but the guidance is clear.

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

congress_treaty_partitioned_actionsA
Read-only

Get actions on a partitioned treaty (one with a suffix letter). Shows committee referral, hearings, and ratification votes for a specific treaty partition.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
treaty_numberYesTreaty document number
treaty_suffixYesTreaty partition letter (e.g., 'A', 'B')
limitNoMax results (default: 50)

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true. The description adds behavioral transparency by enumerating the specific actions returned (committee referral, hearings, ratification votes), which is helpful context beyond the schema. No contradictions with annotations.

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

Conciseness5/5

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

Two concise sentences: the first defines the tool's purpose, the second outlines what actions are included. No redundant information. Front-loaded with the key verb 'Get' and resource 'actions on a partitioned treaty'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 retrieval tool with no output schema, the description provides a good overview of the action types returned. However, it does not describe the output format (e.g., list of objects with fields), which would add completeness. Still, it covers the essential context for an agent to understand the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% coverage with descriptions for all four parameters. The description does not add additional semantics beyond what the schema provides (e.g., treaty_suffix is described as 'Treaty partition letter'). 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 it retrieves actions for a partitioned treaty (with a suffix letter), specifying the types of actions (committee referral, hearings, ratification votes). This distinguishes it from other treaty tools that handle full treaties or details.

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 when a treaty has a suffix letter, but does not explicitly mention when to use alternative tools (e.g., congress_treaty_details for non-partitioned treaties) or provide exclusion criteria. Usage context is inferred but not explicit.

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

congress_treaty_partitioned_detailsA
Read-only

Get details about a partitioned treaty (one with a suffix letter like A, B, etc.). Some treaties are divided into parts, each identified by a suffix.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number
treaty_numberYesTreaty document number
treaty_suffixYesTreaty partition letter (e.g., 'A', 'B')

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, so the description's lack of additional behavioral disclosure is acceptable. The description adds context about partitioned treaties but no new behavioral 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?

The description is a single, clear sentence that efficiently conveys the tool's purpose with an illustrative example. No wasted words, though it could include structure like bullet points for better scanability.

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 adequately explains what a partitioned treaty is and when to use the tool, but it lacks any mention of the output or response format. Given no output schema, more context about return details would 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?

The input schema has 100% description coverage for all three parameters. The description adds no additional semantic meaning beyond explaining the suffix concept, which is already clear from the schema's parameter 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 'Get details about a partitioned treaty' with a concrete example of suffix letters, which distinguishes it from the sibling tool congress_treaty_details for non-partitioned treaties.

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 when a treaty has a suffix letter but does not explicitly contrast with non-partitioned treaty tools or provide when-not-to-use guidance.

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

doj_blog_detailA
Read-only

Get the full text of a specific DOJ blog entry by UUID. Returns the complete body, component, topic, date, and URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesUUID of the blog entry (from search results)

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, and the description aligns by stating it retrieves data. It adds value by detailing the returned fields (body, component, topic, date, URL), which is beyond annotation 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 efficient sentences, front-loaded with the main verb, and no extraneous 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 detail retrieval with one parameter and no output schema, the description adequately explains the purpose, parameter source, and return fields. It does not mention error handling or edge cases, but those are minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 does not add additional meaning beyond the schema's parameter description. 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 clearly states it gets the full text of a specific DOJ blog entry using a UUID. It distinguishes itself from sibling tools like doj_blog_entries by focusing on detail retrieval.

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 when a UUID is available from search results but does not explicitly state when to use or avoid this tool, nor mention alternatives.

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

doj_blog_entriesA
Read-only

Search DOJ Office of Public Affairs blog entries (3,200+ records). Blog entries often provide more context and analysis than press releases. Covers policy discussions, division activities, and enforcement context.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort by
directionNoSort direction: 'DESC' (newest first), 'ASC'
pagesizeNoResults per page (default 20, max 50)
pageNoPage number (zero-indexed)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, and the description adds value by specifying the scope (3,200+ records, covers policy discussions, activities, enforcement context). No contradictions, and the read-only nature is consistent.

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

Conciseness5/5

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

The description is three short, efficient sentences with no wasted words. It front-loads the core action and adds relevant 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?

Given the simple parameter set and lack of output schema, the description adequately explains the tool's purpose and content scope. It could mention pagination or result limits but is sufficient for an agent to understand 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?

Input schema has 100% description coverage for all 4 parameters, so baseline is 3. The description does not add any parameter-specific information 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 starts with a specific verb 'Search' and the resource 'DOJ Office of Public Affairs blog entries', clearly stating the tool's action. It further distinguishes from sibling tools like doj_press_releases by noting blog entries provide more context and analysis.

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 compares blog entries to press releases, implying when to use this tool for richer context. However, it does not explicitly state when not to use it or list other alternatives beyond press releases.

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

doj_press_release_detailA
Read-only

Get the full text of a specific DOJ press release by UUID. Returns the complete body, component, topic, date, and URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesUUID of the press release (from 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 as read-only. Description adds value by listing returned fields (body, component, topic, date, URL), which is useful behavioral context.

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

Conciseness5/5

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

Two concise sentences with no wasted words. Information is front-loaded 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?

Given single parameter and no output schema, description adequately lists returned fields and explains the tool's purpose. It is sufficient for an agent to use correctly.

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

Parameters3/5

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

Schema description already covers the uuid parameter well. Description does not add additional meaning beyond what is in the schema, so 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?

Description clearly states the action 'Get' and the resource 'full text of a specific DOJ press release by UUID'. It differentiates from sibling tools like doj_press_releases (list) and doj_blog_detail.

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?

Implies usage after obtaining a UUID from search results. Explicit guidance on when not to use or alternatives is lacking, but context from sibling tools provides some differentiation.

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

doj_press_releasesA
Read-only

Search DOJ press releases (262K+ records covering all DOJ divisions). Includes enforcement actions, indictments, settlements, and policy announcements. Filter by title keyword and sort by date. Components: FBI, DEA, ATF, Civil Rights Division, Antitrust, USAO, and more. Topics: Drug Trafficking, Cybercrime, National Security, Civil Rights, Financial Fraud, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoFilter by title keyword: 'cybercrime', 'antitrust', 'fentanyl', 'civil rights'
sortNoSort by: 'date' (press release date), 'created' (when added)
directionNoSort direction: 'DESC' (newest first, default), 'ASC' (oldest first)
pagesizeNoResults per page (default 20, max 50)
pageNoPage number (zero-indexed). Use with pagesize for pagination.

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; the description adds context about the dataset size and divisions/topics but does not disclose pagination behavior or other traits. 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 concise with 5 lines, front-loads purpose, and lists key details efficiently without verbosity.

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 search tool with no output schema, the description covers scope, content, and filter options, but does not explain the return format (e.g., fields of each press release), which may be needed 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%; the description mentions filtering by title and sorting, which aligns with schema fields, but does not add new 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 clearly states the tool searches DOJ press releases, lists content types (enforcement actions, indictments), and distinguishes from siblings like doj_blog_detail and doj_press_release_detail by being a search/listing 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 mentions filtering by title and sorting by date, implying use for broad searches, but does not explicitly state when to use this tool versus alternatives like doj_press_release_detail.

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

dol_osha_accident_injuriesA
Read-only

Get injury details from OSHA accident investigations. Returns demographics (age, sex), nature of injury, body part, source, degree of injury. Degree of injury: 1=Fatality, 2=Hospitalized, 3=Non-hospitalized. Link to accidents via summary_nr.

ParametersJSON Schema
NameRequiredDescriptionDefault
summary_nrNoAccident summary number (links to specific accident)
degree_of_injNoDegree of injury: 1=Fatality, 2=Hospitalized, 3=Non-hospitalized
limitNoMax results (default 25)
offsetNoPagination offset

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. Description adds return field details and degree mapping, but does not discuss pagination behavior, error handling, or authentication. Adequate but not rich 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?

Three sentences, no redundancy, purpose in first sentence. Every sentence adds value. Very concise.

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

Completeness4/5

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

Despite no output schema, description lists return fields and degree mapping. Covers essential info for using the tool. Could mention pagination defaults or ordering, but overall 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 coverage is 100% with parameter descriptions. Description repeats degree mapping and linking, adding no new semantics beyond 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?

Description clearly states it retrieves injury details from OSHA accident investigations, specifies return fields (demographics, nature of injury, etc.), and mentions linking via summary_nr. This differentiates it from sibling tools like dol_osha_accidents and dol_osha_violations.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives. No mentions of prerequisites, exclusions, or comparative advantages. The description only implies usage when summary_nr is available from accident data.

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

dol_osha_accidentsA
Read-only

Search OSHA accident and fatality investigations. Returns event descriptions, dates, locations, and industry codes. Use dol_osha_accident_injuries to get injury details for a specific accident.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'CA', 'TX', 'NY'
sic_codeNoSIC industry code
event_keywordNoEvent keyword: 'fall', 'electrocution', 'struck', 'caught'
sort_byNoField to sort by: 'event_date' (default)
sort_orderNoSort direction (default: desc)
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, indicating a safe read operation. The description does not add any behavioral information beyond that (e.g., rate limits, authentication, or response format). It does not contradict annotations, so a baseline score of 3 is appropriate.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose and output summary. Every sentence provides value, and there is no unnecessary 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?

The description adequately covers the tool's purpose and output fields, and it references a related tool for deeper details. While it does not mention pagination or sorting (present in schema), the output description is sufficient given the complexity of 7 optional parameters and 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 the input schema fully documents each parameter. The description adds no additional parameter-level details; it only lists output fields. Baseline of 3 is correct 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?

The description uses a specific verb 'Search' and clearly identifies the resource as 'OSHA accident and fatality investigations'. It lists return fields (event descriptions, dates, locations, industry codes) and distinguishes from the sibling tool 'dol_osha_accident_injuries' by directing to that tool for injury 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 concrete alternative: 'Use dol_osha_accident_injuries to get injury details for a specific accident.' This helps the agent decide when to use a different tool. However, it does not explicitly state when to use this tool over other OSHA tools like inspections or violations, though the name is fairly self-explanatory.

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

dol_osha_inspectionsB
Read-only

Search OSHA workplace inspections. Find inspections by state, establishment name, industry (SIC/NAICS), or type. Inspection types: A=Accident, B=Complaint, C=Referral, H=Planned, L=Programmed high-hazard. Returns site details, inspection type/scope, open/close dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'CA', 'TX', 'NY'
estab_nameNoEstablishment name: 'Amazon', 'Walmart', 'Tesla'
naics_codeNoNAICS industry code: '236220' (commercial construction)
sic_codeNoSIC industry code
insp_typeNoInspection type: A=Accident, B=Complaint, C=Referral, H=Planned, L=High-hazard
sort_byNoField to sort by: 'open_date' (default), 'close_case_date'
sort_orderNoSort direction (default: desc)
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, which is consistent. The description adds value by explaining inspection type codes and what information is returned, but it does not disclose pagination behavior, sorting defaults, or result limits, which are important for a 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 extremely concise (4 sentences) and front-loaded with the core purpose. Every sentence adds value: statement of action, criteria, inspection types, and return contents. No 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?

With 9 optional parameters, no output schema, and minimal annotations, the description covers the main search intent and return fields, but misses details like pagination, sorting, and the ability to combine filters. It is adequate but not comprehensive.

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

Parameters4/5

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

The input schema has 100% coverage with descriptions for each parameter. The description adds meaning by explaining the inspection type code letters (A, B, C, H, L) and listing the main search criteria, which goes beyond the schema's enum definitions.

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 searches OSHA workplace inspections and lists searchable criteria (state, establishment name, industry, type) and what is returned (site details, inspection type/scope, dates). It does not explicitly differentiate from sibling tools like dol_osha_accidents or dol_osha_violations, but the term 'inspections' makes the distinction apparent.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives is provided. There is no mention of prerequisites, when not to use, or scenarios where sibling tools (e.g., dol_osha_violations) would be more appropriate.

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

dol_osha_violationsA
Read-only

Search OSHA violations found during workplace inspections. Violation types: S=Serious, W=Willful, R=Repeat, O=Other, U=Unclassified, F=Failure to abate. Returns standard cited, penalty amounts (initial and current), abatement status. Link to inspections via activity_nr.

ParametersJSON Schema
NameRequiredDescriptionDefault
activity_nrNoInspection activity number (links to specific inspection)
viol_typeNoViolation type: S=Serious, W=Willful, R=Repeat, O=Other
standardNoOSHA standard cited: '19100147' (control of hazardous energy)
sort_byNoField to sort by: 'issuance_date' (default), 'current_penalty'
sort_orderNoSort direction (default: desc)
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's 'Search' aligns. The description adds that the tool returns penalty amounts and abatement status, but no additional behavioral traits (e.g., rate limits, auth needs) are disclosed. Annotations carry most of 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?

The description is concise: two sentences plus a line for violation types. It is front-loaded with the core purpose and structured efficiently with no superfluous 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?

Despite no output schema, the description adequately covers what the tool returns (standard cited, penalties, abatement status) and how it links to inspections. The parameter list is fully documented in the schema, and the description provides sufficient context for an agent to use the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 7 parameters. The description reiterates violation types but adds no new meaning beyond the schema. 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 states the tool searches OSHA violations and lists return fields. It mentions linking to inspections via activity_nr, which helps distinguish from inspection or accident tools. However, it does not explicitly contrast with sibling OSHA tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like dol_osha_inspections or dol_osha_accidents. The description lacks context for when this tool is appropriate.

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

dol_ui_claims_nationalA
Read-only

Get national weekly Unemployment Insurance (UI) initial and continued claims. Includes insured unemployment rate and covered employment. Key economic indicator — spikes indicate labor market stress.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of weekly records (default 25, use 52 for 1 year)
offsetNoPagination offset
sort_byNoField to sort by: 'rptdate' (default)
sort_orderNoSort direction (default: desc)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'Get' is consistent. It adds context on what data is included but does not disclose pagination behavior or error handling. The bar is lowered by annotations, and the description adds minimal extra 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?

The description is three sentences, front-loaded with the main purpose, and every sentence adds value. No redundancy or unnecessary words.

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

Completeness4/5

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

Given the lack of output schema, the description partially covers return values by listing included metrics. However, it does not specify the exact format or structure of the response, leaving some ambiguity 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%, so the baseline is 3. The description does not elaborate on parameter meaning beyond the schema, which already documents parameters like limit, offset, sort_by, and sort_order adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves national weekly UI claims, including initial and continued claims, insured unemployment rate, and covered employment. The verb 'Get' and resource are specific, and the tool is distinct from the sibling 'dol_ui_claims_state' for state 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 implies use for national-level labor market monitoring, mentioning it as a key economic indicator for stress. However, it does not explicitly state when not to use it or directly compare with alternatives like the state-level tool.

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

dol_ui_claims_stateA
Read-only

Get state-level weekly Unemployment Insurance (UI) claims. Compare initial claims, continued claims, and insured unemployment rate across states.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'CA', 'TX', 'NY'. Omit for all states.
limitNoNumber of records (default 25)
offsetNoPagination offset
sort_byNoField to sort by: 'rptdate' (default)
sort_orderNoSort direction (default: desc)

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, so safety is clear. The description adds context on data scope (weekly, state-level, specific metrics) but does not detail pagination, response structure, or how multiple states are returned. This is adequate but not comprehensive.

Agents need to know what a tool does to the world before 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 extremely concise with two sentences. The first sentence states the action and resource, the second enumerates the key metrics. No wasted words; every sentence is functional.

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

Completeness3/5

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

Given the lack of an output schema and the moderate complexity (5 parameters), the description covers the high-level purpose and data types but omits details about the response format, pagination behavior, and how data is grouped. It is not fully complete for an agent to understand expected output without additional 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?

The input schema already has 100% coverage with detailed descriptions for all parameters. The description adds value by explaining the data content (initial claims, continued claims, insured unemployment rate) beyond the schema, but parameter-specific guidance is already sufficient.

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 retrieving state-level weekly UI claims and explicitly mentions the specific metrics (initial claims, continued claims, insured unemployment rate). It distinguishes from the national sibling tool by emphasizing 'state-level' and 'across states', though it could be more explicit about the exact return structure.

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 for state-level comparisons but does not explicitly state when to use this tool versus the national version (dol_ui_claims_national) or provide when-not-to-use guidance. It assumes context from the name and sibling list, but lacks direct contrast.

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

dol_whd_enforcementA
Read-only

Search WHD (Wage and Hour Division) enforcement cases. Covers wage theft investigations: back wages owed, penalties assessed, violation counts. Laws enforced: FLSA (minimum wage/overtime), FMLA (family leave), Davis-Bacon (prevailing wage), SCA (service contracts). Data available since FY2005.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'CA', 'TX', 'NY'
trade_nmNoBusiness/trade name: 'McDonald\'s', 'Subway', 'Walmart'
naics_codeNoNAICS industry code: '722511' (full-service restaurants)
sort_byNoField to sort by: 'findings_end_date' (default), 'bw_atp_amt' (back wages)
sort_orderNoSort direction (default: desc)
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

A4/5.0
Behavior4/5

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

ReadOnlyHint true aligns with search description. Adds data context (since FY2005, covered laws). No contradictions.

Agents need to know what a tool does to the world before 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 main purpose, no unnecessary words.

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

Completeness4/5

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

Provides scope, laws, and data timeframe. No output schema but acceptable for search tool. Lacks pagination details but schema covers limit/offset.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 100% with descriptions. Description adds no extra parameter info beyond 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?

Clearly states it searches WHD enforcement cases, lists specific types (back wages, penalties, violations) and laws (FLSA, FMLA, Davis-Bacon, SCA). Distinct from OSHA or UI 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?

Provides what it covers but no explicit when-to-use or when-not-to-use vs siblings. Implicitly clear but lacks exclusion criteria.

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

eia_electricityA
Read-only

Get electricity retail prices, generation, or consumption by state and sector.

Sectors: residential (RES), commercial (COM), industrial (IND), transportation (TRA), all (ALL). Data types: 'price' (cents/kWh), 'revenue' (M$), 'sales' (MWh), 'customers'

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code (e.g., 'CA', 'TX'). Omit for national.
sectorNoSector: RES=residential, COM=commercial, IND=industrial, ALL=default
data_typeNoData type (default: price in cents/kWh)
frequencyNoFrequency (default: monthly)
startNoStart date (YYYY-MM or YYYY). Default: 2 years ago
endNoEnd date (YYYY-MM or YYYY). Default: latest available
lengthNoMax rows (API max: 5000). Omit to let date range control volume.
offsetNoRow offset for pagination

TDQS

A4/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, so the agent knows it's a safe read. The description adds no further behavioral context (e.g., rate limits, pagination, default behaviors). Schema parameters describe defaults, but the description itself adds minimal behavioral info.

Agents need to know what a tool does to the world before 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 brief and front-loaded with the purpose, followed by a concise enumeration of sectors and data types. Every sentence adds 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?

The description explains the core functionality and key parameters. However, given the 8 optional parameters and no output schema, it could briefly mention default date ranges or pagination behavior. Still, schema descriptions cover many details, making it largely complete.

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% with parameter descriptions. The description adds value by listing example sector codes (RES, COM, etc.) and data type units (cents/kWh, M$, MWh, customers), which enriches understanding beyond the schema's enum 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 retrieves electricity retail prices, generation, or consumption by state and sector. It lists specific sectors (RES, COM, IND, TRA, ALL) and data types (price, revenue, sales, customers), distinguishing it from sibling tools like eia_natural_gas or eia_petroleum.

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 electricity data but does not explicitly state when to use it over alternatives or provide when-not-to-use guidance. Sibling tools exist for other energy types, but no comparison or exclusion is mentioned.

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-only

Get natural gas prices — Henry Hub spot price, citygate, residential, commercial, industrial, electric power.

Process codes: PRS (citygate), PRP (electric power), PRC (commercial), PRI (industrial), PRR (residential), PNG (Henry Hub spot)

ParametersJSON Schema
NameRequiredDescriptionDefault
processNoPrice type: 'PRS' (citygate), 'PRP' (electric power), 'PRC' (commercial), 'PRI' (industrial), 'PRR' (residential). Default shows all.
frequencyNoFrequency (default: monthly)
startNoStart date (YYYY-MM). Default: 2 years ago
endNoEnd date (YYYY-MM). Default: latest available
lengthNoMax rows (API max: 5000). Omit to let date range control volume.
offsetNoRow offset for pagination

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint: true. The description adds context about price types and frequency, which is consistent. No disruptive behavior is expected, and pagination details are in the schema.

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

Conciseness5/5

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

Two concise sentences. The first states the purpose and scope, the second explains process codes. No wasted words, 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?

The description covers the tool's purpose, key parameters, and data types. Given the simple query nature, no output schema is needed. Siblings clearly differentiate by energy type.

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, baseline is 3. The description adds meaning by explaining what each process code stands for (e.g., 'PRS' = citygate), which is helpful beyond the schema's listing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get natural gas prices' and lists specific price types (Henry Hub spot, citygate, residential, etc.). It distinguishes from siblings like eia_electricity and eia_petroleum by focusing on natural gas.

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 process codes for different price types, guiding which parameter to use. It doesn't explicitly mention when not to use or alternatives, but the tool name and context make usage clear.

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

eia_petroleumA
Read-only

Get petroleum/oil prices — crude oil spot prices (WTI, Brent), retail gasoline prices, diesel, heating oil.

Product codes:

  • EPCBRENT: Brent crude oil spot price

  • EPCWTI: WTI crude oil spot price

  • EMM_EPMRU_PTE_NUS_DPG: US regular gasoline retail

  • EMM_EPMPU_PTE_NUS_DPG: US premium gasoline retail

  • EMD_EPD2D_PTE_NUS_DPG: US diesel retail

  • EER_EPJK_PF4_RGC_DPG: US jet fuel spot price

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoProduct type: 'crude' (default — WTI), 'gasoline', 'diesel', 'all'. Or a specific series ID like 'EPCWTI'
frequencyNoFrequency (default: monthly)
startNoStart date (YYYY-MM or YYYY-MM-DD). Default: 2 years ago
endNoEnd date (YYYY-MM or YYYY-MM-DD). Default: latest available
lengthNoMax rows to return (API max: 5000). Omit to let date range control volume.
offsetNoRow offset for pagination (use with length)

TDQS

A4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description uses 'Get', consistent with read-only behavior. The description adds product code details but does not disclose rate limits, authentication needs, or data update frequency 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?

The description is concise, front-loaded with the main purpose, and efficiently lists product codes in a structured manner. Every sentence adds value 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?

Given no output schema, the description adequately explains the types of prices returned. However, it could briefly mention return format or data source to improve completeness for a data retrieval tool.

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

Parameters4/5

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

The input schema has 100% coverage, but the description enriches parameter semantics by explaining specific product codes (e.g., 'EPCWTI' for WTI crude) and their meanings, which is not present in the schema's parameter 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 the tool retrieves petroleum/oil prices, listing specific types (crude oil spot prices, retail gasoline, diesel, heating oil). It distinguishes itself from sibling EIA tools (e.g., eia_electricity, eia_natural_gas) by focusing on petroleum.

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 for petroleum price queries but does not explicitly state when to use this tool versus alternatives (e.g., other EIA tools). No exclusion criteria or comparative guidance is provided.

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

eia_state_energyA
Read-only

Get state-level energy data from the State Energy Data System (SEDS). Covers production, consumption, expenditures, and prices by energy source for all 50 states.

MSN codes (energy data codes):

  • TETCB: Total energy consumption (trillion BTU)

  • TETCD: Total energy consumption per capita

  • TEPRB: Total energy production (trillion BTU)

  • ESTCB: Electricity total consumption

  • CLTCB: Coal consumption

  • NNTCB: Natural gas consumption

  • PATCB: Petroleum consumption

  • RETCB: Renewable energy consumption

  • NUETB: Nuclear energy consumption

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code (e.g., 'CA'). Omit for all states.
msnNoMSN energy data code. 'TETCB' (total consumption, default), 'TETCD' (per capita), 'TEPRB' (production), 'RETCB' (renewables), 'PATCB' (petroleum)
startNoStart year (YYYY). Default: 5 years ago
endNoEnd year (YYYY). Default: latest available
lengthNoMax rows (API max: 5000). Omit to let date range control volume.
offsetNoRow offset for pagination

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, confirming safe read operation. The description adds context about data coverage and codes but does not disclose behavioral traits like pagination limits (though 'length' parameter has max 5000 in schema), rate limits, or handling of large result sets. It provides moderate incremental 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 concise with two clear paragraphs: the first states purpose and coverage, the second lists useful codes. Information is front-loaded and every sentence adds value 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?

Given moderate complexity (6 parameters, no required, no output schema), the description provides adequate context: source (SEDS), coverage, code meanings. It lacks details on expected output structure but sufficiently informs the agent of what data to expect. The comprehensive parameter descriptions in schema complement the description well.

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?

Schema coverage is 100%, but the description adds significant value by listing additional MSN codes (e.g., CLTCB, NNTCB) with explanations beyond the schema's partial list. It clarifies the meaning of each code (e.g., trillion BTU, per capita), enhancing understanding for the 'msn' parameter. The 'state' parameter is well-described in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get state-level energy data from the State Energy Data System (SEDS)' with specific verb and resource, identifies coverage (production, consumption, expenditures, prices) and scope (all 50 states). The listed MSN codes further specify the data types, distinguishing it from sibling EIA tools that cover national or sector-specific 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?

The description implies usage for state-level energy data but does not explicitly state when to use this tool versus alternatives like eia_electricity or eia_natural_gas. No when-not-to-use or alternative guidance is provided, relying on the agent to infer from the description of state-level scope.

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

eia_total_energyA
Read-only

Get the monthly/annual U.S. energy overview — total production, consumption, imports, exports, and prices across all energy sources.

MSN codes:

  • ELETPUS: Electricity net generation

  • ELNIPUS: Electricity net imports

  • CLTCPUS: Coal consumption

  • NNTCPUS: Natural gas consumption

  • PATCPUS: All petroleum consumption

  • RETCPUS: Renewable energy consumption

  • NUETPUS: Nuclear electric power

ParametersJSON Schema
NameRequiredDescriptionDefault
msnNoMSN code to filter by. Omit for overview of major categories.
frequencyNoFrequency (default: monthly)
startNoStart date (YYYY-MM or YYYY). Default: 2 years ago
endNoEnd date (YYYY-MM or YYYY). Default: latest available
lengthNoMax rows (API max: 5000). Omit to let date range control volume.
offsetNoRow offset for pagination

TDQS

A3.8/5.0
Behavior3/5

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

The annotations include 'readOnlyHint: true', confirming the tool is read-only. The description adds context about the data fields (production, consumption, etc.) and lists MSN codes, but does not disclose additional behavioral traits such as pagination limits (though offset/length are in schema), rate limits, or data update frequency. This is adequate 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.

Conciseness4/5

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

The description is concise: one sentence stating the purpose, followed by a list of MSN codes. It is front-loaded with the main action and resource. The list is helpful but could be slightly more compact. Overall, no superfluous content.

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

Completeness3/5

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

Given the tool has 6 parameters but no output schema, the description does not explain the return format or structure of the response. It covers the purpose and parameter options (via schema) but lacks details on what the output contains beyond the listed categories. This is sufficient for a data retrieval tool but incomplete for an agent needing to parse results.

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?

Although the schema provides 100% description coverage for parameters, the description adds specific MSN codes with their meanings (e.g., 'ELETPUS: Electricity net generation'), which is not present in the schema. This clarifies the intended values beyond the schema's generic 'MSN code to filter by'. Other parameters are adequately covered by 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 states 'Get the monthly/annual U.S. energy overview — total production, consumption, imports, exports, and prices across all energy sources.' It clearly identifies the verb (Get), resource (U.S. energy overview), and scope (total across all sources). This distinguishes it from siblings like eia_electricity, eia_natural_gas, etc., which focus on specific energy types or state-level 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?

The description implies the tool is for a national total energy overview but does not explicitly state when to use it versus alternative tools (e.g., eia_state_energy for state data, eia_electricity for electricity-specific). No direct comparison or exclusion guidance is provided, leaving it to the agent to infer usage context.

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

epa_air_qualityA
Read-only

Get air quality data from EPA's Air Quality System (AQS). Returns annual summary data by state (county-level monitor readings for criteria pollutants). Parameters: '14129' (Lead (Pb)), '42101' (CO (Carbon Monoxide)), '42401' (SO2 (Sulfur Dioxide)), '42602' (NO2 (Nitrogen Dioxide)), '44201' (Ozone), '81102' (PM10), '88101' (PM2.5 (FRM/FEM)), '88502' (PM2.5 (non-FRM, e.g. continuous)). Services: 'annualData' (Annual summaries (yearly statistics per monitor)), 'dailyData' (Daily summaries (daily mean, max, etc.)), 'quarterlyData' (Quarterly summaries (quarterly statistics)), 'sampleData' (Raw sample data (hourly or finer grain)). States use 2-digit FIPS codes: '01'=AL, '06'=CA, '37'=NC, '48'=TX. bdate/edate must be in same year (YYYYMMDD format). Requires AQS_API_KEY and AQS_EMAIL. Signup: https://aqs.epa.gov/data/api/signup

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYes2-digit state FIPS code with leading zero: '06' (CA), '48' (TX), '37' (NC)
paramYesAQS parameter code: '14129' (Lead (Pb)), '42101' (CO (Carbon Monoxide)), '42401' (SO2 (Sulfur Dioxide)), '42602' (NO2 (Nitrogen Dioxide)), '44201' (Ozone), '81102' (PM10), '88101' (PM2.5 (FRM/FEM)), '88502' (PM2.5 (non-FRM, e.g. continuous)). Up to 5 comma-separated.
bdateYesBegin date YYYYMMDD: '20240101'
edateYesEnd date YYYYMMDD (must be same year as bdate): '20241231'
countyNo3-digit county FIPS code within the state: '183' (Wake Co, NC), '037' (Los Angeles)
serviceNoData service: 'annualData', 'dailyData', 'quarterlyData', 'sampleData'. Default: annualData

TDQS

A3.6/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 (readOnlyHint: true). The description adds useful behavioral context: required authentication (AQS_API_KEY and AQS_EMAIL), date formatting rules, and a signup link. No destructive actions disclosed—consistent with annotation.

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 fairly concise and front-loaded with the main purpose. It lists parameters and services in a clear, structured manner. However, it could be slightly shorter by moving the long list of pollutant codes to the schema description, but it remains 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 no output schema, the description covers expected return type (annual summary data) and available services (annual, daily, quarterly, sample). It also includes authentication details, date constraints, and examples for state and county codes. Missing precise output structure but sufficient for a query tool.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds extra clarification beyond schema: explains parameter codes (pollutants, states) with examples, notes that 'param' accepts up to 5 comma-separated values, and emphasizes that bdate/edate must be in the same year. This compensates for schema descriptions that lack these constraints.

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

Purpose4/5

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

The description clearly states the tool retrieves air quality data from EPA's AQS and specifies the data type (annual summary, county-level, criteria pollutants). However, it does not explicitly differentiate from similar sibling tools like epa_aqs_daily, which may cause confusion.

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 constraints (same year for dates, comma-separated params, required API key) but does not offer guidance on when to use this tool over alternatives like epa_aqs_daily or epa_aqs_monitors. No explicit when-to-use or when-not-to-use instructions.

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

epa_aqs_dailyA
Read-only

Get daily air quality summary data from EPA AQS. Returns daily mean, max, and observation count per monitor. Parameters: '14129' (Lead (Pb)), '42101' (CO (Carbon Monoxide)), '42401' (SO2 (Sulfur Dioxide)), '42602' (NO2 (Nitrogen Dioxide)), '44201' (Ozone), '81102' (PM10), '88101' (PM2.5 (FRM/FEM)), '88502' (PM2.5 (non-FRM, e.g. continuous)). Useful for tracking day-to-day pollution levels. Cross-reference with CDC health data. Requires AQS_API_KEY and AQS_EMAIL.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYes2-digit state FIPS code: '06' (CA), '48' (TX)
paramYesAQS parameter code: '14129' (Lead (Pb)), '42101' (CO (Carbon Monoxide)), '42401' (SO2 (Sulfur Dioxide)), '42602' (NO2 (Nitrogen Dioxide)), '44201' (Ozone), '81102' (PM10), '88101' (PM2.5 (FRM/FEM)), '88502' (PM2.5 (non-FRM, e.g. continuous))
bdateYesBegin date YYYYMMDD
edateYesEnd date YYYYMMDD (same year as bdate)
countyNo3-digit county FIPS code

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, so the tool is known as read-only. The description adds that it requires AQS_API_KEY and AQS_EMAIL, which is critical behavioral information. No contradictory statements, and the return format is partially described. Rate limits or pagination are not mentioned, but the key auth requirement is a valuable addition.

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 four sentences and gets to the point quickly, stating purpose, return values, parameter examples, and usage context. The list of pollutant codes is a bit redundant with the schema, but overall it is well-structured and concise without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 absence of an output schema, the description explains that it returns daily mean, max, and observation count. It also mentions the need for API keys. For a tool with 5 parameters and 4 required, this is fairly complete, though it could clarify the structure (e.g., per monitor per day). Still, it provides enough context for an agent to understand the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 with descriptions for all parameters. The description repeats the parameter codes and pollutant names, but does not add new semantics beyond what is already in the schema. Therefore, it meets the baseline of 3 without additional 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 states it returns daily air quality summary data from EPA AQS, including daily mean, max, and observation count. The verb 'Get' and the resource 'daily air quality summary data' are specific, and the list of pollutant codes adds clarity. While not explicitly distinguishing from siblings, the purpose is unambiguous.

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

Usage Guidelines3/5

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

The description mentions it is useful for tracking day-to-day pollution levels and suggests cross-referencing with CDC health data, providing some context. However, it does not explicitly state when to use this tool versus alternatives like epa_air_quality or epa_aqs_monitors, nor does it provide exclusions.

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

epa_aqs_monitorsA
Read-only

Find air quality monitoring stations from EPA AQS. Returns monitor locations, operational dates, measurement types, and operating agencies. Parameters: '14129' (Lead (Pb)), '42101' (CO (Carbon Monoxide)), '42401' (SO2 (Sulfur Dioxide)), '42602' (NO2 (Nitrogen Dioxide)), '44201' (Ozone), '81102' (PM10), '88101' (PM2.5 (FRM/FEM)), '88502' (PM2.5 (non-FRM, e.g. continuous)). Useful for finding what is being measured and where. Requires AQS_API_KEY and AQS_EMAIL.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYes2-digit state FIPS code: '06' (CA), '48' (TX)
paramYesAQS parameter code: '14129' (Lead (Pb)), '42101' (CO (Carbon Monoxide)), '42401' (SO2 (Sulfur Dioxide)), '42602' (NO2 (Nitrogen Dioxide)), '44201' (Ozone), '81102' (PM10), '88101' (PM2.5 (FRM/FEM)), '88502' (PM2.5 (non-FRM, e.g. continuous))
bdateYesBegin date YYYYMMDD
edateYesEnd date YYYYMMDD
countyNo3-digit county FIPS code

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, and the description adds context by stating the tool returns specific data (monitor locations, dates, etc.) and requires API credentials. This provides useful behavioral context beyond the annotation.

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 relatively concise with two sentences and a list. However, the list of parameter codes is redundant with the schema, and could be omitted to reduce clutter.

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 basic output and credentials needed, but lacks details on return format, pagination, error handling, or rate limits. For a tool with 5 parameters and no output schema, more completeness would be beneficial.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter described. The description lists param codes with explanations, but this largely duplicates the schema's parameter descriptions. No additional semantic value is added for parameters like state, bdate, edate, or county.

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 finds air quality monitoring stations and lists the types of information returned (locations, dates, measurement types, agencies). It is specific about the resource, but does not explicitly differentiate from sibling EPA tools like epa_air_quality or epa_aqs_daily.

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 mentions the tool is useful for finding what is measured and where, and notes the requirement for AQS_API_KEY and AQS_EMAIL. However, it does not provide guidance on when to use this tool over other EPA tools or mention any prerequisites or limitations.

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

epa_drinking_waterA
Read-only

Get Safe Drinking Water Information System (SDWIS) data by state. Returns public water systems with population served, source type, and system type. System types: 'CWS' (Community Water System (serves residents year-round)), 'NTNCWS' (Non-transient Non-community (serves 25+ of same people, e.g. schools)), 'TNCWS' (Transient Non-community (serves transient users, e.g. gas stations)). Cross-reference with CDC health data and Census population for per-capita analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code: 'CA', 'TX', 'NY'
rowsNoMax results (default 100)

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 description aligns by stating 'Get... data'. Additionally, description details return fields (population served, source type, system type) and explains system type codes, adding behavioral context beyond annotations.

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

Conciseness5/5

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

Three sentences efficiently convey purpose, return data, and system type explanations. No superfluous content; front-loaded with main action.

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

Completeness4/5

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

Description covers return fields and explains system types, compensating for lack of output schema. Suggests cross-referencing with other datasets. Missing details on pagination or rows parameter default, but 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.

Parameters3/5

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

Input schema has 100% coverage for both parameters (state and rows). Description does not add extra parameter semantics beyond schema, but the schema itself is clear. 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?

Description clearly states verb 'Get', resource 'Safe Drinking Water Information System (SDWIS) data', and scope 'by state'. It distinguishes this EPA tool from siblings like epa_air_quality and usgs_water_data by specifying the drinking water 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?

Description explains what data is returned and provides system type definitions, aiding appropriate use. However, it lacks explicit guidance on when not to use this tool or comparison to alternative water data tools like usgs_water_data.

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

epa_enforcementA
Read-only

Search EPA enforcement cases -- civil and criminal actions with penalties, settlements, and outcomes. Case types: 'JDC' (Judicial (court) case), 'AFR' (Administrative formal (EPA order)). Returns case name, primary law violated, penalties, settlement dates, and outcomes. Cross-reference with DOJ press releases, SEC financials, lobbying data, and FEC contributions.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code: 'CA', 'TX', 'NY'
lawNoFilter by primary law: 'CAA' (Clean Air), 'CWA' (Clean Water), 'RCRA', 'CERCLA', 'TSCA', 'SDWA'
limitNoMax results (default 20)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so description's disclosure of return fields (case name, law, penalties) adds moderate value. No mention of rate limits, auth, or behavior on empty results, but adequate 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.

Conciseness5/5

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

Three focused sentences: purpose, case types, return fields, and cross-references. No redundancy, front-loaded with main action.

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 search tool with 3 parameters and no output schema, the description covers the query scope, result content, and suggests complementary data sources. No gaps for its 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 has 100% description coverage for all three parameters (state, law, limit). Description adds context about case types and return fields but does not add meaning beyond the 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?

Description clearly states it searches EPA enforcement cases, specifies types (civil/criminal, JDC/AFR), and lists return fields. Differentiates from sibling EPA tools by focusing exclusively on enforcement actions.

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 cross-referencing suggestions (DOJ, SEC, lobbying, FEC) but no explicit guidance on when to choose this tool over other EPA tools like epa_facilities or epa_air_quality. Usage context is implied but not defined.

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

epa_facilitiesB
Read-only

Search EPA-regulated facilities for environmental compliance and violations via ECHO. Find facilities with air or water permit violations, inspections, and enforcement actions. Media types: 'air' (Clean Air Act (CAA) facilities via ICIS-Air), 'water' (Clean Water Act (CWA) facilities via ICIS-NPDES).

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code: 'CA', 'TX', 'NY'
media_typeNoMedia type: 'air' (Clean Air Act (CAA) facilities via ICIS-Air), 'water' (Clean Water Act (CWA) facilities via ICIS-NPDES). Default: air
major_onlyNoOnly show major facilities (true/false, default true)
active_onlyNoOnly show active facilities (true/false, default true)
limitNoMax results (default 20)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true. The description adds that it queries via ECHO and describes media types, but omits behavior like pagination, default limits, or result structure. Adequate for a safe read operation 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: first states purpose, second adds media type details. No redundant information. Efficiently uses space.

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

Completeness2/5

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

No output schema exists, but description does not hint at return fields or structure (e.g., list of facilities with scores). It mentions violations but not output details. For a search tool with multiple parameters, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 5 parameters have descriptions in the schema (100% coverage). The description adds no new semantic value beyond restating media_type definitions already in 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?

The description clearly states the tool searches EPA-regulated facilities for environmental compliance and violations via ECHO, specifying permit violations, inspections, and enforcement. It names media types (air/water) with program references. While distinct from siblings like epa_facility_detail, it does not explicitly differentiate them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings (e.g., epa_facility_detail or epa_enforcement). No prerequisites or exclusions mentioned. The context implies it's for initial facility search, but not explicit.

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

epa_facility_detailA
Read-only

Get a detailed facility report from ECHO by registry ID. Returns permits, enforcement actions, compliance summaries, NAICS/SIC codes, and inspection history. Use epa_facilities first to find a RegistryID, then pass it here for the full report.

ParametersJSON Schema
NameRequiredDescriptionDefault
registry_idYesECHO Registry ID from epa_facilities results (e.g. '110071141730')

TDQS

A4.2/5.0
Behavior4/5

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

Annotations include readOnlyHint=true, indicating safe read operation. The description adds detail about the report contents (permits, compliance, etc.) without contradicting annotations. No mention of rate limits or response size, but 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 sentences with no redundancy: first states purpose, second lists contents, third gives workflow. All sentences are necessary 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 tool with one parameter and no output schema, the description adequately lists return fields and provides usage context. The lack of output schema is partially compensated by listing contents. Could mention report structure, but 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?

Input schema has 100% coverage with a clear description of registry_id linking to epa_facilities. The description repeats this dependency but adds little extra meaning beyond the schema. 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 clearly states the tool retrieves a detailed facility report from ECHO using a registry ID, listing the types of data returned (permits, enforcement, etc.). It distinguishes from sibling epa_facilities by specifying that this is the detailed follow-up.

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 instructs to first use epa_facilities to obtain a RegistryID, then use this tool for the full report. This provides clear workflow guidance, though no when-not or alternatives are mentioned.

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

epa_greenhouse_gasB
Read-only

Get Greenhouse Gas (GHG) emissions data by state. Returns large emitters reporting under EPA's Greenhouse Gas Reporting Program (GHGRP). Includes CO2-equivalent emissions, facility name, sector, and location. Cross-reference with EIA energy data and BLS CPI energy component.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code: 'CA', 'TX', 'NY'
rowsNoMax results (default 100)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true; description adds no behavioral details beyond this. No contradiction, but no extra 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?

Four sentences covering purpose, data returned, and cross-references. Efficient with no extraneous 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?

Given no output schema, description lists returned fields (emissions, facility, sector, location) and notes cross-references, making it complete for this 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?

Schema coverage is 100% and description adds no meaning beyond what schema already provides for state and rows 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?

Description clearly states it returns GHG emissions data by state from EPA's GHGRP. It is specific but does not differentiate from sibling tools like epa_air_quality.

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?

Description implies use for state-level GHG data but provides no when-to-use or alternatives guidance. Cross-referencing suggestion is not usage direction.

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

epa_rcraA
Read-only

Search RCRA hazardous waste facilities by state via ECHO. Returns generators, transporters, and treatment/storage/disposal (TSD) facilities regulated under RCRA Subtitle C. Cross-reference with epa_toxic_releases (TRI) and epa_greenhouse_gas for multi-program facility analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code: 'CA', 'TX', 'NY'
limitNoMax results (default 20)

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, so the description aligns with that. It adds detail about return types but doesn't disclose pagination, rate limits, or data freshness. However, with no contradictions, it is sufficient.

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

Conciseness5/5

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

Two sentences that are efficient and informative. First sentence states action and scope, second adds return types and cross-references. No redundant or unnecessary 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?

Given the tool has only two parameters, full schema description coverage, and readOnlyHint annotation, the description adequately covers purpose, returns, and relationships. Could mention uppercase requirement for state codes, but overall complete 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?

Input schema has 100% coverage with descriptions for both parameters ('state' and 'limit'). The description does not add additional semantics beyond what is in the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states 'Search RCRA hazardous waste facilities by state via ECHO' and specifies it returns generators, transporters, and TSD facilities. This distinguishes it from sibling EPA tools like epa_toxic_releases and epa_greenhouse_gas, which are mentioned for cross-referencing.

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?

Description indicates usage context (by state) and provides cross-reference guidance for multi-program analysis. While it doesn't explicitly state when not to use or list alternatives, the context is clear enough for an AI agent.

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

epa_superfundA
Read-only

Get Superfund (CERCLA) contaminated sites by state. Returns site name, location, NPL status, and cleanup progress. NPL statuses: 'F' (Final NPL (active cleanup)), 'P' (Proposed NPL), 'D' (Deleted from NPL (cleanup completed)), 'N' (Not on NPL). Cross-reference with Census demographics, CDC health data, HUD housing values, and USAspending cleanup funding.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code: 'NJ', 'CA', 'TX'
rowsNoMax results (default 100)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, and description confirms read-only behavior. Adds value by explaining NPL status codes and cross-reference suggestions. Missing details on pagination, rate limits, or data freshness.

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

Conciseness5/5

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

Four sentences, front-loaded with purpose, each sentence purposeful – no fluff. NPL codes and cross-references are efficiently integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 2 parameters, no output schema, and annotations, description covers return fields (site name, location, NPL status, cleanup progress) and includes useful cross-reference suggestions. Slightly incomplete on output structure, but adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 descriptions (state with examples, rows with min/max). Description adds no further semantics beyond what schema provides, 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?

Description clearly states 'Get Superfund (CERCLA) contaminated sites by state' – specific verb, resource, and scope. Distinguishes from sibling EPA tools like epa_air_quality and epa_drinking_water.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not indicate scenarios where another EPA tool (e.g., epa_facilities) would be more appropriate or any prerequisites.

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

epa_toxic_releasesA
Read-only

Get Toxics Release Inventory (TRI) data by state. TRI tracks chemical releases from industrial facilities reported under EPCRA Section 313. Common sectors: 'Chemicals', 'Metal Mining', 'Electric Utilities', 'Petroleum', 'Food/Beverages/Tobacco', 'Paper', 'Primary Metals'. Cross-reference with epa_facilities for compliance status and epa_greenhouse_gas for emissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code: 'CA', 'TX', 'NY'
countyNoCounty name to filter by: 'LOS ANGELES', 'HARRIS'
rowsNoMax results (default 100)

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, so the read-only nature is known. The description adds context about TRI tracking but does not disclose behavioral traits beyond what annotations provide (e.g., no mention of rate limits, data freshness, or result structure). The added information is useful but not behavioral.

Agents need to know what a tool does to the world before 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 with four sentences, each adding value: purpose, explanation of TRI, list of common sectors, and cross-references. No wasted words, 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?

The description is adequate for a simple data retrieval tool with three parameters and no output schema. It provides context about sectors and cross-referencing, but does not explain the structure of returned data (e.g., chemical names, amounts, years). More detail on output would 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 description coverage is 100%, so parameters are well-documented. The description mentions 'by state' and lists common sectors, but those are not parameters. It does not add significant meaning beyond the schema descriptions for state, county, and rows.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get Toxics Release Inventory (TRI) data by state,' explaining what TRI is and listing common industrial sectors. It distinguishes from sibling tools by specifically targeting TRI data and even suggests cross-referencing with epa_facilities and epa_greenhouse_gas for other aspects.

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 for TRI data retrieval but does not explicitly contrast with other EPA tools like epa_enforcement or epa_rcra. It provides cross-reference hints but lacks clear when-to-use or when-not-to-use guidance. No prerequisites or limitations are mentioned.

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

epa_uv_indexA
Read-only

Get UV index forecast for a U.S. location (ZIP code or city/state). UV Scale: 0-2 Low, 3-5 Moderate, 6-7 High, 8-10 Very High, 11+ Extreme. Useful for health recommendations -- high UV correlates with skin cancer risk.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo5-digit ZIP code: '10001', '90210'. Use this OR city+state.
cityNoCity name: 'Los Angeles', 'Chicago'. Must be used with state.
stateNoTwo-letter state code: 'CA', 'IL'. Must be used with city.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'Get' is consistent. The description adds UV scale context but does not disclose additional behaviors like data freshness or output 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?

The description is two efficient sentences, front-loading the purpose and essential scale info with no 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 explains what the tool does and the UV scale, but is missing details on output format (e.g., time of forecast, multiple days) despite no output schema. Adequate but not fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter already explaining the ZIP vs city/state mutual exclusivity. The tool description reiterates this and adds the UV scale, but 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 the tool retrieves a UV index forecast for a U.S. location via ZIP or city/state. It includes the UV scale for interpretation and is distinct from sibling EPA 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 context for health recommendations but does not explicitly state when not to use this tool or mention alternative tools. The context implies usage but lacks exclusions.

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

fbi_agenciesA
Read-only

List law enforcement agencies in a U.S. state from the FBI CDE. Returns agencies grouped by county with ORI codes, coordinates, and NIBRS participation dates. Use ORI codes from this tool to query agency-level data in other FBI tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state abbreviation (e.g., 'CA', 'TX', 'WA')

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark it as read-only. Description adds value by detailing output structure (grouped by county, fields returned). No contradictions with annotations.

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

Conciseness5/5

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

Two sentences: first states purpose and output, second provides usage guidance. No wasted words; front-loaded and efficient.

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 but description adequately summarizes returned data (agencies, grouped by county, specific fields). Sufficient for a list tool; no missing critical details.

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

Parameters3/5

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

Input schema covers 100% of parameters with clear description. Tool description does not add meaning beyond schema, which is acceptable given high 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 clearly states it lists law enforcement agencies by state, grouped by county, with specific data (ORI codes, coordinates, NIBRS dates). It differentiates from sibling FBI tools by explicitly noting ORI codes can be used to query other 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 advises using ORI codes from this tool for other FBI tools, providing clear context on when to use it. It lacks explicit exclusions but effectively positions the tool as a prerequisite for agency-level queries.

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

fbi_arrest_dataA
Read-only

Get arrest statistics from the FBI at national, state, or agency level. Offense codes are numeric: 'all' (all offenses), '11' (murder), '20' (rape), '30' (robbery), '50' (aggravated assault), '150' (drug abuse), and 40+ more. Returns counts or totals broken down by year, age, sex, race, ethnicity.

ParametersJSON Schema
NameRequiredDescriptionDefault
offenseYesArrest offense code: '11' (Murder), '12' (Simple Assault), '20' (Rape), '23' (Larceny-Theft), '30' (Robbery), '50' (Aggravated Assault), ... (48 total)
stateNoTwo-letter state abbreviation for state-level data
oriNoAgency ORI code for agency-level data
typeNoData type: 'counts' (default) or 'totals'
from_yearNoStart year (default: 5 years ago)
to_yearNoEnd year (default: current year)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and description confirms it returns statistics. Description adds detail about return format (counts/totals broken down by year, age, sex, race, ethnicity), going beyond annotations. No contradictions.

Agents need to know what a tool does to the world before 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. Front-loaded with verb and resource, then key details about offense codes and return breakdown. 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 schema covers all 6 parameters, description adequately explains purpose, levels, offense codes, and return structure. Missing minor aspects like data recency or pagination, but overall complete for a data retrieval tool.

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

Parameters4/5

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

Schema has 100% coverage, so baseline is 3. Description adds value by listing specific numeric offense codes (e.g., '11' murder) and indicating there are 40+ more, giving context that goes beyond the enum list. Also clarifies the 'type' parameter (counts vs totals).

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

Purpose4/5

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

Description clearly states the verb 'get', resource 'arrest statistics', and scope (national, state, agency). It implicitly differentiates from siblings by mentioning offense codes and demographic breakdowns, but does not explicitly distinguish from other FBI data 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?

Description provides context for usage (levels, offense codes, return types) but does not explicitly state when to use this tool versus alternatives like fbi_crime_summarized or fbi_expanded_homicide. No exclusions or when-not-to-use guidance.

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

fbi_crime_summarizedA
Read-only

Get summarized UCR crime data from the FBI at national, state, or agency level. Covers 10 offense categories: V (violent crime), P (property crime), HOM (homicide), RPE (rape), ROB (robbery), ASS (aggravated assault), BUR (burglary), LAR (larceny/theft), MVT (motor vehicle theft), ARS (arson). Returns year-by-year data with counts and rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
offenseYesUCR offense code: 'V' (Violent Crime), 'P' (Property Crime), 'HOM' (Homicide), 'RPE' (Rape), 'ROB' (Robbery), 'ASS' (Aggravated Assault), 'BUR' (Burglary), 'LAR' (Larceny/Theft), 'MVT' (Motor Vehicle Theft), 'ARS' (Arson)
stateNoTwo-letter state abbreviation for state-level data
oriNoAgency ORI code for agency-level data (e.g., 'WASPD0000')
from_yearNoStart year (default: 5 years ago)
to_yearNoEnd year (default: current year)

TDQS

A3.8/5.0
Behavior3/5

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

The description adds 'Returns year-by-year data with counts and rates,' which provides behavioral context beyond the readOnlyHint annotation. However, it does not mention rate limits, data freshness, or pagination behavior. 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: first sentence defines purpose and scope; second sentence lists categories and output format. Every phrase earns its place. No fluff 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?

Given the tool's 5 parameters, high schema coverage, and absence of output schema, the description adequately explains the offense categories, output structure (year-by-year with counts and rates), and levels of aggregation. It could mention default year ranges, but those are in schema. Overall, it is sufficiently complete for an agent to understand the tool's capability.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by stating the data includes counts and rates and covers national/state/agency levels, complementing the schema's parameter descriptions. It explains the context of the offense codes (UCR categories) that the schema already lists, but the overall meaning is enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get summarized UCR crime data from the FBI at national, state, or agency level' and lists the 10 specific offense categories. This is a specific verb+resource description that distinguishes it from sibling tools like fbi_nibrs or fbi_arrest_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 does not provide guidance on when to use this tool versus alternatives, such as fbi_nibrs for detailed incident-level data or fbi_expanded_homicide for deeper homicide details. No when-to-use or when-not-to-use statements are present.

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

fbi_expanded_homicideB
Read-only

Get expanded homicide (Supplementary Homicide Report) data from the FBI. Includes victim/offender demographics, weapons used, and circumstances. Available at national, state, or agency level.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state abbreviation for state-level data
oriNoAgency ORI code for agency-level data
typeNoData type (default: counts)
from_yearNoStart year
to_yearNoEnd year

TDQS

B3.4/5.0
Behavior3/5

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

The description aligns with annotations (readOnlyHint: true) by stating 'Get... data,' implying a read operation. It adds context on the data content (demographics, weapons, circumstances) but does not disclose rate limits, authentication, or response structure. The annotations already cover the read-only nature, so the contribution is moderate.

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

Conciseness5/5

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

The description is two sentences, highly concise, and front-loaded with the primary action. No wasted words; every sentence adds value.

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

Completeness2/5

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

Despite 5 parameters (state, ori, type, from_year, to_year), the description omits any mention of time-range or data-type selection. It does not explain how to request national-level data (no params?) or agency-level via ORI. An agent may fail to correctly invoke the tool without this 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?

Input schema coverage is 100%, so the description does not need to repeat parameter details. The description adds high-level context (e.g., national/state/agency levels) but does not elaborate on how parameters correspond to these levels or explain the 'type' parameter. Baseline 3 is appropriate as the schema provides full 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 clearly states the tool retrieves 'expanded homicide (Supplementary Homicide Report) data from the FBI' and lists specific data fields (victim/offender demographics, weapons, circumstances). This uniquely identifies the tool among siblings like fbi_arrest_data or fbi_crime_summarized.

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 mentions availability at 'national, state, or agency level' but provides no guidance on when to choose this tool over alternatives, nor any prerequisites or exclusions. An agent would not know when to prefer this over other FBI crime data tools.

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

fbi_expanded_propertyA
Read-only

Get expanded property crime details from the FBI (Supplemental Return / Return A data). Provides additional breakdowns beyond summarized counts: value of stolen/recovered property, type of property, premises involved. Available for burglary (NB), larceny (NL), motor vehicle theft (NMVT), and robbery (NROB).

ParametersJSON Schema
NameRequiredDescriptionDefault
offenseYesOffense code: 'NB' (Burglary), 'NL' (Larceny), 'NMVT' (Motor Vehicle Theft), 'NROB' (Robbery)
stateNoTwo-letter state abbreviation for state-level data
oriNoAgency ORI code for agency-level data
typeNoData type (default: counts)
from_yearNoStart year
to_yearNoEnd year

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, and the description is consistent. It adds context about the data source (Supplemental Return / Return A) and breakdown categories, but lacks details on rate limits, pagination, or any constraints like minimum year range. No contradiction.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the main purpose and then lists specific breakdowns and applicable offenses, making it 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?

With 6 parameters and no output schema, the description provides sufficient context for the tool's purpose and data type. It covers the source (FBI Supplemental Return), breakdowns, and offense categories. It could mention the output format or limitations, but overall it is fairly complete for an API 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 baseline is 3. The description adds value by explaining the overall breakdown categories and the meaning of offense codes (e.g., 'NB' for Burglary) which complements the enum descriptions. However, it does not elaborate on other parameters like state, ori, or type 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 clearly states it retrieves 'expanded property crime details' from the FBI, specifying the type of data (value of stolen/recovered property, type of property, premises involved) and the applicable offenses (burglary, larceny, motor vehicle theft, robbery). This distinguishes it from sibling tools like fbi_crime_summarized which provide summarized counts.

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 it is for detailed breakdowns 'beyond summarized counts', but does not explicitly state when to use this tool over siblings. There is no guidance on when not to use it or alternatives, such as fbi_crime_summarized for higher-level aggregates.

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

fbi_hate_crimeA
Read-only

Get hate crime data from the FBI at national, state, or agency level. Returns incidents broken down by bias category (race, religion, sexual orientation, etc.), offense type, victim type, offender demographics, and location type. Optionally filter by bias code (e.g., '12'=Anti-Black, '14'=Anti-Jewish, '22'=Anti-Islamic, '41'=Anti-Gay).

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state abbreviation for state-level data
oriNoAgency ORI code for agency-level data
biasNoBias code filter: '11' (Anti-White), '12' (Anti-Black or African American), '13' (Anti-American Indian or Alaska Native), '14' (Anti-Asian), '15' (Anti-Multiple Races, Group), '16' (Anti-Native Hawaiian or Other Pacific Islander), ... (35 total)
typeNoData type
from_yearNoStart year
to_yearNoEnd year

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so no contradiction. The description adds value by detailing the output contents (incidents broken down by bias category, offense type, etc.), which goes beyond the 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 three sentences, front-loaded with the action 'Get hate crime data' and scope 'at national, state, or agency level.' Every sentence adds useful information without redundancy.

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

Completeness4/5

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

The description explains the output breakdowns (bias category, offense type, victim type, etc.) and mentions optional filtering by bias code. However, it does not explain the 'type' parameter (counts vs totals) or the year range parameters beyond schema descriptions, missing some completeness for the 6-parameter 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% with descriptions for all parameters. The description provides example bias codes (e.g., '12'=Anti-Black) but does not add significant new meaning beyond the schema's enum 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 the tool gets hate crime data from the FBI at national, state, or agency level, specifying the breakdowns (bias category, offense type, etc.). The name and description distinguish it from sibling tools like fbi_arrest_data or fbi_crime_summarized.

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 for hate crime data retrieval but does not explicitly state when to use this tool versus other FBI tools or provide alternatives. No guidance on exclusions or prerequisites is given.

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

fbi_law_enforcement_employeesA
Read-only

Get law enforcement employee data (sworn officers, civilian employees) at national, state, or agency level. Shows staffing levels over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state abbreviation for state-level data
oriNoAgency ORI code (requires state param too)
from_yearNoStart year (default: 5 years ago)
to_yearNoEnd year (default: current year)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's addition of 'Shows staffing levels over time' provides useful behavioral context. However, it does not describe return format or pagination, but the annotation covers safety.

Agents need to know what a tool does to the world before 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 action and key details, with no unnecessary words. 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 no output schema and simple parameters (state, ori, years), the description is mostly complete. It could mention that ORI requires state, but the schema already notes that. For a straightforward filtered-list tool, this 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% with all four parameters described in the schema itself. The description adds no extra meaning beyond what the schema already provides, 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?

The description clearly states the tool retrieves law enforcement employee data (sworn officers, civilian employees) at national, state, or agency level, with a time series component. It distinguishes itself from sibling FBI tools like fbi_arrest_data or fbi_crime_summarized by focusing on staffing levels.

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 for employee data but does not explicitly mention when to use this tool versus alternatives like fbi_arrest_data or fbi_nibrs. No when-not-to-use or alternative guidance is provided.

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

fbi_lesdcB
Read-only

Get Law Enforcement Suicide Data Collection (LESDC) statistics. Chart types: race, demographics, manner, location, employment, occupation, military, totals, duty, exp, experience, suffered, prior, investigation, wellness.

ParametersJSON Schema
NameRequiredDescriptionDefault
chart_typeYesLESDC chart type
yearYesYear to query

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, so the description aligns. It does not add additional behavioral details for this read operation.

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?

Single sentence with a clear list, front-loading the purpose. No wasted words.

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 provided, and the description does not explain the return format. The list of chart types implies structure but leaves ambiguity about the actual response.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description redundantly lists chart types already in the enum, adding minimal 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?

Description clearly states it retrieves LESDC statistics, with a specific list of chart types. However, it does not differentiate from sibling FBI tools like fbi_arrest_data or fbi_hate_crime.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other FBI tools or when not to use it. The description only states what it does.

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

fbi_nibrsA
Read-only

Get NIBRS (National Incident-Based Reporting System) data from the FBI. More detailed than summarized UCR data — includes victim/offender demographics, relationships, weapons, location, and time of day for 71 offense types. Offense codes use NIBRS format: '13A' (aggravated assault), '09A' (murder), '23H' (all other larceny), '35A' (drug violations), '220' (burglary), etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
offenseYesNIBRS offense code: '100' (Kidnapping/Abduction), '101' (Treason), '103' (Espionage), '120' (Robbery), '200' (Arson), '210' (Extortion/Blackmail), ... (72 total)
stateNoTwo-letter state abbreviation for state-level data
oriNoAgency ORI code for agency-level data
typeNoData type (default: counts)
from_yearNoStart year
to_yearNoEnd year

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, and the description aligns with that. The description adds context about data complexity (demographics, weapon types) but does not disclose additional behavioral traits like rate limits or permissions 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?

The description is two sentences, front-loaded with the main purpose, and every sentence adds value (purpose + content detail/examples). No wasted words.

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

Completeness3/5

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

The tool has six parameters, but the description only elaborates on offense codes. It omits guidance on the difference between counts and totals, how to specify state vs agency (state/ori), or typical usage patterns. Schema descriptions partially compensate, but a user would benefit from more 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 coverage is 100% with descriptions for all parameters. The description adds example offense codes, which supplements the schema's enum list, but does not explain other parameters like 'type' (counts vs totals) or the distinction between state and ORI. Baseline 3 is appropriate given high 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 clearly states it retrieves NIBRS data from the FBI, specifies it is more detailed than summarized UCR data, and lists specific data fields (victim/offender demographics, weapons, etc.). This effectively distinguishes it from sibling tools like fbi_crime_summarized and fbi_expanded_homicide.

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 it is for detailed incident data but does not explicitly state when to use this tool versus alternatives (e.g., fbi_crime_summarized for summary counts). No 'when-not' or direct alternative naming is provided.

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

fbi_use_of_forceA
Read-only

Get Use of Force data from the FBI. Covers incidents where law enforcement use of force resulted in death, serious injury, or firearm discharge. Available at federal (all federal agencies) or national (all participating agencies) level. Use scope='federal' for federal agencies, 'national' for all agencies participation data.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeYes'federal' = federal UoF by year, 'national' = national UoF participation by year
yearYesYear to query (2019-present)
quarterNoQuarter (default: 4 = full year cumulative)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, which is consistent with the 'Get' action. The description adds context about the nature of the data (incidents with death, serious injury, or firearm discharge) beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the purpose, then provides parameter details. No unnecessary words; every sentence contributes meaning.

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

Completeness3/5

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

The description covers the main functionality and parameter usage but does not mention the return format or data structure, which would be helpful given the lack of output schema. Siblings are not compared.

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 description adds meaning by clarifying the enum values for scope, providing a realistic year range, and stating the quarter default and meaning. This adds 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 clearly states the tool retrieves FBI Use of Force data, covering incidents involving death, serious injury, or firearm discharge. It distinguishes between federal and national levels, which is specific and 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 explains when to use 'federal' vs 'national' scope, providing direct guidance on parameter usage. It does not explicitly mention when not to use the tool or compare with siblings, 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.

fda_animal_eventsA
Read-only

Search animal/veterinary adverse event reports (1.3M+ reports). Reports of drug side effects in animals — dogs, cats, horses, cattle, etc. Each report has: animal info (species, breed), drugs, reactions (VEDDRA terms), outcomes. Note: Some fields may contain 'MSK' (masked) values for privacy.

Example searches:

  • 'animal.species:"Dog"' — dog events

  • 'original_receive_date:[20200101+TO+20231231]' — events in date range

  • 'serious_ae:true' — serious adverse events only

Count fields: animal.species.exact, primary_reporter.exact, serious_ae

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

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, so the read-only nature is covered. The description adds that some fields may contain 'MSK' (masked) for privacy, which is helpful. However, it does not disclose other behaviors like rate limits or required permissions, which are not covered by 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?

The description is well-structured, starting with a one-line purpose, then explaining report contents, and ending with example queries and count fields. It is front-loaded and informative, though slightly longer than necessary.

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

Completeness3/5

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

Given no output schema, the description partially explains return values (animal info, drugs, reactions, outcomes) and provides example fields. However, it lacks a complete output structure description, which is adequate but not fully compensating for the missing output 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 baseline is 3. The description adds value by providing domain-specific search examples (e.g., 'animal.species:"Dog"') and listing count fields (e.g., animal.species.exact), which go beyond the schema's generic query syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it searches for animal/veterinary adverse event reports, a specific resource distinct from human drug events. It provides the dataset size (1.3M+ reports) and examples of search queries, making the tool's purpose unambiguous, especially given sibling tools like fda_drug_events for human drugs.

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 for animal adverse events but does not explicitly state when to use this tool vs alternatives (e.g., fda_drug_events for human events). It provides no when-not-to-use guidance, leaving the agent to infer from the domain.

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

fda_approved_drugsA
Read-only

Search FDA-approved drugs (Drugs@FDA database). Find approved drugs by brand name, sponsor/manufacturer, or application number. Shows approval history, active ingredients, and marketing status.

Example searches:

  • 'openfda.brand_name:"Ozempic"' — find Ozempic

  • 'sponsor_name:"Pfizer"' — all Pfizer approvals

  • 'products.active_ingredients.name:"SEMAGLUTIDE"' — by ingredient

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, 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=true, indicating no mutation. The description adds value by explaining what the tool retrieves (approval history, active ingredients, marketing status) and the source database. No contradiction.

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

Conciseness5/5

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

The description is concise: one line for purpose, one for searchable fields, one for displayed info, then three example queries. No superfluous 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?

Given two parameters and no output schema, the description adequately covers purpose, search capabilities, and result contents. Could specify return format but examples compensate.

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?

Input schema covers both parameters (search and limit) with descriptions. The description adds concrete examples of search queries, enhancing understanding beyond schema. Limit description in schema is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'search' and resource 'FDA-approved drugs (Drugs@FDA database)'. Examples with brand name, sponsor, application number, and ingredient further clarify the scope. It distinguishes from other FDA tools like fda_drug_events by specifying the Drugs@FDA database focus on approval history.

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 example queries but does not specify when to use this tool vs alternatives (e.g., fda_drug_labels, fda_drug_events). No guidance on when not to use or prerequisites.

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

fda_countA
Read-only

Count/aggregate any OpenFDA endpoint by a specific field. Returns top terms with counts. Works on ALL FDA endpoints. IMPORTANT: Use '.exact' suffix for full phrase counts (e.g. 'brand_name.exact'). Without '.exact', multi-word values like 'Class III' are split into separate word counts.

Endpoints: drug/event, drug/label, drug/ndc, drug/enforcement, drug/drugsfda, drug/shortages, device/event, device/510k, device/classification, device/enforcement, device/recall, device/pma, device/udi, food/enforcement, food/event, animalandveterinary/event, tobacco/problem.

Example count_field values per endpoint:

  • drug/ndc → pharm_class.exact, dea_schedule, dosage_form.exact

  • drug/shortages → update_type, status.exact, therapeutic_category.exact

  • device/510k → country_code, advisory_committee, clearance_type.exact

  • tobacco/problem → tobacco_products.exact, reported_health_problems.exact

  • food/event → reactions.exact, outcomes.exact

  • animalandveterinary/event → animal.species.exact, primary_reporter.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointYesOpenFDA endpoint path (e.g. 'drug/ndc', 'device/510k', 'tobacco/problem')
count_fieldYesField to count. Use '.exact' for full phrases (e.g. 'pharm_class.exact')
searchNoOptional search filter to narrow results before counting
limitNoMax count results (default: API default)

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description adds behavioral details like the '.exact' suffix for full phrase counts and the fact that it works on all endpoints. No contradictions; the description enriches the agent's understanding 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 well-structured and front-loaded with the core purpose, followed by the critical '.exact' note, endpoint list, and examples. Every sentence adds value without redundancy, achieving conciseness while being informative.

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

Completeness5/5

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

Despite no output schema, the description clearly states that the tool returns 'top terms with counts,' which is sufficient for an aggregation tool. It covers all aspects: purpose, usage nuance, parameters, and examples, enabling confident invocation.

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?

Schema description coverage is 100%, and the description adds example values per endpoint (e.g., 'pharm_class.exact' for drug/ndc), which explains how to use parameters effectively. The 'search' and 'limit' parameters are also contextually explained through examples, adding significant 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 clearly states it counts/aggregates any OpenFDA endpoint by a specific field and returns top terms with counts. It explicitly says 'Works on ALL FDA endpoints', which distinguishes it from sibling tools that target specific endpoints (e.g., fda_drug_events, fda_device_510k).

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 guidelines, including the important '.exact' suffix behavior and example count_field values for various endpoints. It implies when to use this tool (aggregate counting) versus raw data retrieval from sibling tools, though it doesn't explicitly 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.

fda_covid_serologyA
Read-only

Search COVID-19 serology test evaluation results. FDA's evaluation of antibody test performance (sensitivity/specificity).

Example searches:

  • 'antibody_truth:"Positive"' — positive samples

  • 'manufacturer:"Abbott"' — tests by manufacturer

Count fields: type (sample material), manufacturer.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the description's behavioral disclosure is not critical. The description adds that it returns evaluation results (sensitivity/specificity) but does not elaborate on pagination, rate limits, or data freshness. With annotations covering safety, the description provides moderate additional context, justifying a 3.

Agents need to know what a tool does to the world before 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 succinct with four sentences. The first sentence states the purpose, the second provides context, the third offers concrete examples, and the fourth lists key count fields. No redundant information, and critical details are 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 no output schema and only two parameters (search, limit) with full schema coverage, the description is adequate. It explains the tool's domain, provides search examples, and notes aggregation fields. It could mention output format or pagination, but the examples and count field hint are sufficient for a straightforward search tool with readOnlyHint.

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?

While schema coverage is 100% and both parameters have descriptions, the description adds value by providing tool-specific example queries (e.g., 'antibody_truth:"Positive"') and mentioning count fields for aggregation. This enriches the schema's generic 'search query' description, making it more actionable for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 searches COVID-19 serology test evaluation results, specifically FDA's evaluation of antibody test performance (sensitivity/specificity). The verb 'search' and resource 'FDA serology evaluations' are explicit, and it distinguishes from sibling FDA tools by its unique focus on serology.

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 helpful example searches and notes count fields, which guides usage. However, it lacks explicit when-to-use or when-not-to-use guidance compared to sibling tools (e.g., other FDA search tools). There is no mention of alternatives or exclusions, leaving the agent to infer context from the tool name alone.

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-only

Search 510(k) premarket clearance decisions (174K+ since 1976). A 510(k) demonstrates a device is substantially equivalent to a legally marketed device.

Example searches:

  • 'advisory_committee:cv' — cardiovascular devices

  • 'openfda.regulation_number:868.5895' — by regulation number

  • 'device_name:"pacemaker"' — by device name

  • 'applicant:"Medtronic"' — by company

Count fields: country_code, advisory_committee, clearance_type.exact, decision_code

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so no contradiction. The description adds that it searches over 174K records since 1976 and lists count fields, but does not disclose additional behavioral traits like rate limits, pagination behavior, or authentication requirements 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?

The description is very concise: two sentences of purpose followed by bullet-point examples and a line for count fields. Every sentence adds value; no fluff. Front-loaded with the core purpose.

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

Completeness4/5

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

Given the tool is a search endpoint with no output schema, the description adequately covers the search capability, examples, and count fields. It is complete enough for an agent to understand how to formulate queries. However, it could mention that results are returned in a standard format (e.g., JSON) since no output schema is provided.

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 100% coverage with descriptions for both parameters (search and limit). The description adds significant value by providing concrete example search queries and listing count fields, which are not in the schema descriptions. This helps the agent understand valid search syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it searches 510(k) premarket clearance decisions, with a specific verb ('Search') and resource ('510(k) premarket clearance decisions'). It distinguishes from sibling FDA device tools by specifying a particular clearance type (510(k) vs. PMA, enforcement, recalls, etc.).

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 search queries and mentions count fields, which guides usage. However, it does not explicitly state when to use this tool versus other FDA device tools (e.g., fda_device_pma, fda_device_recalls) or provide exclusions. Usage context is implied but not fully specified.

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

fda_device_classificationA
Read-only

Search medical device classification — ~1,700 generic device types. Returns device class (1=Class I, 2=Class II, 3=Class III), product codes, definitions.

Example searches:

  • 'regulation_number:872.6855' — by regulation number

  • 'product_code:NOB' — by product code

  • 'device_name:"pacemaker"' — by device name

  • 'device_class:3' — Class III (highest risk) devices

Count fields: device_class, medical_specialty.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.4/5.0
Behavior4/5

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

The annotations declare readOnlyHint=true, so the agent knows it's a safe read operation. The description adds behavioral details about return format (device class, product codes, definitions) and count fields, which are beyond schema. No contradictory or missing critical behaviors.

Agents need to know what a tool does to the world before 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, uses bullet points for examples, and is front-loaded with the tool's purpose. Every sentence adds value, and there is no redundancy or verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 absence of an output schema, the description adequately explains the return values and provides count field examples. It covers the main use case well, though could optionally mention error handling or pagination. Nonetheless, it is complete enough for an agent to invoke correctly.

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

Parameters4/5

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

The schema description coverage is 100%, but the description adds significant value by providing domain-specific example queries and explaining count fields. This enriches the parameter semantics beyond the schema's generic description of 'search query' and '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?

The description clearly states the tool's purpose: 'Search medical device classification'. It specifies the resource (medical device classification) and the action (search). Among numerous sibling FDA tools, this one is distinct in focusing on classification details, and the description reinforces that with specific output mentions.

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 example queries and mentions count fields, which gives strong usage guidance. However, it does not explicitly differentiate from similar FDA device tools like fda_device_510k or fda_device_pma, nor does it state when not to use this tool. Still, the examples are enough for most use cases.

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

fda_device_enforcementA
Read-only

Search FDA device recall enforcement reports. Same classification system as drug/food recalls: Class I (most dangerous) to Class III. Note: Records before June 2012 may lack some fields.

Example searches:

  • 'classification:"Class I"' — most dangerous recalls

  • 'report_date:[20200101+TO+20231231]' — recalls in date range

  • 'recalling_firm:"Medtronic"' — by company

Count fields: voluntary_mandated.exact, classification.exact, status.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4/5.0
Behavior4/5

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

The description adds value beyond annotations by noting that records before June 2012 may lack some fields, and by mentioning count fields. This helps the agent understand data completeness and available aggregations. Annotations already indicate readOnlyHint=true, consistent with the search 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 concise and front-loaded with the main purpose. It uses clear structure with examples and notes, every sentence adds value. 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 search tool with no output schema, the description covers the purpose, query examples, data quality notes, and count fields. It lacks information about the output fields or structure, but given the simplicity and common OpenFDA format, this is acceptable. The context is fairly 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%, so baseline is 3. The description provides example search queries that demonstrate syntax, adding marginal value beyond the schema's parameter descriptions. However, it does not explain each parameter further or clarify edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: searching FDA device recall enforcement reports. It specifies the resource (FDA device enforcement) and the action (search), and distinguishes from sibling tools like fda_device_recalls by focusing on enforcement reports rather than general recalls or events.

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 queries and explains the classification system, but it does not explicitly tell when to use this tool versus alternatives like fda_device_recalls or fda_device_events. It lacks guidance on when not to use it or which sibling is more appropriate for specific tasks.

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

fda_device_eventsA
Read-only

Search FDA medical device adverse event reports (MAUDE) — injuries, malfunctions, deaths.

Example searches:

  • 'device.generic_name:pacemaker' — pacemaker events

  • 'event_type:death' — events resulting in death

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

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, and the description adds context about searching the MAUDE database and event types. However, it does not disclose additional behaviors like pagination, rate limits, or data freshness 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?

The description is extremely concise at 3 lines, front-loads the purpose, and includes useful examples. Every sentence adds value 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 search tool without output schema, the description covers the source (MAUDE), event types, and query examples. It lacks mention of pagination or result format but is largely adequate given the tool's simplicity.

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

Parameters4/5

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

Schema coverage is 100%, but the description enriches the search parameter with example query formats (field:value, exact phrase, date ranges) that go beyond the schema's description, aiding correct parameter construction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it searches FDA MAUDE adverse event reports, specifying the categories (injuries, malfunctions, deaths) and provides concrete example queries, making the tool's purpose unambiguous and distinct from siblings like fda_drug_events.

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 does not explain when to use this tool over alternatives such as FDA device recalls or drug events. While examples are given, there is no contextual guidance for selection.

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

fda_device_pmaA
Read-only

Search Premarket Approval (PMA) decisions for Class III medical devices. PMA is required for high-risk devices — evaluates safety and effectiveness.

Example searches:

  • 'decision_code:APPR' — approved PMAs

  • 'product_code:LWP' — by product code

  • 'advisory_committee:CV' — cardiovascular devices

  • 'applicant:"Medtronic"' — by company

Count fields: advisory_committee, decision_code

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds useful behavioral context like query syntax, example fields, and count fields. No contradictions or missing critical info.

Agents need to know what a tool does to the world before 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 (7 lines) and front-loaded with purpose, followed by well-organized examples. Every sentence adds value, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 mentions count fields and gives query examples. For a search tool, this is sufficient to understand behavior. Minor gap: no explanation of default return format.

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 covers 100% of parameters with clear descriptions. The description adds value by providing concrete usage examples (e.g., 'decision_code:APPR') that interpret the generic parameter 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 'Search Premarket Approval (PMA) decisions for Class III medical devices.' with a specific verb and resource, and the context of Class III devices distinguishes it from sibling tools like fda_device_510k.

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 example search queries (decision_code, product_code, etc.) and notes count fields, which implies when to use (for high-risk device approvals) but does not explicitly state when not to use or compare to alternatives.

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-only

Search FDA medical device recall reports (RES system). Find recalled devices by name, manufacturer, or reason for recall.

Example searches:

  • 'openfda.device_name:"pacemaker"' — pacemaker recalls

  • 'reason_for_recall:"software"' — software-related recalls

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A3.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so description adds no new behavioral context. Does not discuss rate limits, pagination, or result format beyond input 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 efficient sentences: purpose, usage, examples. No redundant words. 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?

Adequate for basic search but lacks output description. Since no output schema exists, description should explain return value structure (e.g., fields, count). Not done.

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?

Input schema already covers parameters (100% coverage). Description adds value by providing domain-specific examples for the search parameter (e.g., 'pacemaker', 'reason_for_recall:"software"'), exceeding 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 clearly states the specific verb 'Search' and resource 'FDA medical device recall reports', with examples of search fields. It distinguishes from siblings like fda_device_510k by focusing on recalls.

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 clear examples of when to use (to find recalled devices by name/manufacturer/reason), but no explicit guidance on when not to use or alternatives among many FDA sibling tools.

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

fda_device_registrationsA
Read-only

Search medical device establishment registrations & listings (336K+ records). Where devices are manufactured and which devices are made at each establishment.

Example searches:

  • 'products.product_code:HQY' — establishments making product code HQY

  • 'products.openfda.regulation_number:886.5850' — by regulation number

Count fields: products.openfda.device_class

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

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. Description adds context about record count and count field, but does not address auth, rate limits, or other behavioral traits beyond the 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?

Very concise, front-loaded with purpose, each sentence adds meaningful information. 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?

Adequate for a 2-param read-only tool with full schema coverage. Could mention pagination or return format, but not essential given 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?

Schema already fully describes both parameters. Description adds value with concrete example searches and hints for count fields, going beyond the schema's parameter 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?

Clearly states the tool searches medical device establishment registrations & listings, describes what info it returns, and differentiates from other FDA device tools by focusing on establishment location and product connections.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this vs alternatives among many FDA tools. Only implicit through naming. Missing when-not-to-use and comparison to siblings.

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

fda_device_udiA
Read-only

Search the Global Unique Device Identification Database (GUDID). Detailed device records: description, MRI safety, product codes, sterilization. Note: Booleans are stored as strings ('true'/'false').

Example searches:

  • 'brand_name:"CoRoent"' — by brand

  • 'is_rx:true' — prescription devices

  • 'mri_safety:"MR Unsafe"' — MRI unsafe devices

  • 'exists:public_device_record_key' — records with a public key

Count fields: product_codes.openfda.device_class, is_rx, mri_safety.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already set readOnlyHint=true. The description adds valuable behavioral context: 'Note: Booleans are stored as strings', example query patterns, and count fields. 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?

Description is concise and front-loaded with the main purpose. Includes examples and notes without unnecessary verbosity. Slightly more compact would be ideal, but effectively structured.

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 simple two-parameter schema, full schema coverage, annotations, and no output schema, the description covers all essential aspects: purpose, detailed examples, behavioral note, and count field guidance. Complete for this tool's complexity.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds meaning through real-world examples and notes about boolean fields and count fields, enhancing the agent's understanding of query construction 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 'Search the Global Unique Device Identification Database (GUDID)' and lists specific record details, distinguishing it from sibling FDA device tools like fda_device_510k or fda_device_classification.

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 searches and field mentions, but does not explicitly state when to use this tool over alternatives or when not to use it. No direct comparison to siblings.

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

fda_drug_countsA
Read-only

Aggregate/count FDA drug adverse event data by any field. For counting other endpoints, use fda_count instead.

Common count fields:

  • 'patient.reaction.reactionmeddrapt.exact' — most common adverse reactions

  • 'patient.drug.openfda.brand_name.exact' — most reported drug brands

  • 'patient.drug.openfda.generic_name.exact' — most reported generic names

  • 'receivedate' — reports over time

  • 'primarysource.reportercountry.exact' — reports by country

ParametersJSON Schema
NameRequiredDescriptionDefault
count_fieldYesField to count by. Use '.exact' suffix for full phrase counts. E.g. 'patient.reaction.reactionmeddrapt.exact'
searchNoOptional search filter, e.g. 'patient.drug.openfda.brand_name:aspirin'
limitNoMax count results (default 10)

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, indicating safe read operation. Description adds common count fields as examples but does not disclose pagination or response format. 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?

Extremely concise: one sentence for main action, one for differentiation, then bullet list of examples. Front-loaded and 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?

No output schema, but the tool's purpose (aggregate/count) implies the return is count data. Description is sufficient for a counting tool, though could mention response structure.

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 description for count_field is clear. However, the description adds significant value by listing common count fields with examples, aiding agent understanding 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 clearly states the tool aggregates/counts FDA drug adverse event data by any field, using specific verbs and resource. It differentiates from sibling fda_count by specifying 'for counting other endpoints'.

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 when to use this tool vs. alternative: 'For counting other endpoints, use fda_count instead.' Provides clear context and exclusions.

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

fda_drug_eventsA
Read-only

Search FDA adverse drug event reports (FAERS) — side effects, hospitalizations, deaths. Over 20 million reports. Search by drug name, reaction, seriousness.

Example searches:

  • 'patient.drug.openfda.brand_name:aspirin' — events involving aspirin

  • 'patient.drug.openfda.generic_name:ibuprofen+AND+serious:1' — serious ibuprofen events

  • 'patient.reaction.reactionmeddrapt:nausea' — events where nausea was reported

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.2/5.0
Behavior4/5

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

The description is consistent with the readOnlyHint annotation (true) and adds context about the size ('Over 20 million reports') and the nature of data (adverse events, side effects, hospitalizations, deaths). 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.

Conciseness5/5

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

The description is concise: one sentence followed by bulleted examples. It is front-loaded with the purpose and immediately useful. 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?

Given no output schema, the description could mention the format of results (e.g., JSON) or typical fields, but it adequately covers the tool's purpose and search capabilities. The limit parameter handles pagination implicitly. For a search tool, it is fairly complete.

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% coverage with descriptions for both 'search' and 'limit'. The description adds value by providing concrete search query examples that illustrate the syntax and field usage, enhancing understanding 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 it searches FDA adverse drug event reports, mentioning specific content (side effects, hospitalizations, deaths) and providing example queries. This differentiates it from sibling FDA tools like fda_approved_drugs or fda_drug_labels.

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 for adverse events by stating 'Search by drug name, reaction, seriousness' and provides examples, but it does not explicitly state when to use this tool vs. alternatives among the many sibling FDA tools. No direct exclusions or when-not-to-use guidance.

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

fda_drug_labelsA
Read-only

Search FDA drug product labeling (package inserts / prescribing information — SPL). Contains indications, warnings, boxed warnings, adverse reactions, drug interactions, dosage.

Example searches:

  • 'openfda.brand_name:"Tylenol"' — labeling for Tylenol

  • 'exists:boxed_warning' — all labels with a Black Box Warning

  • 'effective_time:[20200101+TO+20231231]' — labels updated in date range

  • 'openfda.product_type:"HUMAN PRESCRIPTION DRUG"' — prescription drug labels only

Count fields: openfda.product_type.exact, openfda.brand_name.exact, openfda.route.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds that it is searchable and mentions count fields, but does not disclose additional behavioral traits such as rate limits, pagination behavior (beyond limit parameter), or authentication requirements. It adds some value but not substantial 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 concise, front-loading the purpose and including multiple relevant examples in a structured format. Every sentence adds value, and the list of contained content and count fields 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?

Despite no output schema, the description implies the search returns labeling content and lists included fields. However, it does not specify exact return structure, potential formats, or note result limitations beyond a max of 100. Adequate for a search tool but could be more complete.

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, baseline is 3. The description adds query syntax examples and explains the limit parameter's default and maximum, going beyond the schema's type and description. This practical guidance aids 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 clearly states the tool searches FDA drug product labeling (package inserts/prescribing information) and lists included content (indications, warnings, etc.). It distinguishes from siblings by specifying SPL/labeling content, which is distinct from other FDA drug tools like fda_approved_drugs or fda_drug_events.

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 search examples but does not explicitly state when to use this tool versus alternatives like fda_approved_drugs or fda_drug_events. While examples imply usage for labeling searches, no direct guidance on when not to use it or clear differentiation.

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

fda_drug_ndcA
Read-only

Search the NDC Directory — National Drug Code product listings (132K+ records). Find drugs by brand name, generic name, dosage form, DEA schedule, pharmacological class. Each entry has product data, active ingredients, packaging info, and openfda annotations.

Example searches:

  • 'brand_name:"Tylenol"' — Tylenol products

  • 'dea_schedule:"CII"' — Schedule II controlled substances

  • 'dosage_form:"LOTION"' — all lotions

  • 'active_ingredients.name:"OXYCODONE"' — products containing oxycodone

  • 'finished:true' — finished drug products only

Count fields: pharm_class.exact, dea_schedule, dosage_form.exact, route.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, 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=true. The description adds value by detailing the data content (132K+ records, product data, active ingredients) and count fields, which is beyond what annotations provide. 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.

Conciseness4/5

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

The description is well-structured with examples and a count fields list, but it is somewhat lengthy. It efficiently conveys the tool's purpose and usage without unnecessary 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?

Given the tool's complexity (132K+ records, various search fields) and no output schema, the description comprehensively explains what the tool returns (product data, ingredients, packaging, etc.) and provides practical search examples. It covers all necessary context for an agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (both parameters described in schema). The description adds example search values but does not provide additional meaning beyond the schema's parameter descriptions. 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 it 'Search the NDC Directory — National Drug Code product listings' and provides concrete examples of search fields like brand_name, dea_schedule, etc. This distinguishes it from sibling FDA tools like fda_drug_events or fda_drug_labels.

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?

While the description implies usage for querying NDC data via examples, it does not explicitly state when to use this tool versus its many FDA siblings, nor when not to use it. The guidance is implicit but lacks explicit situational context.

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-only

Search FDA drug recall enforcement reports. Find recalled drugs by classification (Class I=most serious), company, or reason.

Example searches:

  • 'classification:"Class I"' — most dangerous recalls

  • 'recalling_firm:"Pfizer"' — recalls by Pfizer

  • 'reason_for_recall:listeria' — recalls due to listeria

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations confirm readOnlyHint=true, consistent with description. Description adds context about classification seriousness (Class I=most serious) and the openFDA query syntax. No contradictions, though no mention of 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?

The description is extremely concise: one sentence for purpose, then bulleted examples. Front-loaded with the most important info, no filler. Perfect for an agent to quickly grasp and use.

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 adequately informs the agent what results to expect (recall reports). It covers search fields, example queries, and limit parameter, making it complete for execution.

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%, with description adding value through concrete examples for the 'search' parameter (e.g., 'classification:"Class I"') and clarifying 'limit' defaults and max. The description transforms generic schema into actionable patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Search FDA drug recall enforcement reports.' It specifies the verb (search/find) and resource (FDA drug recall enforcement reports), and distinguishes from siblings by focusing on recalls specifically.

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 example searches that illustrate how to use the tool effectively. While it doesn't explicitly tell when to use over alternatives, the examples offer practical guidance for query construction. Lacks explicit when-not-to-use or comparison with similar tools.

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

fda_drug_shortagesA
Read-only

Search FDA drug shortage listings — which drugs are in shortage and why. Tracks status, dosage form, therapeutic category, company, and shortage reason.

Example searches:

  • 'status:"Currently in Shortage"' — active shortages

  • 'dosage_form:"Capsule"' — capsule shortages

  • 'therapeutic_category:"Antiviral"' — antiviral shortages

  • 'generic_name:"Adderall"' — specific drug

Count fields: update_type, status.exact, therapeutic_category.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.2/5.0
Behavior4/5

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

The description is consistent with the annotation readOnlyHint=true, indicating a search operation. It adds behavioral context by noting tracked fields (status, dosage form, etc.) and count fields. No contradictions.

Agents need to know what a tool does to the world before 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 and well-structured: a clear purpose statement, followed by bulleted examples and a note on count fields. Every sentence adds value 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?

Given no output schema, the description adequately explains what the tool returns and how to use it. It could be slightly more detailed about the output format or pagination, but the limit parameter covers the latter. Overall, it is 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 description coverage is 100%, so the schema already documents the parameters. The description adds value by providing example search queries and mentioning count fields, which helps the agent understand how to construct effective searches.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Search FDA drug shortage listings — which drugs are in shortage and why.' It uses a specific verb and resource, and distinguishes itself from sibling tools by focusing on drug shortages specifically.

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 searches and fields to query, implying its usage for drug shortage information. However, it does not explicitly state when to use this tool versus alternatives (e.g., fda_drug_events or fda_approved_drugs), leaving the agent to infer context.

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

fda_food_adverse_eventsA
Read-only

Search FDA food adverse event reports (CAERS database). Reports of illnesses, allergic reactions, and injuries from foods and dietary supplements.

Example searches:

  • 'products.industry_name:"Dietary Supplements"' — supplement events

  • 'reactions:"hospitalization"' — events involving hospitalization

Count fields: reactions.exact, outcomes.exact, products.industry_name.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.4/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 (readOnlyHint: true). The description reaffirms the search nature and gives examples of query patterns, but does not add extra behavioral context beyond what a 'search' implies. 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 very concise: three short sentences that directly convey purpose, provide usage examples, and highlight important fields. No unnecessary 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?

Given there is no output schema, the description adequately covers what the tool returns (reports with fields like reactions, outcomes, products). It mentions count fields for aggregates, which is helpful. It could be slightly more explicit about the response structure, but it's sufficient for typical use.

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% coverage with descriptions for both parameters (search and limit). The description adds value by providing concrete query examples and mentioning count fields, which aids in constructing effective searches 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 the tool searches FDA food adverse event reports from the CAERS database, specifying the domain (illnesses, allergic reactions, injuries from foods and dietary supplements). This distinguishes it from sibling tools like fda_animal_events (animal drugs) or fda_drug_events (human drugs).

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 example queries and hints about count fields, effectively guiding the agent on how to use the tool. However, it does not explicitly state when not to use this tool compared to other FDA event tools, leaving some ambiguity. Nonetheless, the examples are helpful.

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-only

Search FDA food recall enforcement reports. Class I (may cause death), Class II (temporary health problems), Class III (unlikely harm).

Example searches:

  • 'classification:"Class I"' — most serious recalls

  • 'recalling_firm:tyson' — recalls by a specific company

  • 'reason_for_recall:listeria' — recalls due to listeria

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.1/5.0
Behavior3/5

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

The description aligns with the readOnlyHint annotation by using 'Search.' It adds the classification definitions (Class I, II, III) but lacks details on pagination, rate limits, or data freshness that would aid behavioral understanding 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 extremely concise (5 lines) with a clear front-loaded purpose. Every sentence serves a purpose: stating the verb, explaining classifications, and providing examples. No redundant words.

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

Completeness3/5

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

Given the absence of an output schema, the description does not explain what the returned reports contain (fields, structure), which is a gap for a search tool. It also doesn't mention limit behavior or pagination. More information on output would improve completeness.

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

Parameters4/5

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

With 100% schema description coverage, the description still adds value by providing concrete example search syntax for the 'search' parameter, showing exact field-value pairs and operators, which enhances understanding of how to construct queries 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 the tool's purpose: 'Search FDA food recall enforcement reports.' It provides specific examples and differentiates from other FDA tools by focusing on food recalls, distinguishing it from siblings like fda_drug_recalls.

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

Usage Guidelines4/5

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

The description includes example search queries showing how to filter by classification, firm, and reason, giving clear usage context. However, it does not explicitly state when not to use this tool versus other FDA recall tools, which would be helpful for disambiguation.

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

fda_historical_docsA
Read-only

Search historical FDA documents — press releases from 1913 to 2014 (OCR full-text search).

Example searches:

  • 'doc_type:pr+AND+text:"poison prevention packaging"' — press releases about poison prevention

  • 'year:1920+AND+text:Botulism' — 1920s botulism references

  • 'text:"thalidomide"' — mentions of thalidomide

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's additional detail about OCR full-text search and the time range adds value beyond the safe read behavior. It discloses that the tool searches OCR-processed documents from 1913 to 2014, which is useful for agent reasoning.

Agents need to know what a tool does to the world before 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 paragraphs: one sentence for purpose and scope, followed by a structured list of examples. Every sentence adds value with no redundancy. The front-loaded purpose is immediately clear.

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

Completeness3/5

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

The description gives enough context to select the tool (historical press releases, OCR full-text) but does not describe the output format or available fields in the response. Since there is no output schema, the agent would benefit from knowing what fields (e.g., doc_type, text, year) are returned. The examples hint at fields but do not fully specify.

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%, but the description adds value by providing concrete query examples for the search parameter (e.g., 'doc_type:pr+AND+text:"poison prevention packaging"') that illustrate the query syntax and fields. The limit parameter is already well-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 clearly states 'Search historical FDA documents — press releases from 1913 to 2014 (OCR full-text search).' It specifies the resource, action, and scope, distinguishing it from other FDA tools like fda_approved_drugs or fda_device_events that deal with different data types.

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 searches that imply usage for historical press releases with a specific query syntax, but it does not explicitly state when to use this tool versus alternatives or exclude other scenarios. The examples serve as implicit guidance, but lacking explicit context for selection.

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

fda_nsdeA
Read-only

Search NDC SPL Data Elements — comprehensive drug product data. Use 'missing:marketing_end_date' for products still on market. Use 'exists:marketing_end_date' for discontinued products.

Example searches:

  • 'package_ndc:"55700-019-60"' — by NDC

  • 'missing:"marketing_end_date"' — currently marketed products

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4/5.0
Behavior4/5

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

The description aligns with the readOnlyHint annotation, confirming it is a search (read) operation. It adds behavioral context by explaining the query syntax (e.g., field operators) and examples, which helps the agent anticipate the tool's behavior. No contradictions with annotations.

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

Conciseness5/5

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

The description is very concise: a clear purpose statement followed by specific usage guidelines and examples. Every sentence adds value, and the most important information is front-loaded. 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.

Completeness3/5

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

Given the lack of an output schema and the tool's search nature, the description could be more complete by explaining the return format or pagination behavior. It provides query syntax and examples, but does not describe what fields are returned or how to handle large result sets. This is adequate but not fully comprehensive.

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 100% coverage, so the description does not need to replicate parameter details. However, it adds value by illustrating how to use the 'search' parameter with examples and special syntax (e.g., '_exists_', '_missing_'). This goes beyond the schema's description.

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

Purpose4/5

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

The description states the purpose clearly: 'Search NDC SPL Data Elements — comprehensive drug product data.' It identifies the specific resource (NDC SPL Data Elements) and action (search). However, it does not explicitly differentiate from sibling tools like fda_drug_ndc, so it loses some points.

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 specific usage guidance: use '_missing_:marketing_end_date' for currently marketed products and '_exists_:marketing_end_date' for discontinued ones. It also includes example searches. This helps the agent understand when and how to use the tool, though it does not explicitly mention when not to use it or alternatives.

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

fda_substanceA
Read-only

Search FDA substance data — molecular-level ingredient information. Search by name, CAS code, UNII, or molecular formula.

Example searches:

  • 'names.name:"PARACETAMOL"' — by substance name

  • 'codes.code:"220127-57-1"' — by CAS registry number

  • 'unii:"09211A0HHL"' — by UNII

  • 'structure.formula:"C6H12"' — by molecular formula

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'Search' is consistent. The description adds useful context about the search query syntax and field formats but does not elaborate on other behavioral traits like pagination or rate limits. It adds value beyond annotations but does not cover deeper behavioral 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 very short, front-loaded with purpose, and uses bulleted examples efficiently. Every sentence adds value 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?

Given the large number of sibling tools (many FDA-related), this description clearly differentiates the tool by focusing on substances and providing query examples. It covers essential aspects: data type, search fields, and syntax. The lack of output schema is acceptable for a search tool, and the description is complete enough for an AI agent to understand its 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?

Both parameters are fully described in the input schema (100% coverage). The description reinforces the schema by showing concrete field names and formats in examples, but it does not add new meaning beyond what the schema already provides. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description explicitly states 'Search FDA substance data — molecular-level ingredient information' and provides specific search examples (by name, CAS code, UNII, molecular formula). This clearly distinguishes it from sibling FDA tools like fda_approved_drugs or fda_drug_labels, which deal with drugs rather than substances.

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 for different search fields, indicating when to use this tool (e.g., when you need molecular-level ingredient info). It does not explicitly state when not to use it or mention alternatives, but the examples and context of sibling tools provide sufficient differentiation.

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

fda_tobacco_problemsA
Read-only

Search tobacco product problem reports (~1.3K reports). Reports about damaged, defective, or health-affecting tobacco products. E-cigarettes/vaping products dominate (~60% of reports).

Example searches:

  • 'date_submitted:[20180101+TO+20200723]' — reports in date range

  • 'nonuser_affected:"Yes"' — reports where non-users were affected

Count fields: tobacco_products.exact, reported_health_problems.exact

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations include readOnlyHint=true, and the description adds context about report count, types, and example queries, enhancing transparency 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?

The description is concise, well-structured, and front-loaded with the purpose. Every sentence adds value, including examples and data notes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, but the description hints at fields via count fields. Provides enough context for a search tool with good annotations, though could detail output format more.

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 covers both parameters with descriptions. The description adds useful example queries and mentions count fields, adding 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 clearly states the tool searches 'tobacco product problem reports' and specifies the types of reports (damaged, defective, health-affecting). It also notes the dominance of e-cigarettes, distinguishing it from other FDA 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?

Provides example searches and context about the data, but no explicit guidance on when to use this tool versus 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.

fda_uniiA
Read-only

Search UNII (Unique Ingredient Identifiers) — links ingredient names to unique chemical IDs.

Example searches:

  • 'unii:"L7V4I673D2"' — by UNII code

  • 'substance_name:"ASPIRIN"' — by substance name

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOpenFDA search query. Examples: 'field:value', 'field:"Exact Phrase"', 'field:[20200101+TO+20231231]', '_exists_:field'. Combine with '+AND+', '+OR+', '+NOT+'.
limitNoMax results (default 10, max 100)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds that it searches but does not disclose rate limits, pagination, or error behavior. This is adequate given the annotations, but not exceptional.

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

Conciseness5/5

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

The description is two concise sentences with bulleted examples. It front-loads the purpose and uses minimal, effective wording. Every sentence serves a purpose.

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

Completeness4/5

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

Given the absence of an output schema, the description could mention typical return format or fields. However, it sufficiently conveys the tool's function for a simple search tool, and annotations cover safety. Slightly incomplete but not deficient.

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%, but the description adds value by providing specific field names ('unii', 'substance_name') and usage examples not in the generic schema description. This helps the agent construct correct queries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 searches UNII (Unique Ingredient Identifiers) linking ingredient names to chemical IDs, with specific examples for querying by UNII code or substance name. It distinguishes itself from sibling FDA tools by focusing on this specific identifier system.

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?

While the description implies usage through examples, it does not explicitly state when to use this tool versus similar FDA substance tools like fda_substance. No when-not or alternative guidance is provided.

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

fdic_depositsA
Read-only

Get Summary of Deposits — branch-level deposit data from annual survey (June 30). Shows deposit amounts at each bank branch. Filter by state or institution. Useful for market share analysis and banking access by geography.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoFilter: 'STALP:"NY"', 'CERT:3511', 'CITY:"New York"'
sort_byNoSort field: 'DEPSUMBR' (branch deposits), 'INSTNAME'
sort_orderNoSort direction
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

A4/5.0
Behavior3/5

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

Annotations include readOnlyHint: true, which the description confirms by using 'Get'. The description adds that data is from an annual survey (June 30), but does not disclose that filters are optional, default limit behavior, or data freshness beyond the survey date. With annotations already indicating safe read, the description provides moderate additional 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?

The description is three sentences, efficiently presenting the purpose, data source, filtering capability, and use cases. Every sentence adds value, and the most critical information is front-loaded as 'Get Summary of Deposits'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 5 parameters with full schema descriptions, no output schema, and readOnlyHint annotation, the description adequately covers the tool's function and typical use cases. Pagination and default limit are missing but are in the schema. The description is complete enough for an agent to understand when to 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 has 100% coverage with descriptions for all 5 parameters. The description repeats 'Filter by state or institution' which is already in the schema, adding no new semantics beyond what the schema provides. Baseline of 3 is appropriate as 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?

The description clearly states the tool's purpose: 'Get Summary of Deposits — branch-level deposit data from annual survey'. It specifies the verb 'Get', the resource 'Summary of Deposits', and the scope 'branch-level'. This distinguishes it from sibling FDIC tools like fdic_failures or fdic_search_institutions, which deal with other 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 provides context: 'Filter by state or institution. Useful for market share analysis and banking access by geography.' It implies usage scenarios but does not explicitly state when to use this tool over others or provide exclusion criteria. More direct guidance on alternatives would improve this dimension.

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

fdic_failuresA
Read-only

Get FDIC-insured bank failures — all failures since 1934. Includes failure date, estimated cost to FDIC, resolution type, and acquiring institution. Filter by state: PSTALP:"GA", by year range, or combine filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoLucene-style filter: 'PSTALP:"GA"', 'FAILDATE:[2008-01-01 TO 2010-12-31]'
sort_byNoSort field: 'FAILDATE' (default), 'COST', 'QBFASSET'
sort_orderNoSort direction
limitNoMax results (default 25, max 100)
offsetNoPagination offset

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, and description confirms read-only nature. It adds scope ('all failures since 1934') but doesn't detail pagination limits (though schema handles that). No contradictions.

Agents need to know what a tool does to the world before 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: first states purpose and scope, second lists returned fields, third gives filtering guidance. Front-loaded, no redundant words across multiple 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?

Despite no output schema, description mentions key return fields. Parameters well-documented in schema with examples. For a simple filtered-list tool with good annotations, it's complete.

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. Description adds value by providing a specific filter example ('PSTALP:"GA"') and explaining that filter combines with year range, going beyond schema's generic 'Lucene-style filter'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 FDIC-insured bank failures since 1934, listing specific data fields (failure date, cost, resolution type, acquiring institution). It distinguishes from sibling FDIC tools like fdic_deposits or fdic_summary by focusing on failures.

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?

Description provides concrete filtering examples (by state with 'PSTALP:"GA"', by year range, or combine filters). While it doesn't explicitly compare to siblings or state when not to use, these examples give clear usage context.

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

fdic_financialsA
Read-only

Get quarterly Call Report financial data for FDIC-insured banks. Includes assets, deposits, net income, ROA, ROE, loan loss reserves. Filter by CERT number (specific bank) or STALP (state). Dollar values in thousands.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoFilter: 'CERT:3511' (specific bank), 'STALP:"CA"', 'REPDTE:20240331' (quarter)
fieldsNoFields: 'CERT,INSTNAME,REPDTE,ASSET,DEP,NETINC,ROA,ROE'
sort_byNoSort field: 'REPDTE' (default), 'ASSET', 'NETINC'
sort_orderNoSort direction
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description confirms it's a read operation. It adds context that dollar values are in thousands, but no disclosure of rate limits, authentication needs, 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?

The description is three sentences, front-loaded with the main purpose, and includes essential details without fluff. Every sentence contributes 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 read-only data retrieval tool with no output schema, the description lists key financial metrics and units. It covers filtering and typical fields. However, it does not reference sibling tools or explain pagination beyond 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% with detailed parameter descriptions. The description adds the note about dollar values in thousands, but this is minimal additional 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 clearly states the verb 'Get' and resource 'quarterly Call Report financial data for FDIC-insured banks', listing specific metrics. It distinguishes from sibling tools like fdic_deposits and fdic_summary by focusing on comprehensive quarterly financials.

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 filter examples (CERT, STALP, REPDTE) implying use cases, but does not explicitly state when to use this tool over siblings 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.

fdic_historyA
Read-only

Get institution event history — mergers, acquisitions, name changes, charter conversions. Filter by CERT number to trace a specific bank's history.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoFilter: 'CERT:3511', 'PSTALP:"CA"'
sort_byNoSort field: 'EFFDATE' (effective date)
sort_orderNoSort direction
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

A4/5.0
Behavior3/5

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

Annotations already mark the tool as read-only. The description adds context about event types and CERT filtering, but doesn't elaborate on pagination, default limits, or return structure. It provides some behavioral insight beyond annotations, but not extensively.

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

Conciseness5/5

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

Description is extremely concise—two sentences with no filler words. It effectively communicates the tool's purpose and a key usage tip in a compact format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 5 parameters, the description covers the core intent. However, it does not describe the return format or indicate that results are a list of events, which might be helpful. Nonetheless, it is largely complete given the 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%, so the schema already documents each parameter. The tool description doesn't add additional meaning beyond what's in the schema (e.g., filter format examples are already there). 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?

Description clearly states it retrieves institution event history and lists specific event types (mergers, acquisitions, name changes, charter conversions). It differentiates from sibling FDIC tools like 'fdic_failures' and 'fdic_financials' by focusing on historical events.

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

Usage Guidelines4/5

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

The description gives clear context: use this tool to get event history, especially by filtering with CERT number for a specific bank. It doesn't explicitly state when not to use it, but the purpose is well-defined in relation to siblings.

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-only

Search FDIC-insured banks and savings institutions. Filter by state, name, charter type, asset size, active status. Filters: STALP:"CA", ACTIVE:1, ASSET:[1000000 TO *], INSTNAME:"Wells Fargo", CHARTER_CLASS:"N". Assets and deposits are in thousands of dollars.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoLucene-style filter: 'STALP:"CA" AND ACTIVE:1', 'ASSET:[1000000 TO *]'
searchNoFree-text search across institution names
fieldsNoComma-separated fields to return: 'INSTNAME,STALP,ASSET,DEP,NETINC'
sort_byNoSort field: 'ASSET', 'DEP', 'INSTNAME', 'NETINC'
sort_orderNoSort direction
limitNoMax results (default 25, max 100)
offsetNoPagination offset

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already include readOnlyHint=true, so description carries reduced burden. It adds useful behavioral context such as example filter syntax and that assets/deposits are in thousands of dollars, which aids correct usage 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?

The description is very concise: three sentences covering purpose, filter types, example, and units. No superfluous text, every sentence adds essential information.

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 sufficiently covers basic functionality but omits details about pagination (limit/offset behavior) and the structure of returned data. Since there is no output schema, more context on the response format would improve completeness.

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

Parameters4/5

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

Input schema covers 100% of parameters with descriptions, but the tool description adds extra value by providing example filter strings and clarifying the unit scale (thousands of dollars). This enhances understanding 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 the tool searches FDIC-insured banks and savings institutions, with specific filter types and example filter strings. It distinguishes itself from sibling tools like fdic_failures or fdic_deposits by focusing on institution 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 does not explicitly mention when to use this tool versus alternatives like fdic_deposits or fdic_failures. It only implies usage for searching institutions, leaving the agent to infer context from the tool name and description.

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

fdic_summaryA
Read-only

Get aggregate banking statistics — industry totals by state or charter type. Useful for overview metrics: total banks, deposits, assets by state/year.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoFilter: 'STALP:"TX"', 'YEAR:2023'
fieldsNoFields to return
sort_byNoSort field
sort_orderNoSort direction
limitNoMax results (default 25)
offsetNoPagination offset

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint annotation already signals a read-only operation. The description adds context about the scope (state or charter aggregation) but does not disclose other behavioral traits such as rate limits or authentication requirements. With annotations, the description provides marginal 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.

Conciseness5/5

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

Two concise sentences: first states the action and scope, second provides examples of metrics. No fluff, front-loaded. Every sentence serves a purpose.

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 tool's purpose and high-level scope, but since there is no output schema, it would benefit from hinting at the return format (e.g., JSON with totals per group). It is adequate for a simple read tool but lacks 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%, with clear parameter descriptions like filters example. The description only mentions 'by state or charter type' which aligns with the filters parameter, but adds no additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The description uses 'Get aggregate banking statistics' as a clear verb+resource combination and specifies the scope 'by state or charter type' with example metrics. It distinguishes from sibling FDIC tools like fdic_search_institutions (individual data) but could be more explicit about that 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 states 'Useful for overview metrics: total banks, deposits, assets by state/year', indicating when to use it for aggregate stats. However, it does not explicitly mention when not to use it or suggest alternatives like fdic_search_institutions for detailed data.

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-only

Get financial summary for a candidate — total raised, spent, cash on hand, debt. Requires a candidate_id (use fec_search_candidates to find one).

ParametersJSON Schema
NameRequiredDescriptionDefault
candidate_idYesFEC candidate ID, e.g. 'P80001571' (Trump), 'P80000722' (Harris)
cycleNoTwo-year election cycle, e.g. 2024

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint: true, indicating safe read operation. The description adds context about what financial data is returned (raised, spent, cash, debt). No additional behavioral traits (e.g., rate limits, auth needs) are disclosed, but for a read-only tool with annotations, this is adequate.

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

Conciseness5/5

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

The description is two concise sentences with no redundancy. Every sentence adds value: first states the purpose and output, second states the required input and how to obtain 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?

Given the simple tool (2 params, no output schema) and good annotations, the description covers purpose, prerequisite, and output fields. It does not discuss error handling or empty results, but this is acceptable for a low-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 coverage is 100% with descriptions for both parameters. The description adds value by explaining the prerequisite for candidate_id (use fec_search_candidates) but does not enhance the meaning of the cycle parameter 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 the verb 'Get' and resource 'financial summary for a candidate', listing specific fields (total raised, spent, cash on hand, debt). It distinguishes from sibling tools like fec_committee_financials by focusing on candidates, and mentions the prerequisite search tool fec_search_candidates.

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 prerequisite (using fec_search_candidates to find candidate_id) and implies when to use this tool (to get financial summary). It does not explicitly exclude alternatives like fec_committee_financials, but the context of siblings and clear focus on candidates provides sufficient guidance.

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

fec_committee_disbursementsA
Read-only

Get itemized disbursements from a PAC or committee — shows exactly which candidates and committees received money, how much, and when. This is the KEY tool for conflict-of-interest investigations: trace direct money from named industry PACs to named politicians. Example: fec_committee_disbursements(committee_id='C00004275', cycle=2018, recipient_name='Crapo') shows ABA BankPAC donations to Sen. Crapo. WORKFLOW: (1) fec_search_committees(name='Company', committee_type='Q') to find PAC ID, (2) this tool with recipient_name filter. Try multiple cycles (election year ± 1 cycle) since PACs often give early. Common PAC IDs: ABA BankPAC=C00004275, Wells Fargo=C00034595, Citigroup=C00008474, Goldman Sachs=C00350744, Pfizer=C00016683, Merck=C00097485.

ParametersJSON Schema
NameRequiredDescriptionDefault
committee_idYesFEC committee ID (e.g. 'C00016683' for Pfizer PAC). Get from fec_search_committees.
cycleNoElection cycle year (e.g. 2024, 2026). Must be even year.
recipient_nameNoFilter to specific recipient: 'Pelosi', 'McConnell', 'NRCC', 'DSCC'
per_pageNoResults per page (default 20)

TDQS

A4.3/5.0
Behavior4/5

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

Description adds value beyond annotations: explains it shows itemized data and gives workflow context. Annotations already declare readOnlyHint, so no contradiction. Could mention pagination but not critical.

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?

Description is well-structured with purpose, example, workflow, and tips. Slightly verbose but each sentence adds value. Efficient for the information provided.

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

Completeness4/5

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

Covers usage context well: importance for conflict-of-interest, workflow, cycle advice. No output schema but return value is implied. Adequate for the tool's complexity.

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

Parameters4/5

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

All parameters have schema descriptions (100% coverage). Description adds practical context: recipient_name examples, committee_id common IDs, and cycle usage advice. Enhances understanding beyond 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 clearly states it retrieves itemized disbursements from PACs/committees, specifying the verb, resource, and purpose (trace money). It distinguishes itself from sibling tools like fec_search_committees and 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?

Provides explicit workflow (step 1: search committees, step 2: use this tool with recipient_name filter), example common PAC IDs, and advice to try multiple cycles. Lacks explicit when-not-to-use but context is clear.

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

fec_committee_financialsB
Read-only

Get financial totals for a committee (PAC, campaign, party). Requires a committee_id (use fec_search_committees to find one).

ParametersJSON Schema
NameRequiredDescriptionDefault
committee_idYesFEC committee ID, e.g. 'C00703975'
cycleNoTwo-year election cycle, e.g. 2024

TDQS

B3.2/5.0
Behavior3/5

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

Annotations set readOnlyHint=true, matching the 'Get' verb. Description adds no extra behavioral context beyond what annotations already convey. No mention of limitations, data freshness, or return 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?

Two concise sentences. Front-loaded with purpose. No unnecessary words. Efficiently conveys core information.

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

Completeness2/5

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

Lacks description of return output (e.g., what financial totals are included). Does not explain the optional cycle parameter. Given no output schema, description should provide more detail but does not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 both parameters with descriptions (100% coverage). Tool description only mentions committee_id, not cycle. No added meaning beyond 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?

Description clearly states verb 'Get' and resource 'financial totals for a committee', specifying committee types (PAC, campaign, party). It also mentions prerequisite tool, but does not explicitly differentiate from sibling tools like fec_candidate_financials or fec_committee_disbursements.

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?

Provides minimal guidance: requires committee_id and suggests using fec_search_committees. No information on when to use this tool versus alternatives, nor any exclusions or context for the optional cycle parameter.

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

fec_search_candidatesA
Read-only

Search for federal election candidates by name, state, party, office, or election year. Data from the Federal Election Commission (FEC).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCandidate name to search for
stateNoTwo-letter state code, e.g. 'CA', 'TX', 'NY'
partyNoThree-letter party code: 'DEM', 'REP', 'LIB', 'GRE', etc.
officeNoOffice: H=House, S=Senate, P=President
election_yearNoElection year, e.g. 2024
pageNoPage number (default: 1)
per_pageNoResults per page (default: 20, max: 100)

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, and the description aligns by stating 'Search'. The description adds the data source (FEC), but does not disclose additional behavioral traits such as result format, pagination behavior, or rate limits. With annotations covering the read-only nature, the description adds modest 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?

The description is two concise sentences: first sentence states purpose and filters, second sentence provides data source. No filler, front-loaded, and every sentence contributes value.

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

Completeness3/5

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

Given the tool is a search with 7 optional parameters and no output schema, the description covers essential elements but omits details like return format (e.g., candidate IDs, names) or pagination behavior. Slightly incomplete for an agent to fully anticipate 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?

The input schema covers all parameters with descriptions (100% coverage). The description merely lists the filter fields without adding meaning beyond what the schema provides. For a search tool with full schema coverage, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Search') and resource ('federal election candidates'), lists specific filters (name, state, party, office, election year), and distinguishes from sibling tools like fec_candidate_financials or fec_search_committees by specifying the data source (FEC) and the type of data (candidates).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives. There is no mention of when not to use it, nor any comparison to other FEC search tools like fec_search_committees or fec_top_candidates. Users must infer from context.

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

fec_search_committeesA
Read-only

Search for political committees (PACs, campaign committees, party committees) by name, state, or type. CRITICAL for investigations: Use committee_type='Q' (Qualified PAC) + name='Company Name' to find corporate PAC IDs. Example: name='Wells Fargo', committee_type='Q' returns C00034595 (Wells Fargo Employee PAC). Then use fec_committee_disbursements with the committee_id to trace money to specific politicians.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCommittee name to search for
stateNoTwo-letter state code
committee_typeNoCommittee type: 'P' (Presidential), 'H' (House), 'S' (Senate), 'N' (PAC - Nonqualified), 'Q' (PAC - Qualified), 'X' (Party - Nonqualified), 'Y' (Party - Qualified), 'I' (Independent Expenditor), 'O' (Super PAC)
cycleNoTwo-year election cycle, e.g. 2024
pageNoPage number (default: 1)
per_pageNoResults per page (default: 20)

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=true, and the description does not contradict this. However, it adds no additional behavioral traits (e.g., pagination behavior, error cases, authentication requirements) beyond what annotations provide. The description focuses on usage patterns rather than systemic 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 three sentences: general purpose, critical guidance, and an explicit example. It is front-loaded with the most important information and contains no superfluous 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?

Given the tool has no output schema, the description provides a concrete example and chains to a complementary tool (fec_committee_disbursements). It does not cover pagination or response format, but these are partially covered by the schema and annotations. Overall, it is adequate for an agent to understand 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?

Input schema has 100% description coverage; the description does not add new semantic meaning to individual parameters. It emphasizes a specific parameter combination (committee_type='Q' + name) as a usage hint, but this is not 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 clearly states the verb 'Search' and the resource 'political committees (PACs, campaign committees, party committees)'. It distinguishes from sibling tools like fec_search_candidates and fec_committee_disbursements by specifying the target 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 provides explicit guidance for investigations, highlighting the critical use of committee_type='Q' with a company name, and directs the agent to subsequently use fec_committee_disbursements. It does not explicitly state when not to use the tool, 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.

fec_top_candidatesA
Read-only

Get top candidates ranked by total money raised for a given office and election cycle.

ParametersJSON Schema
NameRequiredDescriptionDefault
officeYesOffice: H=House, S=Senate, P=President
election_yearYesElection year, e.g. 2024
stateNoTwo-letter state code to filter by
per_pageNoNumber of results (default: 20)

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, and the description adds that results are ranked by total money raised. However, it does not disclose default number of results (20) or that pagination is limited to 50 via per_page.

Agents need to know what a tool does to the world before 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 clearly states the action and criteria. No unnecessary words; front-loaded with the verb 'Get'.

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 is provided, yet the description does not hint at the response structure (e.g., list of candidates with amounts). It adequately covers the tool's purpose but lacks details on return format or sorting order.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% description coverage, so the description adds minimal value beyond stating 'for a given office and election cycle'. Parameters like state and per_page are explained in schema but not elaborated in description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves top candidates ranked by total money raised for a specific office and election cycle. This distinguishes it from sibling FEC tools like fec_candidate_financials or fec_search_candidates.

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 for ranking top candidates but does not provide explicit guidance on when to use this tool versus alternatives like fec_candidate_financials for detailed financials or fec_search_candidates for broader searches.

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

fema_disaster_declarationsA
Read-only

Search FEMA disaster declarations (since 1953). Filter by state, year, incident type, or declaration type. Returns disaster name, type, affected area, programs declared.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code (e.g. TX, FL, CA)
yearNoFilter by year of declaration
incident_typeNoIncident type: Hurricane, Flood, Fire, Severe Storm(s), Tornado, Earthquake, Snow, Biological
declaration_typeNoDR=Major Disaster, EM=Emergency, FM=Fire Management
topNoMax results (default 50)
skipNoNumber of records to skip for pagination

TDQS

A4/5.0
Behavior4/5

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

Annotations set readOnlyHint=true, and description confirms a read operation (Search). Description adds return fields but does not mention pagination behavior or rate limits, which are partly covered by schema. No contradiction.

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

Conciseness5/5

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

Two sentences, no redundant information. Front-loaded with the core action and scope. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, but description lists key return fields (name, type, area, programs). Missing pagination details, though schema covers top and skip parameters. Adequate 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 coverage is 100% with clear descriptions for each parameter. Description summarizes filters but does not add new semantics 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 clearly states the tool searches FEMA disaster declarations since 1953, with specific filters. It distinguishes from siblings like fema_housing_assistance and fema_public_assistance by focusing on 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 Guidelines3/5

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

The description implies usage for searching declarations with filters but does not explicitly state when to use this versus other FEMA tools or provide exclusion criteria. No guidance on pagination or result limits.

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

fema_housing_assistanceA
Read-only

Get FEMA Individual Housing Program (IHP) assistance data for homeowners. Shows approved assistance amounts, inspections, and damage by county/zip for a disaster.

ParametersJSON Schema
NameRequiredDescriptionDefault
disaster_numberNoFEMA disaster number (from disaster declarations)
stateNoTwo-letter state code
countyNoCounty name
topNoMax results (default 50)
skipNoNumber of records to skip

TDQS

A3.6/5.0
Behavior3/5

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

The description is consistent with readOnlyHint annotation, stating 'Get' which implies no side effects. It adds context about the data types (assistance amounts, inspections, damage) but does not disclose additional behavioral traits like rate limits or data freshness.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with key information. No unnecessary words.

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

Completeness4/5

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

For a read-only tool with 5 parameters and no output schema, the description adequately conveys the tool's purpose and data scope. It does not explain pagination or return format, but annotations and schema cover safety and basic parameter info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 description doesn't need to add much. It mentions filtering by county/zip and disaster, which aligns with some parameters, but provides no extra meaning beyond the 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 uses a specific verb ('Get'), identifies the resource ('FEMA Individual Housing Program (IHP) assistance data for homeowners'), and mentions specific outputs (approved amounts, inspections, damage). It clearly distinguishes from sibling tools like fema_disaster_declarations and fema_public_assistance.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. It implies use for a disaster but does not specify prerequisites or contexts where other FEMA tools would be more appropriate.

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

fema_public_assistanceA
Read-only

Get FEMA Public Assistance (PA) grant awards. Shows project-level grants to state/local/tribal governments and nonprofits for debris removal, emergency work, and permanent repair.

ParametersJSON Schema
NameRequiredDescriptionDefault
disaster_numberNoFEMA disaster number
stateNoTwo-letter state code
topNoMax results (default 50)
skipNoNumber of records to skip

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, so the read-only nature is clear. Description adds that it shows 'project-level grants' and covers specific disaster types, which is useful but limited. No mention of pagination, limits, or other behavioral traits 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.

Conciseness5/5

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

Two sentences, front-loaded with the main action. Every word is informative with no redundancy. Efficient and directly conveys the purpose.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with 4 parameters and no output schema, the description adequately explains the type of data returned and the intended use. It covers the core aspects, though it could briefly mention how results are ordered or truncated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter description coverage, so the baseline is 3. Description does not add additional meaning to the parameters (disaster_number, state, top, skip). The contextual info about grant types does not directly aid 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 'Get FEMA Public Assistance (PA) grant awards' with specific action and resource, and elaborates on the scope (project-level grants, types of recipients and work). It distinguishes itself from siblings like fema_disaster_declarations and fema_housing_assistance by focusing on PA grants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternative FEMA tools. Sibling tools such as fema_disaster_declarations and fema_housing_assistance exist but are not mentioned or contrasted. The description provides no when-not-to-use or context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fema_queryA
Read-only

General-purpose query against any OpenFEMA v2 dataset. Use this for NFIP flood insurance claims/policies, hazard mitigation grants, mission assignments, IHP registrations, etc. Supports OData $filter syntax.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetYesDataset key (disaster_declarations, housing_owners, housing_renters, public_assistance, nfip_claims, nfip_policies, hazard_mitigation, mission_assignments, fema_regions, registrations) or raw endpoint name
filterNoOData $filter expression (e.g. "state eq 'TX' and yearOfLoss eq '2017'")
selectNoComma-separated fields to return (OData $select)
order_byNoOData $orderby expression (e.g. 'dateOfLoss desc')
topNoMax results (default 50)
skipNoOffset for pagination

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description aligns with a read operation. The description adds OData syntax details but no further behavioral traits like rate limits, response size limits, or error handling. With annotations covering read-only, the description provides moderate 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey the tool's purpose, scope, and syntax. No wasted words; front-loaded with the key action.

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 adequately states purpose and syntax but lacks details on pagination behavior, default result count, response format, or dataset availability. For a general-purpose query tool, this leaves some gaps, making it mediocre in 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 coverage is 100% with all 6 parameters described. The description adds no extra parameter-level meaning beyond mentioning OData $filter. 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 clearly states 'General-purpose query against any OpenFEMA v2 dataset' and lists specific examples (NFIP claims, hazard mitigation, etc.). This differentiates it from sibling tools like fema_disaster_declarations which are dataset-specific.

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 advises using the tool for specific dataset types, providing clear positive context. However, it does not explicitly mention when to avoid it or suggest alternatives for more focused queries, so it lacks exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fema_regionsA
Read-only

Get FEMA region boundaries and associated states. 10 FEMA regions cover all U.S. states and territories.

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 provide readOnlyHint=true, so the description adds minimal behavioral context beyond being a read-only lookup. No further behavioral traits are disclosed.

Agents need to know what a tool does to the world before 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 no extraneous information. It is front-loaded with the core purpose.

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 has no parameters and no output schema, the description is fully complete. It states what the tool returns (boundaries and states) and the scope (10 regions covering all US states and territories).

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 coverage is 100%, so the description does not need to add parameter information. Baseline 4 is appropriate as no additional semantics are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get FEMA region boundaries and associated states', specifying the verb (get) and resource (region boundaries). It also adds context about the number of regions and coverage, distinguishing it from sibling FEMA tools that deal with disasters or assistance.

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 for retrieving FEMA region data but lacks explicit guidance on when to use this tool versus alternatives like fema_disaster_declarations or fema_query. No when-not-to-use conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fooddata_detailA
Read-only

Get complete nutritional details for a specific food by its FDC ID. Returns full nutrient breakdown: calories, protein, fat, carbs, vitamins, minerals, amino acids. Use fooddata_search first to find FDC IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
fdcIdYesFoodData Central ID (get from fooddata_search results)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, and the description reinforces by specifying it returns complete nutritional breakdown, adding context beyond the 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?

Two sentences, front-loaded with purpose, then guideline. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter fully described. The description provides complete context for usage, though return format is implied but not detailed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for fdcId. The tool description reinforces but doesn't add significant 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 clearly states it gets complete nutritional details for a specific food by FDC ID, and distinguishes it from siblings like fooddata_search and fooddata_list.

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 advises to use fooddata_search first to find FDC IDs, providing clear context for when 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.

fooddata_listA
Read-only

Browse a paged list of foods from the USDA database. Useful for exploring available foods by data type without a specific search term.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataTypeNoFilter by data type
pageSizeNoResults per page (default 25, max 200)
pageNumberNoPage number (1-based)
sortByNoSort field
sortOrderNoSort direction

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description's 'Browse' is consistent. No additional behavioral traits (e.g., rate limits, data freshness) are disclosed 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 with no wasted words. The first sentence front-loads the purpose, and the second adds usage 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?

The description mentions pagination ('paged list') and the schema covers parameters thoroughly. No output schema exists, but for a list tool, the description and schema together provide sufficient completeness. Could optionally note that results are returned in pages controlled by pageSize/pageNumber.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 5 parameters. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'browse' and the resource 'paged list of foods from the USDA database', and distinguishes it from sibling tools like fooddata_search by noting it's for exploring without a specific search term.

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 it's useful for exploring without a search term, implying when to use it vs. fooddata_search. It doesn't provide explicit 'when-not-to-use' 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.

fr_agenciesA
Read-only

List all federal agencies that publish in the Federal Register. Returns agency names, short names, slugs (for filtering), and URLs. 470+ agencies.

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. The description adds value by specifying the exact return fields (names, short names, slugs, URLs) and the volume (470+ agencies), which goes beyond the annotation's safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using only two sentences to convey all essential information. It is front-loaded with the primary action and purpose, followed by return details and scale. No 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 tool with no input parameters and a single output of a list, the description is fully complete. It explains what the tool does, what it returns, and the approximate size. No output schema is needed for this straightforward listing.

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?

No parameters exist in the input schema, so the description does not need to add parameter meaning. Baseline of 4 applies as the description is clear and no parameter information is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists all federal agencies that publish in the Federal Register, with a specific verb and resource. It distinguishes itself from sibling tools like fr_search_rules or fr_document_detail by focusing on agency enumeration.

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 when needing a list of agencies for filtering, but provides no explicit guidance on when to use this tool over alternatives or any prerequisites. No direct exclusion criteria or context for 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.

fr_document_detailA
Read-only

Get full details for a specific Federal Register document by document number. Returns title, abstract, full text URL, agencies, CFR references, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_numberYesFederal Register document number: '2024-00001'

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the description's disclosure that it returns details is consistent but adds limited extra behavioral context. It lists return fields but does not mention potential errors, authentication needs, or rate limits. The description adds value but is not particularly rich beyond the 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 concise: two sentences that front-load the purpose and list key return fields. Every word contributes; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 low complexity (one parameter, no output schema), the description is fairly complete. It lists the major return fields. However, it does not address what happens if the document number is invalid or missing, which would be helpful for error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 document_number has a schema description with an example format. The description mentions 'by document number' but does not add new semantics beyond what the schema already provides. With 100% schema coverage, this meets 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 clearly states the tool retrieves full details for a specific Federal Register document by document number, listing key return fields (title, abstract, full text URL, agencies, CFR references). It distinguishes from sibling tools like fr_search_rules and fr_agencies by focusing on a single document lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is used when you have a specific document number, but it does not explicitly state when to use it versus alternatives (e.g., search tools) or note any prerequisites or exclusions. The context of sibling tools implies its role, but no direct guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_release_dataA
Read-only

Bulk fetch a FRED release. Common: 53 (GDP), 50 (Employment), 10 (CPI), 18 (Rates)

ParametersJSON Schema
NameRequiredDescriptionDefault
release_idYese.g. 53 (GDP)
limitNoMax obs

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the tool as readOnlyHint=true. The description adds 'Bulk fetch' indicating no side effects, and provides common IDs, but does not disclose behavior beyond that (e.g., pagination, rate limits). It adds moderate context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences. First sentence states purpose, second provides common examples. No redundant information, 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 two-parameter, read-only tool, the description covers the essential purpose and common usage. It lacks detail on response format or limit behavior, but the simplicity and annotations compensate. Nearly complete for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds release ID examples ('Common: 53 (GDP)'), reinforcing the schema's example. Limit parameter is only described as 'Max obs' in both schema and description, no added detail. Adheres to baseline for high 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 clearly states the purpose: 'Bulk fetch a FRED release.' The verb 'fetch' and resource 'FRED release' are specific. Common release ID examples help distinguish this tool from series-level tools like fred_series_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?

The description provides common release ID examples (53 GDP, 50 Employment, etc.), hinting at usage, but does not explicitly state when to use this tool versus alternatives like fred_series_data or fred_search. No when-not-to-use guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fred_series_dataA
Read-only

Get observations for a FRED series. Popular: GDP, UNRATE, CPIAUCSL, FEDFUNDS, DGS10, MORTGAGE30US

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYesSeries ID
limitNoMax obs (default 1000)
sort_orderNodefault: desc
frequencyNod, w, bw, m, q, sa, a
start_dateNoYYYY-MM-DD
end_dateNoYYYY-MM-DD

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already signals a safe read operation. The description adds no further behavioral details (e.g., pagination, rate limits, or result format). With annotations present, the description's contribution is adequate 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 extremely concise—two brief lines. It front-loads the purpose and immediately adds value with popular examples, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters, is a data retrieval operation, and lacks an output schema. The description does not explain what the response contains (e.g., time series with dates, values). While the schema covers parameters, the missing return shape reduces completeness for agents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameters. The description does not add semantic meaning beyond the schema (e.g., how date filters interact). 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 states 'Get observations for a FRED series' with specific verb and resource. It lists popular series IDs (GDP, UNRATE, etc.), which helps agents understand the tool's domain. This distinguishes it from siblings like fred_search, fred_series_info, and fred_release_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?

The description provides context (popular series) but lacks explicit guidance on when to use this tool versus siblings. It does not mention when not to use it or alternative tools for related tasks.

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-only

Get metadata for a FRED series — title, units, frequency, range, notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYese.g. 'GDP', 'UNRATE', 'CPIAUCSL'

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, so the description adds value by listing returned metadata fields. However, it does not disclose any additional behavioral traits such as rate limits, data freshness, or handling of invalid series_id. The description is adequate but not enhanced beyond the 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?

Single sentence, directly states purpose and key fields. No extraneous words. Front-loaded with purpose. 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 metadata tool with no output schema, the description lists the key return fields (title, units, frequency, range, notes), which is helpful. It could be more exhaustive, but the given fields cover the most common needs. Absent output schema, this 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 description coverage is 100%, and the parameter series_id is described with examples. The description adds no additional meaning or constraint beyond the schema, so a 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?

Description clearly states the tool gets metadata for a FRED series, listing specific fields (title, units, frequency, range, notes). The verb 'Get' and resource 'FRED series metadata' are specific, and given siblings like fred_series_data and fred_search, the purpose distinguishes this tool as returning metadata rather than 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?

No explicit guidance on when to use this tool versus alternatives. However, the name 'info' versus 'data' and 'search' implies it's for metadata retrieval. The context of siblings provides implicit differentiation, but the description lacks direct when/when-not statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fr_executive_ordersA
Read-only

Search for presidential executive orders. Filter by president, year, or keyword. Covers all executive orders since 1994.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoSearch keyword in title/abstract, e.g. 'tariff', 'immigration', 'climate'
presidentNoPresident slug: 'donald-trump', 'joe-biden', 'barack-obama', 'george-w-bush', 'william-j-clinton'
yearNoYear to filter by, e.g. 2025
per_pageNoResults per page (default: 20)
pageNoPage number (default: 1)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, consistent with the search behavior. The description adds the date coverage (since 1994) but does not disclose other behaviors like 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loaded with the main action. Every word is 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?

Despite lacking an output schema, the description covers the core functionality. However, it omits mention of pagination parameters (per_page, page), which are part of 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% with clear parameter descriptions. The tool description mentions the filter options but does not add significant 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 clearly states the action ('Search'), the resource ('presidential executive orders'), and the scope ('since 1994'). It distinguishes this tool from siblings by specifying the unique resource type.

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 mentions when to use this tool (searching executive orders with filters). It does not provide exclusions or alternatives, 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.

fr_presidential_documentsB
Read-only

Search all presidential documents: executive orders, memoranda, proclamations, and other presidential actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoSearch keyword
doc_typeNoDocument subtype
presidentNoPresident slug: 'donald-trump', 'joe-biden', 'barack-obama', 'george-w-bush', 'william-j-clinton'
start_dateNoStart date YYYY-MM-DD
end_dateNoEnd date YYYY-MM-DD
per_pageNoResults per page (default: 20)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, but the description adds no behavioral details beyond 'Search'. It does not describe the return format, pagination behavior, or any side effects. For a search tool, it should at least imply it returns a list of matching documents.

Agents need to know what a tool does to the world before 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-loading the purpose. No extra words, no redundancy. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and only a minimal description, the agent lacks information about what the response contains. The description does not mention return structure, ordering, or other outcome details that would be helpful for a search tool with 6 optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 6 parameters with descriptions (100% coverage). The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches all presidential documents, listing specific types (executive orders, memoranda, proclamations, and other presidential actions). This distinguishes it from siblings like fr_executive_orders that likely focus on a subset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description simply says 'Search all presidential documents' without mentioning when to choose this over fr_executive_orders or fr_search_rules, leaving the agent without decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fr_search_rulesA
Read-only

Search for proposed rules, final rules, and agency notices in the Federal Register. Use to track regulatory activity by agencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoSearch keyword, e.g. 'tariff', 'emissions', 'banking'
doc_typeNoRule type
agencyNoAgency slug, e.g. 'environmental-protection-agency', 'securities-and-exchange-commission'
start_dateNoStart date YYYY-MM-DD
end_dateNoEnd date YYYY-MM-DD
per_pageNoResults per page (default: 20)
significantNoOnly show significant/major rules (true/false)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates a safe read operation. The description adds that the tool searches for specific document types (proposed rules, final rules, notices), but does not disclose additional behavioral traits like pagination, rate limits, or response 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?

The description is two sentences with no wasted words. It is front-loaded with the core action and resource, followed by a concise usage suggestion.

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 search tool with 7 optional parameters and no output schema, the description is minimal. It does not explain output format, pagination, or defaults like per_page. However, the purpose is adequately conveyed for a straightforward search, earning a middle score.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 7 parameters have descriptions in the input schema (100% coverage), so the schema already provides parameter semantics. The description does not add any additional meaning or relationships beyond what the schema offers, maintaining the baseline score of 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 clearly states it searches for proposed rules, final rules, and agency notices in the Federal Register, and provides additional context of tracking regulatory activity. It is a specific verb+resource that distinguishes it from sibling tools like fr_document_detail or fr_agencies.

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 'Use to track regulatory activity by agencies,' giving a clear usage context. However, it does not mention when not to use this tool or compare it with alternatives, which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_endpoint_fieldsA
Read-only

Get field names, data types, and formats for a specific Treasury Fiscal Data API endpoint. This helps you discover what fields are available before querying data.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointYesThe API endpoint path, e.g. '/v2/accounting/od/debt_to_penny' or '/v1/accounting/dts/operating_cash_balance'

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already declares readOnlyHint=true, so the description's statement that it retrieves data is consistent but adds no new behavioral details. Without annotations, a higher score would be possible, but here it does not elaborate on aspects like rate limits or idempotency.

Agents need to know what a tool does to the world before 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 focused sentences with no extraneous words. It efficiently conveys the tool's purpose and 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?

Given the lack of an output schema, the description adequately explains what the tool returns (field names, data types, formats) and its purpose in the discovery workflow. It is sufficient for an agent to understand how to use 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?

The schema covers the sole parameter 'endpoint' with examples; the description does not add additional meaning beyond what the schema provides. With 100% schema coverage, 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 clearly states the tool retrieves field names, data types, and formats for a specific Treasury Fiscal Data API endpoint. It explicitly uses the verb 'Get' and specifies the resource, distinguishing it from sibling tools like 'query_fiscal_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 advises using this tool to discover fields before querying data, indicating its appropriate context. However, it does not explicitly mention when not to use it or provide alternatives, though the sibling tool 'query_fiscal_data' is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govinfo_bill_textA
Read-only

Get the FULL legislative text of a bill from GovInfo — the actual law language with section numbers, dollar amounts, legal citations, and provisions.

IMPORTANT: Try congress_bill_summaries first for a quick CRS summary (~500-2000 chars). Only use this tool when the user needs exact legislative language, specific provisions, or dollar amounts from the bill text.

Use preview_only=true first to check bill size before loading. Bills range from 5k chars (simple resolutions) to 500k+ (omnibus/appropriations). Default limit is 100k chars.

Version suffixes: enr (enrolled/signed), eh (engrossed House), es (engrossed Senate), ih (introduced House), is (introduced Senate)

ParametersJSON Schema
NameRequiredDescriptionDefault
congressYesCongress number (e.g., 119, 118, 117)
bill_typeYesBill type
bill_numberYesBill number (e.g., 1, 5376)
versionNoBill version: 'enr' (enrolled/signed, default), 'eh' (engrossed House), 'es' (engrossed Senate), 'ih' (introduced House), 'is' (introduced Senate)
max_lengthNoMaximum characters to return (default: 100000). Most bills fit within 100k. Set higher (e.g. 500000) for large omnibus bills, or 0 for no limit.
preview_onlyNoWhen true, returns only metadata (title, pages, character count, estimated tokens) WITHOUT the actual text. Use this to check bill size before loading. Default: false.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavioral traits beyond the readOnlyHint annotation: bills range from 5k to 500k+ chars, default limit is 100k, version suffixes explained, and preview_only behavior described. 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 fairly long but well-structured with paragraphs and bullet points. It is front-loaded with the main purpose. Some redundancy exists (e.g., version suffixes explained twice), but overall it is efficient and maintains 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?

Given no output schema, the description covers the main behavior and constraints (size, versions, preview). It does not detail the exact return format (e.g., plain text or JSON structure), but the context of a text retrieval tool is well covered. Minor gap in output description.

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?

Schema coverage is 100% with descriptions for each parameter, but the description adds extra meaning: e.g., explains that max_length default handles most bills, and bills range from 5k to 500k+ chars, which aids parameter selection beyond schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it retrieves the full legislative text of a bill, specifying it contains actual law language with section numbers, dollar amounts, etc. It distinguishes from sibling tool congress_bill_summaries by advising to try that first for quick summaries, making the purpose and differentiation explicit.

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 provides explicit when-to-use and when-not-to-use guidance: recommended as a fallback after congress_bill_summaries, and only when exact language or specific provisions are needed. It also advises using preview_only=true first to check bill size, setting clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govinfo_cbo_reportsA
Read-only

Search for Congressional Budget Office reports published through GovInfo. CBO scores tax bills with distributional analysis showing impact by income group.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query — bill name or topic (e.g., 'Tax Cuts and Jobs Act', 'reconciliation')
page_sizeNoResults per page (default: 10)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint. The description adds context about report content but does not disclose further behavioral details like response format 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 sentences, no wasted words. The first sentence states the core function, and the second adds a specific detail. Highly concise.

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 and no description of return values. For a simple search tool, this may be acceptable but a brief note on response format would 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 coverage is 100% and parameter descriptions are sufficient. The tool description does not add extra parameter semantics beyond what the schema provides, leading to a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for CBO reports and highlights a key feature (distributional analysis by income group), which distinguishes it from broader tools like govinfo_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?

No guidance on when to use this tool versus alternatives such as govinfo_search. The description lacks context for appropriate usage or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hud_fair_market_rentsB
Read-only

Get HUD Fair Market Rents (FMR) for a county, metro area, or entire state. Shows monthly rent by bedroom count (efficiency through 4-bedroom). FMR determines Section 8 voucher amounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code for state-wide FMR data (e.g. CA, TX)
entity_idNoCounty FIPS or CBSA code for specific area FMR (get from hud_list_counties)
yearNoFiscal year (e.g. 2024). Defaults to current year.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, which is consistent. The description adds context about the data content (bedroom counts, Section 8) but does not disclose behavioral traits like pagination, rate limits, or data freshness. Adds some 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?

Two sentences efficiently convey purpose and usage context. Front-loaded with the verb 'Get' and resource, 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?

Given no output schema, the description provides useful context about the output (monthly rent by bedroom count) and application (Section 8 vouchers). However, it could be more explicit about output structure and year parameter behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the description adds no new parameter meaning. It repeats that entity_id can come from hud_list_counties, which is already in the schema. 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 states it retrieves HUD Fair Market Rents for a geographic area and specifies the data includes monthly rent by bedroom count. It is specific about the resource and function, though it does not differentiate from sibling tools like hud_list_counties.

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 does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or limitations. For example, it does not direct the user to first obtain entity_id from hud_list_counties.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hud_income_limitsA
Read-only

Get HUD Income Limits for a county, metro area, or entire state. Shows Very Low, Extremely Low, and Low income thresholds by household size (1-8 persons). Used for affordable housing eligibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code for state-wide income limits
entity_idNoCounty FIPS or CBSA code (get from hud_list_counties)
yearNoFiscal year (e.g. 2024). Defaults to current year.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context about the data returned (thresholds by household size) but does not disclose additional behavioral traits like error handling or parameter conflicts. This adds some value beyond annotations, warranting a 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every word adds value. No unnecessary information, making it efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 three optional parameters and no output schema, the description provides sufficient context: what it does, what data it returns, and its use case. It could briefly mention the effect of specifying multiple parameters (e.g., state vs. entity_id), but overall it is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 three parameters have descriptions in the input schema (100% coverage), so the schema already documents their meaning. The description does not add extra detail beyond what's in the schema (e.g., the mention of entity_id referring to hud_list_counties is already in the schema description). 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 clearly states the verb 'Get', the specific resource 'HUD Income Limits', and the geographical scope (county, metro area, state). It also details what data is shown (Very Low, Extremely Low, Low thresholds by household size) and the use case (affordable housing eligibility), making it distinct from sibling tools like hud_fair_market_rents.

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 the tool (for affordable housing eligibility) but does not explicitly mention alternatives or when not to use it. Given the clear naming and context, the usage context is clear, but direct alternative guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hud_list_countiesA
Read-only

List counties in a state with their FIPS codes. Use FIPS codes as entity_id in hud_fair_market_rents and hud_income_limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesTwo-letter state code (e.g. CA, TX, NY)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the description does not need to repeat that. The description adds the purpose but does not disclose any additional behavioral traits such as rate limits, data freshness, or specific output format. Given the annotation coverage, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core purpose, and every sentence adds value (purpose + usage guidance). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description states the purpose and links to related tools but lacks information about the output structure (e.g., list of objects with fields). Since there is no output schema, the agent might need to infer the format. It is minimally complete for a simple list tool but could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 provides a full description of the 'state' parameter with examples. The description does not add any additional meaning beyond what is already in the schema. With 100% schema coverage, baseline is 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 clearly states the verb 'list' and the resource 'counties in a state with their FIPS codes'. It also distinguishes itself from sibling tools by specifying how the output (FIPS codes) should be used with hud_fair_market_rents and hud_income_limits, which are present in the sibling list.

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 directs the agent to use the FIPS codes as entity_id in related HUD tools, providing clear context for downstream usage. However, it does not mention when not to use this tool or offer alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hud_list_metro_areasA
Read-only

List metropolitan/CBSA areas. CBSA codes can be used as entity_id in HUD tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with annotations (readOnlyHint: true) and adds context about the output's utility in other tools. It does not contradict any annotations, and while minimal, it provides sufficient behavioral context for a read-only list 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 consists of two concise sentences, front-loading the primary purpose and adding a key usage note. Every sentence adds value with no unnecessary 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?

Given the tool's simplicity (no parameters, no output schema), the description completely covers what the tool does and how its output is used. No additional context is needed.

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 no parameters, so schema description coverage is 100%. The description does not need to add parameter details; the baseline score of 4 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 the tool lists metropolitan/CBSA areas and explains the use of CBSA codes as entity_ids in HUD tools. This distinguishes it from sibling tools like hud_list_counties or hud_list_states.

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 the tool: to get CBSA codes for use in other HUD tools. It does not explicitly mention when not to use it or provide alternatives, but the guidance is clear enough for the intended purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hud_list_statesA
Read-only

List all U.S. states with their HUD state codes. Use these codes with other HUD tools.

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; description adds value by stating the output is HUD state codes and an intended use case, without contradicting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core function and usage, with no extraneous 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 list tool, the description fully covers what the agent needs to know: output and how to use it with sibling tools.

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?

No parameters exist, and schema coverage is 100%; description adds meaning by clarifying the output (state codes) and usage, surpassing 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 clearly states the tool lists all U.S. states with their HUD state codes, distinguishing it from sibling tools like hud_list_counties and hud_list_metro_areas.

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 instructs to use the codes with other HUD tools, providing clear context for when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_datasetsA
Read-only

List all 53 U.S. Treasury Fiscal Data API datasets and their 181 endpoints. Returns dataset name, data table name, API endpoint path, and description.

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 provide readOnlyHint=true, so the description does not need to reiterate read-only behavior. The description adds factual details (53 datasets, 181 endpoints) but no additional behavioral traits beyond what annotations indicate.

Agents need to know what a tool does to the world before 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 consists of two concise sentences with no wasted words. It front-loads the key information about what the tool lists and what it returns.

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 has no parameters and no output schema, the description provides complete context: it lists all datasets and endpoints, and specifies the four fields in the return value. This is sufficient for an agent to understand the tool's functionality.

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 coverage is 100% (empty schema). According to guidelines, baseline is 4 for no parameters. The description does not need to add 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 clearly states the tool lists all 53 U.S. Treasury Fiscal Data API datasets and their 181 endpoints, specifying the verb 'list' and the resource 'datasets and endpoints'. It distinguishes from sibling tools like 'query_fiscal_data' which query specific 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?

While the description clearly indicates the tool is for discovering available datasets and endpoints, it does not explicitly mention when not to use it or suggest alternatives such as 'search_datasets' for searching across datasets. This is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lobbying_contributionsB
Read-only

Search campaign contributions made by lobbyists — shows which lobbyists donated to which politicians. Required under the LDA to disclose political contributions by registered lobbyists.

ParametersJSON Schema
NameRequiredDescriptionDefault
filing_yearNoYear: 2020-2026
registrant_nameNoLobbying firm name
lobbyist_nameNoIndividual lobbyist name
page_sizeNoResults per page (default 20)

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. Description adds context about searching and legal requirements under LDA but does not disclose additional behavioral traits like rate limits or output format. Acceptable but 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the core purpose and legal context. Every sentence is informative without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with no output schema, the description is mostly complete. It could benefit from mentioning pagination or default output behavior, but it adequately covers the main functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 covers all 4 parameters with descriptions (100% coverage). Description does not add any extra meaning or usage hints beyond what schema provides, meeting baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool searches campaign contributions by lobbyists and shows who donated to whom, with a specific verb and resource. While it doesn't explicitly differentiate from sibling lobbying tools, the name and context make its purpose distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus other lobbying tools (e.g., lobbying_search, lobbying_lobbyists). Description only states its function without providing selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lobbying_detailA
Read-only

Get full detail on a specific lobbying filing — shows every issue lobbied, specific bills mentioned, and lobbyist names. Use the filing UUID from lobbying_search results.

ParametersJSON Schema
NameRequiredDescriptionDefault
filing_uuidYesFiling UUID from lobbying_search results

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, so the description adds value by detailing the returned content (issues, bills, lobbyists). No contradictions.

Agents need to know what a tool does to the world before 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-loads purpose and usage. Every sentence is necessary and efficient.

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 detail retrieval tool with one parameter, the description covers purpose, output content, and input source. No output schema needed, and annotations confirm read-only behavior.

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 describes the parameter. Description adds context that the UUID comes from lobbying_search, enhancing understanding beyond 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?

Clearly states the action (get full detail), the resource (specific lobbying filing), and what it shows (issues, bills, lobbyists). Distinguishes from sibling tools like lobbying_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?

Explicitly tells the agent to use the filing UUID from lobbying_search results, providing clear context for when to invoke. Could be improved by mentioning when not to use, but still strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lobbying_lobbyistsA
Read-only

Search individual lobbyists by name or firm. Find specific people who lobby Congress and which firms they work for.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoLobbyist name (partial match): 'Smith', 'Johnson'
firmNoLobbying firm name: 'Akin Gump', 'K Street'
page_sizeNoResults per page (default 20)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description's added value is limited to specifying the scope (Congress lobbying and firms). It does not disclose pagination behavior, rate limits, or error handling, but 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 extremely concise with two sentences, no wasted words, and the action verb 'search' is front-loaded. Every sentence serves a clear purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 optional parameters, read-only, no output schema), the description is sufficiently complete. It outlines the search intent and key fields. However, it does not mention return format or result expectations, but this is acceptable for a straightforward 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 three parameters are already documented. The description adds no extra meaning beyond the schema, earning a baseline score of 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 clearly states the verb 'search' and the resource 'individual lobbyists', specifying that it finds people who lobby Congress and their firms. This distinguishes it from sibling tools like lobbying_contributions or lobbying_detail, though no explicit differentiation is provided.

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 for finding lobbyists by name or firm, but does not mention when not to use this tool or provide alternatives among siblings (e.g., lobbying_search might be broader). The guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lobbying_registrantsB
Read-only

Search lobbying firms and organizations registered to lobby Congress.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRegistrant name: 'Amazon', 'Pfizer', 'National Rifle Association'
page_sizeNoResults per page (default 20)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, so the description lacks additional behavioral context such as pagination limits, result format, or any side effects. The description doesn't add value beyond what annotations already indicate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler; every word is necessary and informative. Highly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (2 params, no output schema), the description should provide some hint about output or result format. It lacks completeness; for example, it doesn't mention that results are paginated or what fields 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?

Input schema has 100% coverage with descriptions, so baseline is 3. The description does not add meaning to parameters beyond what the schema already provides (e.g., 'name' examples are 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 clearly states the action ('Search') and the resource ('lobbying firms and organizations registered to lobby Congress'). It distinguishes from sibling tools like 'lobbying_lobbyists' and 'lobbying_search' which target different entities.

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-to-use guidance is provided. The description implies it's for registrants only, but does not mention alternatives or exclusions, leaving the agent to infer from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_achievement_levelsA
Read-only

Get the percentage of students at each NAEP achievement level: Below Basic, Basic, Proficient, Advanced. THIS IS THE KEY LITERACY/NUMERACY METRIC — shows what % of students can read/do math at grade level. Example: '37% of 4th graders scored Below Basic in reading' comes from this data.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', 'writing', 'civics', 'history', 'geography', 'economics', 'tel', 'music'. Aliases accepted.
gradeYesGrade: 4, 8, or 12. Math: 4,8 only. Economics/TEL/Music: 8 or 12 only.
variableNo'TOTAL' (default), 'SDRACE' (race), 'GENDER', 'SLUNCH3' (poverty)
jurisdictionNo'NP' (national, default), or state codes
yearNoYear: '2022', '2019'. Default: most recent

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the safety profile is clear. The description adds context about the metric's significance but does not disclose additional behavioral traits such as data freshness or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: purpose, emphasis on importance, and an illustrative example. No filler, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 full schema coverage and readOnlyHint annotation, the description adequately covers the tool's purpose and importance. A slight gap remains regarding the exact output structure, but the example partly 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%, so parameters are well-documented. The description does not add extra meaning beyond what the schema provides, thus meets 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 clearly states the verb 'Get' and the resource 'percentage of students at each NAEP achievement level', specifying four exact levels. It includes an example and distinguishes from sibling NAEP tools by focusing on achievement levels.

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 highlights this as the key literacy/numeracy metric, implying its primary use case, but does not explicitly state when to use or avoid it versus sibling tools like naep_scores or naep_compare_groups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_available_variablesA
Read-only

List available independent variables for a NAEP subject, cohort, and year. Use this to discover what demographic/survey variables are available before querying scores. Returns variable names (Varname), short labels, and long labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', etc. Aliases accepted.
cohortYesCohort: 1 (grade 4/age 9), 2 (grade 8/age 13), 3 (grade 12/age 17)
yearsYesComma-separated years: '2022' or '2019,2022'

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds minimal behavioral info beyond that, only noting the return includes variable names and labels. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficient sentences with no wasted words. Front-loaded with purpose, then usage guidance, then output summary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description effectively covers the tool's purpose, usage, and output for a list tool. No output schema but enough context is provided. Could mention result format but 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% with rich descriptions for all three parameters. The description does not add additional parameter 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?

The description clearly states it lists available independent variables for NAEP by subject, cohort, and year, and distinguishes itself from siblings by indicating it's a prerequisite for querying scores.

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 this tool to discover variables before querying scores, providing clear context. It doesn't include exclusions but implies when not to use it (after querying).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_compare_groupsA
Read-only

Compare NAEP scores across demographic groups (race, gender, poverty) with significance testing. Shows achievement gaps between groups (e.g., White vs Black, Male vs Female, eligible vs not eligible for free lunch).

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', 'writing', 'civics', 'history', 'geography', 'economics', 'tel', 'music'. Aliases accepted.
gradeYesGrade: 4, 8, or 12. Math: 4,8 only. Economics/TEL/Music: 8 or 12 only.
variableYes'SDRACE' (race gap), 'GENDER' (gender gap), 'SLUNCH3' (poverty gap), 'IEP' (disability gap), 'LEP' (ELL gap)
jurisdictionNo'NP' (default), or state codes
yearNoYear: '2022'. Default: most recent

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the read-only nature is covered. The description adds that the tool performs significance testing and shows achievement gaps, which is useful context beyond annotations. No contradictions present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loading the core purpose and providing concrete examples without any fluff. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should at least hint at the return format (e.g., difference, significance levels). It mentions 'shows achievement gaps' but lacks detail on output structure. Also, it does not reference optional parameters like year and jurisdiction, which are part of the schema. Adequate but leaves 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 baseline is 3. The description adds meaning by listing specific groups (race, gender, poverty) and providing concrete examples of gaps, which helps users understand the 'variable' parameter beyond the schema's enum list. This extra context justifies a higher score.

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 compares NAEP scores across demographic groups with significance testing, using examples like White vs Black, Male vs Female. It distinguishes from sibling tools (e.g., naep_compare_states, naep_compare_years) by focusing on demographic groups, but does not explicitly name 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 description implies when to use (when comparing demographic groups) but does not provide explicit guidance on when not to use or mention alternative tools like naep_compare_states for state-level comparisons. Given the many sibling tools, more direct guidance would improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_compare_statesA
Read-only

Compare NAEP scores across states/jurisdictions with significance testing. Shows which states score significantly higher or lower than others. Example: Compare Massachusetts vs Mississippi reading scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', 'writing', 'civics', 'history', 'geography', 'economics', 'tel', 'music'. Aliases accepted.
gradeYesGrade: 4, 8, or 12. Math: 4,8 only. Economics/TEL/Music: 8 or 12 only.
jurisdictionsYesComma-separated jurisdiction codes: 'NP,CA,TX,MS,MA' or 'NP,NY'
variableNo'TOTAL' (default), 'SDRACE', 'GENDER'
yearNoYear: '2022'. Default: most recent

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description doesn't need to restate that. It adds that the tool performs significance testing and highlights which states are higher/lower. However, it does not disclose other behavioral traits such as data freshness, rate limits, or the exact output format (e.g., whether it returns tables or numeric scores).

Agents need to know what a tool does to the world before 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 extremely concise: two sentences plus an example. Every sentence adds value, and the most important action is front-loaded. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 5 parameters and no output schema, the description provides an adequate high-level understanding. It states that the output shows which states are significantly higher/lower, but omits details like significance levels, confidence intervals, or whether it returns numeric values or rankings. This could leave an agent uncertain about the exact 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 coverage is 100%, so baseline 3. The description does not add extra meaning beyond the schema for parameters like variable or year. The example implies subject and state codes, but that doesn't exceed the schema's own 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 it compares NAEP scores across states/jurisdictions with significance testing. The example 'Compare Massachusetts vs Mississippi reading scores' makes the function concrete. It distinguishes itself from sibling tools like naep_compare_groups or naep_scores by focusing on state-to-state comparisons.

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 to use the tool: comparing states with significance testing. However, it does not explicitly exclude cases where other naep tools might be more appropriate, nor does it mention alternatives. The example helps but lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_compare_yearsA
Read-only

Compare NAEP scores across assessment years with significance testing. Shows whether score changes between years are statistically significant. Great for tracking the COVID learning loss and recovery.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', 'writing', 'civics', 'history', 'geography', 'economics', 'tel', 'music'. Aliases accepted.
gradeYesGrade: 4, 8, or 12. Math: 4,8 only. Economics/TEL/Music: 8 or 12 only.
yearsYesComma-separated years to compare: '2022,2019' or '2022,2019,2017'
variableNo'TOTAL' (default), 'SDRACE', 'GENDER', 'SLUNCH3'
jurisdictionNo'NP' (default), or state codes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'readOnlyHint' annotation already declares it as read-only; the description adds 'with significance testing', which is behavioral. However, it does not disclose limits on number of years, error handling, or other behavioral traits.

Agents need to know what a tool does to the world before 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 concise sentences front-loaded with the key action ('Compare NAEP scores across assessment years with significance testing'). No wasted words.

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 is provided, and the description does not explain return format or structure. Given the tool's complexity (5 parameters, comparison logic), more detail would be helpful, but the description is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 baseline is 3. The description does not add parameter-specific details beyond purpose; the schema already describes parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 comparing NAEP scores across assessment years with significance testing, distinguishing it from sibling tools like naep_compare_groups and naep_compare_states. The specific mention of tracking COVID learning loss provides concrete context.

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 a concrete use case ('tracking the COVID learning loss and recovery'), implying when to use, but lacks explicit guidance on when not to use or alternatives. No exclusions or comparisons to other NAEP tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_gap_variable_jurisdictionA
Read-only

Compare how achievement gaps between demographic groups differ across states. Example: Is the poverty gap in math bigger in Mississippi than Massachusetts? Returns innerdiff1 (group gap for focal jurisdiction), innerdiff2 (group gap for target), and the gap between them.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', etc. Aliases accepted.
gradeYesGrade: 4, 8, or 12.
variableYesNon-TOTAL variable with 2+ categories: 'SDRACE', 'GENDER', 'SLUNCH3'
jurisdictionsYes2+ jurisdiction codes comma-separated: 'MA,MS' or 'NP,CA,TX'
yearNoYear: '2022'. Default: most recent.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already denote readOnlyHint=true, so the read-only behavior is clear. The description adds the specific return fields but does not disclose other traits like required permissions, error behavior for invalid inputs, 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?

Two sentences plus an example convey the purpose and output without wasted words. The structure is front-loaded with the main action and includes a helpful illustrative question.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 has 5 parameters and no output schema, the description adequately covers return fields and usage context. However, it omits details on how the order of jurisdictions determines focal vs target, which might be ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with parameter descriptions. The description adds meaning by explaining the concept of focal versus target jurisdiction implicitly and naming the output fields, which aids understanding beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 compares achievement gaps across states with a concrete example. It specifies the return values (innerdiff1, innerdiff2, gap between them), distinguishing it from siblings like naep_compare_states.

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 example ('Is the poverty gap in math bigger in Mississippi than Massachusetts?') implies usage, but there is no explicit guidance on when to use this tool versus alternatives like naep_compare_states or naep_scores, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_gap_variable_yearsA
Read-only

Compare how achievement gaps between demographic groups change over time. Example: Is the racial achievement gap in reading getting bigger or smaller since 2017? Returns innerdiff1 (group gap for focal year), innerdiff2 (group gap for target year), and the gap between them.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', etc. Aliases accepted.
gradeYesGrade: 4, 8, or 12.
variableYesNon-TOTAL variable with 2+ categories: 'SDRACE', 'GENDER', 'SLUNCH3'
yearsYes2+ years comma-separated: '2022,2019' or '2022,2017'
jurisdictionNo'NP' (default), or state/district code

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, indicating a safe read operation. The description adds that the tool returns specific metrics (innerdiff1, innerdiff2, gap between), which is useful but limited. No mention of rate limits, permissions, or edge cases; however, the annotations reduce the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences plus a line about returns. It front-loads the main purpose and includes a helpful example. Every sentence adds value 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?

Given no output schema, the description explains the returned fields (innerdiff1, innerdiff2, gap between). It lacks full interpretation of the 'gap between gaps' metric but provides an example that aids understanding. Overall, it is fairly complete for a straightforward 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 coverage is 100% with detailed descriptions for each parameter (e.g., subject, grade, variable, years, jurisdiction). The description does not add new meaning beyond the schema; the example illustrates usage but does not clarify any parameter semantics 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?

The description clearly states the tool compares achievement gaps across years, provides a concrete example, and explains the returned metrics (innerdiff1, innerdiff2, gap between them). This differentiates it from sibling tools like naep_compare_years (compares overall scores) and naep_gap_variable_jurisdiction (compares gaps across jurisdictions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when comparing gaps over time) through the example, but does not explicitly state when not to use it or suggest alternatives such as naep_compare_years for overall trends or naep_gap_variable_jurisdiction for cross-jurisdiction gap comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_gap_year_jurisdictionA
Read-only

Compare how score changes between years differ across jurisdictions. Example: Did the COVID learning loss hit California harder than Massachusetts? Returns innerdiff1 (year gap for focal jurisdiction), innerdiff2 (year gap for target), and the gap between them.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', etc. Aliases accepted.
gradeYesGrade: 4, 8, or 12.
yearsYesExactly 2 years comma-separated: '2022,2019'
jurisdictionsYes2+ jurisdiction codes comma-separated: 'CA,MA' or 'NP,TX'
variableNo'TOTAL' (default), 'SDRACE', 'GENDER', 'SLUNCH3'

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, so the read-only nature is covered. Description adds output field names but doesn't describe other behavioral aspects like data freshness or limitations. 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?

Two sentences plus an example: highly concise and front-loaded with the core purpose. 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?

Although there is no output schema, the description explains the return fields (innerdiff1, innerdiff2, gap). It covers the main purpose and key parameters. Could add more detail on the gap calculation, but adequate for most agents.

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% with descriptions for all parameters. The description adds value by providing example values (CA, MA for jurisdictions; 2022,2019 for years) and explaining output fields, which helps agents understand the return format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 compares how score changes between years differ across jurisdictions, with a concrete example (COVID learning loss) and specifies the output fields (innerdiff1, innerdiff2, gap). This differentiates it from sibling tools like naep_compare_states or naep_compare_years.

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 with an example. It explains when to use the tool (comparing year gaps across jurisdictions) but does not explicitly state when not to use it or mention alternatives. The example suffices for most agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

naep_scoresA
Read-only

Get NAEP test scores (Nation's Report Card) — the gold standard for measuring U.S. student achievement. Returns average scale scores by subject, grade, state, and demographic group.

Subjects: 'reading', 'math', 'science', 'writing', 'civics', 'history', 'geography', 'economics', 'tel', 'music' Grades: 4, 8, 12 (math: 4,8 only; economics/tel/music: 8 or 12 only) Variables: 'TOTAL' (all students), 'SDRACE' (race), 'GENDER', 'SLUNCH3' (school lunch/poverty), 'PARED' (parent education) Jurisdiction: 'NP' (national public), or state codes ('CA', 'TX', 'NY', 'MS')

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesSubject: 'reading', 'math', 'science', 'writing', 'civics', 'history', 'geography', 'economics', 'tel', 'music'. Aliases: 'mathematics', 'ela', 'us history', 'social studies', 'econ', 'technology'
gradeYesGrade: 4, 8, or 12. Math: 4,8 only. Economics/TEL/Music: grade 8 or 12 only.
variableNo'TOTAL' (default), 'SDRACE' (race), 'GENDER', 'SLUNCH3' (poverty), 'PARED' (parent ed), 'IEP' (disability), 'LEP' (English learners). Crosstab: 'SDRACE+GENDER'
jurisdictionNo'NP' (national public, default), or state/district codes: 'CA', 'TX', 'XN' (NYC), 'XC' (Chicago). Comma-separate for multiple.
yearNoAssessment year: '2022', '2019', '2017'. Default: most recent. Use 'Current' for latest. Append R2 for non-accommodated: '2019R2'.
stat_typeNoStatistic type: 'MN:MN' (Average scale score (mean)), 'RP:RP' (Row percent), 'ALC:BB' (% Below Basic (cumulative)), 'ALC:AB' (% At or Above Basic (cumulative)), 'ALC:AP' (% At or Above Proficient (cumulative)), 'ALC:AD' (% At Advanced (cumulative)), 'ALD:BA' (% At Basic (discrete)), 'ALD:PR' (% At Proficient (discrete)), ... (15 total)
subscaleNoOverride the default composite subscale. E.g. math: 'MRPS1' (numbers), 'MRPS3' (geometry). See reference for all codes.
categoryindexNoFilter specific categories. E.g. for SDRACE: '1' (White), '2' (Black), '3' (Hispanic). For crosstab: '1+1,1+2' (White/Male, White/Female)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, and the description adds behavioral details like grade-subject restrictions (e.g., math only grades 4 and 8) and default values. It clearly states it returns average scale scores, providing transparency beyond the read-only 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 concise and well-structured, starting with a clear purpose and then listing valid values in an easily scannable format. Every sentence adds value 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?

Given the tool's complexity (8 parameters, no output schema), the description covers valid values, constraints, and default behaviors. It lacks details on the response format but suffices for a basic understanding. Sibling tools cover specialized comparisons, so this description is sufficient for its role.

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, the baseline is 3. The description adds value by compiling and organizing valid values for subject, grade, variable, and jurisdiction, plus highlighting constraints (e.g., 'math: 4,8 only'). This enhances parameter understanding beyond the 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 'Get NAEP test scores' and specifies it returns average scale scores by subject, grade, state, and demographic group. It lists valid values for subjects, grades, variables, and jurisdictions, distinguishing itself from sibling tools like naep_compare_states which focus on comparisons.

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 implicitly conveys its primary use (fetching scores) but does not explicitly guide when to use this tool versus sibling tools like naep_compare_groups or naep_compare_states. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_car_seat_stationsA
Read-only

Find car seat inspection stations near a location. Search by ZIP code, state, or geographic coordinates. Car seat inspection stations help parents verify proper installation.

Example: state='CA', or zip='90210', or lat=30.18 + long=-96.39 + miles=50

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNoZIP code (e.g. '90210')
stateNoTwo-letter state code (e.g. 'CA', 'TX')
latNoLatitude for geo search
longNoLongitude for geo search
milesNoSearch radius in miles (default 25, used with lat/long)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, consistent with a search tool. The description adds that it helps parents verify installation, but no details on result limits or data freshness. 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?

Three sentences with clear front-loading of purpose. The example is efficient. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search tool with 5 optional parameters and no output schema, the description covers purpose, parameters, and usage example. Minor gap: not stating return fields, 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 coverage is 100% with descriptions for each parameter. The description adds grouping (by ZIP, state, or coordinates) and an example, but doesn't provide new meaning beyond the schema. Baseline score of 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 clearly states 'Find car seat inspection stations near a location', specifying the verb and resource. It distinguishes from sibling tools like nhtsa_complaints and nhtsa_decode_vin by focusing on inspection stations.

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 tells when to use (find stations by location) and provides examples (state, zip, coordinates). It does not explicitly mention when not to use or alternatives, but the siblings are all different tools, so no confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_complaint_detailA
Read-only

Get a specific complaint by its ODI number. ODI numbers are in complaint search results (e.g. 11184030).

ParametersJSON Schema
NameRequiredDescriptionDefault
odi_numberYesODI complaint number (e.g. 11184030)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds that it retrieves a specific complaint, consistent with read-only behavior. No additional behavioral details (e.g., permissions, rate limits) are provided, but the annotation covers the essential safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences with no redundant information. Every sentence adds value, making it efficient for an AI agent 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 tool with one parameter, annotations, and no output schema, the description is adequate. It explains what the tool does and how to obtain the required parameter. It could be improved by briefly describing the expected output, but this is not essential given the tool's straightforward nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 with a description for 'odi_number'. The description adds context that ODI numbers come from search results, which is helpful but not critical beyond the schema. With full schema coverage, the description provides marginal added 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 states the purpose: 'Get a specific complaint by its ODI number.' The verb 'Get' and resource 'specific complaint' are explicit. It distinguishes itself from sibling 'nhtsa_complaints' by focusing on a single complaint via ODI number, and includes an example for clarity.

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 mentions that 'ODI numbers are in complaint search results,' which implies the tool is used after finding an ODI number via search. It provides clear context for when to use it but does not explicitly state when not to use it or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_complaintsA
Read-only

Search NHTSA vehicle complaints by make, model, and model year. All three parameters are required by the NHTSA API. Use nhtsa_models to find valid models for a make.

Example: make='tesla', model='model 3', model_year=2023

ParametersJSON Schema
NameRequiredDescriptionDefault
makeYesVehicle make: 'toyota', 'ford', 'tesla'
modelYesVehicle model: 'camry', 'f-150', 'model 3'
model_yearYesModel year

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds context that the NHTSA API requires all three parameters and provides an example. No additional behavioral details like pagination or rate limits are given, but the bar is lowered due to 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 extremely concise, uses a single paragraph with front-loaded purpose, and includes an example without any fluff. Every sentence is essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 search tool with no output schema, the description covers the search purpose, required parameters, and even links to a sibling for model lookup. It is fairly complete but could mention response type or limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 100% parameter description coverage, so the description adds only the required nature and the NHTSA API requirement, plus an example. This adds marginal value beyond the 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 it searches NHTSA vehicle complaints using make, model, and year. Among siblings, nhtsa_models is differentiated as a helper, and nhtsa_complaint_detail provides details, so the tool's specific role is well-defined.

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 that all three parameters are required and recommends using nhtsa_models to find valid models, which provides clear usage guidance. While it doesn't explicitly mention when not to use this tool, the sibling reference covers alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_decode_vinA
Read-only

Decode a Vehicle Identification Number (VIN) to get specifications. Returns make, model, year, engine, body class, drive type, plant info. VINs are 17 characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
vinYesVehicle Identification Number (17 characters)

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, and the description adds specific output fields. No contradictions; describes intended behavior beyond the 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?

Extremely concise: three sentences, front-loaded with the primary action and return values. 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?

Adequately describes input and output for a simple decode tool. Lacks details on error handling or VIN validation beyond length, but still complete given the tool's straightforward nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 the single parameter with description; the tool description restates it. No new parameter semantics added beyond 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?

Clearly states the action (decode a VIN), the resource (VIN), and the return values (make, model, year, etc.). Easily distinguished from sibling tools like complaints or recalls.

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?

Provides the context that VINs are 17 characters but does not give explicit guidance on when to use this tool versus alternatives (e.g., other NHTSA tools) 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.

nhtsa_makesA
Read-only

List vehicle makes for a model year that have recalls or complaints. Use issue_type='r' for recalls, 'c' for complaints.

Example: model_year=2024, issue_type='r'

ParametersJSON Schema
NameRequiredDescriptionDefault
model_yearYesModel year
issue_typeYes'r' for recalls, 'c' for complaints

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already signals a safe read operation. The description adds no behavioral traits beyond that, but it doesn't contradict annotations. For a simple list, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences and an example. Every sentence adds value, and it is front-loaded with the purpose.

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 simplicity (2 parameters, read-only, no output schema), the description is complete. It explains what the tool does, how to use it, and provides an example. No 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%, and the schema already describes both parameters. The description adds context (e.g., example usage) but does not provide meaning beyond what the schema offers, 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?

The description clearly states that the tool lists vehicle makes for a model year that have recalls or complaints. It uses a specific verb ('List') and resource ('vehicle makes'), and the context of sibling tools (e.g., nhtsa_recalls, nhtsa_complaints) helps distinguish it.

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 guidance on use with the example 'model_year=2024, issue_type='r'' and clarifies the meaning of issue_type values. It doesn't explicitly mention when not to use, but the intent is clear for a simple list tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_modelsA
Read-only

List vehicle models for a make and year that have recalls or complaints. Or list all models for a make from the vPIC database (omit issue_type).

Example: make='tesla', model_year=2024, issue_type='r'

ParametersJSON Schema
NameRequiredDescriptionDefault
makeYesVehicle make: 'toyota', 'ford', 'tesla'
model_yearNoModel year (optional for vPIC lookup)
issue_typeNo'r' for recalls, 'c' for complaints. Omit for general model list.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description does not need to restate that. It adds value by describing the two query modes (with/without issue_type), which is 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 plus an example, very concise and front-loaded. 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?

Given no output schema, the description covers the key behaviors and parameters. It could mention return format but is sufficient for selection.

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 parameters are already documented. The description adds an example ('make='tesla', model_year=2024, issue_type='r'') and clarifies optionality, providing extra context 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 the tool lists vehicle models for a make and year, with optional filtering by issue_type (recalls/complaints), or lists all models without issue_type. This distinguishes it from siblings like nhtsa_makes and nhtsa_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 explains when to use issue_type vs omit it, but does not explicitly compare to other tools. However, the purpose is clear enough for the agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_model_yearsA
Read-only

List model years that have recalls or complaints in the NHTSA database. Use issue_type='r' for recalls (1949–present), 'c' for complaints. Useful for discovering available data before querying.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_typeYes'r' for recalls, 'c' for complaints

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, so no mutation. Description adds value by specifying the year range for recalls (1949–present) and the general purpose of discovering data before querying, which goes beyond the 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?

Two concise sentences that front-load the action and provide necessary details without extraneous information. 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?

The description is complete for a discovery tool: it explains what it lists, how to use the parameter, and the use case. Despite no output schema, the simplicity of the tool means the description covers all needed context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enum descriptions, but the description adds context by explaining the meaning of 'r' vs 'c' and the associated year ranges, enhancing understanding beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists model years with recalls or complaints, specifying the resource and differentiating between the two issue types. Distinguishes itself from sibling NHTSA tools like nhtsa_makes or nhtsa_models by focusing on model years as a discovery step.

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 when to use each issue_type value with year ranges, and notes the tool is useful for discovering available data before querying. Lacks explicit when-not-to-use or alternative tool names, 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.

nhtsa_recall_detailA
Read-only

Get recall details by NHTSA campaign number. Campaign numbers look like '23V838000' or '12V176000'. Returns full recall information including affected vehicles, summary, consequence, and remedy.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_numberYesNHTSA campaign number (e.g. '23V838000', '12V176000')

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds context beyond annotations: returns full recall info including affected vehicles, summary, consequence, and remedy. Annotations already mark readOnlyHint=true, so no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, efficient. 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 single-parameter lookup tool with full schema coverage and no output schema, the description is nearly complete. Minor improvements possible: explicitly stating the parameter is required and must match format exactly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter description. The tool description repeats the campaign number format and adds output info, but adds no additional semantic value to the parameter.

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 recall details by campaign number, with examples of the identifier format. It distinguishes from sibling tools that list recalls (nhtsa_recalls) or decode VIN, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage: use when you have a campaign number. No guidance on when not to use or alternatives like nhtsa_recalls or nhtsa_decode_vin are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_recallsA
Read-only

Search NHTSA vehicle recalls by make, model, and model year. All three parameters are required by the NHTSA API. Use nhtsa_models to find valid models for a make, or nhtsa_recall_detail for a specific campaign.

Example: make='tesla', model='model 3', model_year=2024

ParametersJSON Schema
NameRequiredDescriptionDefault
makeYesVehicle make: 'toyota', 'ford', 'tesla', 'honda'
modelYesVehicle model: 'camry', 'f-150', 'model 3', 'civic'
model_yearYesModel year: 2020, 2023, 2024

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the description's 'Search' aligns with that. The description adds the constraint that the NHTSA API requires all parameters, which provides some behavioral context beyond annotations, but not extensive traits like rate limits or error 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?

The description is concise, consisting of three short sentences and an example. It front-loads the main purpose, then adds requirement and alternative tool guidance, and a concrete example. Every sentence is purposeful and no 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?

Given the tool's simplicity (3 required parameters, no output schema), the description covers the key aspects: purpose, required parameters, usage example, and alternatives. It is complete for an agent to understand how and when to 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 has 100% coverage with descriptions for all three parameters. The description adds an example with specific values (make='tesla', model='model 3', model_year=2024), which offers formatting guidance but does not significantly extend beyond the schema's existing 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 the action ('Search'), resource ('NHTSA vehicle recalls'), and required parameters (make, model, model year). It also mentions sibling tools nhtsa_models and nhtsa_recall_detail for alternative use, distinguishing this tool's purpose.

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 that all three parameters are required by the NHTSA API, provides an example usage, and directs users to nhtsa_models for valid models or nhtsa_recall_detail for specific campaigns, offering clear when-to-use and alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_safety_rating_detailA
Read-only

Get detailed NHTSA 5-star safety ratings for a specific vehicle variant. Requires a VehicleId from nhtsa_safety_ratings search results. Returns crash test ratings, rollover risk, and safety technology assessments.

ParametersJSON Schema
NameRequiredDescriptionDefault
vehicle_idYesVehicleId from safety ratings search (e.g. 19950)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds some value beyond annotations by listing returned content (crash test ratings, rollover risk, safety technology assessments). Annotations already declare readOnlyHint=true, so no contradiction. Does not disclose potential limits or costs.

Agents need to know what a tool does to the world before 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 fluff. Front-loaded purpose, followed by prerequisite and return overview. Every sentence is 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?

Given no output schema, description adequately covers return content. Single parameter is well-contextualized. Could mention read-only nature but annotation covers it. Complete for a detail tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, but description adds meaning: specifies VehicleId comes from nhtsa_safety_ratings and provides example (19950). This enhances parameter understanding beyond 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 clearly states verb 'Get detailed NHTSA 5-star safety ratings' for a specific vehicle variant, differentiates from sibling nhtsa_safety_ratings by requiring a VehicleId from that 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?

Explicitly mentions prerequisite: 'Requires a VehicleId from nhtsa_safety_ratings search results'. Implicitly guides usage after sibling search tool, but lacks explicit when-not or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhtsa_safety_ratingsA
Read-only

Search NHTSA 5-star safety ratings (NCAP) by make, model, and year. Returns vehicle variants with VehicleId. Use the VehicleId with nhtsa_safety_rating_detail.

Ratings: 5 stars = highest, 1 star = lowest. Data from 1990 to present.

ParametersJSON Schema
NameRequiredDescriptionDefault
makeYesVehicle make: 'honda', 'toyota', 'ford'
modelYesVehicle model: 'civic', 'camry', 'f-150'
model_yearYesModel year

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, indicating a read-only operation. The description adds useful behavioral context such as the return of vehicle variants with VehicleId, the star rating scale, and the data timeframe (1990–present). 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 concise, with three focused sentences. The first sentence states the purpose, the second explains the output and linking to a sibling tool, and the third provides context on rating scale and data range. No extraneous 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?

Given the absence of an output schema, the description adequately explains what is returned (vehicle variants with VehicleId), how to proceed for more detail (use nhtsa_safety_rating_detail), and the meaning of ratings and data range. This is sufficient for an AI agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions, so the baseline is 3. The description provides examples (e.g., 'honda', 'civic', '2008') that reinforce the schema but do not add significant new meaning 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 states the tool searches NHTSA 5-star safety ratings by make, model, and year. It distinguishes itself from the sibling tool nhtsa_safety_rating_detail by mentioning that the VehicleId returned should be used with that detail 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 clear context on when to use this tool (search by make/model/year) and directs the user to nhtsa_safety_rating_detail for details. It also explains the rating scale and date range. However, it does not explicitly state when not to use this tool or mention alternative tools for different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nih_projects_by_agencyA
Read-only

Get project counts by NIH institute/center for a fiscal year. Shows which institutes fund the most research: NCI (cancer), NIAID (infectious diseases), etc. Useful for understanding NIH budget allocation across disease areas.

ParametersJSON Schema
NameRequiredDescriptionDefault
fiscal_yearYesFiscal year: 2024
agenciesNoSpecific agency codes to check (default: top 25)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint, and the description adds context that this is a read operation showing counts, but does not disclose additional behavioral traits like 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the core purpose and provide an example, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no output schema, the description adequately explains the output (project counts by institute) and use case, though it could explicitly describe the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions and enums for agencies; the description adds minimal extra context (e.g., example agencies) but does not explain formatting or interpretation 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 the tool gets project counts by NIH institute/center for a fiscal year, and distinguishes from siblings like nih_search_projects by focusing on aggregated counts rather than individual project details.

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 high-level budget allocation analysis, but does not explicitly state when to use it vs alternatives like nih_spending_by_category or nih_search_projects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nih_search_projectsA
Read-only

Search NIH-funded research projects by text, disease area, investigator, institution, state, agency, spending category, grant type, and funding amount. Returns project number, title, PI, organization, award amount, agency, activity code, and dates. Use to find research grants for any disease, track institutional funding, or identify PIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoFree-text search in titles, abstracts, and terms: 'breast cancer', 'CRISPR', 'opioid'
fiscal_yearsNoFiscal years: [2024] or [2020,2021,2022,2023,2024]
agenciesNoNIH institute codes: 'NCI' (National Cancer Institute), 'NHLBI' (National Heart, Lung, and Blood Institute), 'NIDDK' (National Institute of Diabetes and Digestive and Kidney Diseases), 'NINDS' (National Institute of Neurological Disorders and Stroke), 'NIA' (National Institute on Aging), 'NIAID' (National Institute of Allergy and Infectious Diseases), 'NIGMS' (National Institute of General Medical Sciences), 'NIMH' (National Institute of Mental Health), ... (32 total)
pi_nameNoPrincipal investigator name (partial match): 'Fauci', 'Collins'
org_namesNoOrganization names (wildcard): ['JOHNS HOPKINS'], ['STANFORD']
org_statesNoState abbreviations: ['CA','NY'], ['TX']
spending_categoriesNoRCDC category IDs: [27]=Cancer, [7]=Alzheimer's, [41]=Diabetes, [93]=Opioids, [60]=HIV/AIDS
activity_codesNoGrant types: 'R01' (Research Project Grant (most common independent investigator grant)), 'R21' (Exploratory/Developmental Research Grant (smaller, high-risk)), 'R43' (SBIR Phase I (Small Business Innovation Research)), 'R44' (SBIR Phase II), 'P01' (Research Program Project Grant (multi-investigator)), 'P30' (Center Core Grant), 'P50' (Specialized Center), 'U01' (Research Project Cooperative Agreement), ... (20 total)
funding_mechanismNoMechanism codes: 'RG' (Research Grants), 'PC' (Research Centers), 'CT' (Clinical Trial or Study Cooperative Agreement), 'TN' (Research Training (Individual and Institutional)), 'CR' (Research Career Programs), 'SB' (Small Business Awards (SBIR/STTR)), 'OT' (Other Transactions)
award_amount_minNoMinimum award amount in dollars
award_amount_maxNoMaximum award amount in dollars
covid_responseNoCOVID funding: ['All'], ['C3'] (CARES Act), ['C6'] (American Rescue Plan)
exclude_subprojectsNoExclude subprojects for cleaner counts (default: true)
limitNoResults per page (default 10, max 50)
offsetNoStarting offset for pagination
sort_fieldNoSort by: 'award_amount', 'project_start_date', 'fiscal_year'
sort_orderNoSort order

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds context about returned fields (project number, title, PI, etc.) and typical uses, which is valuable beyond annotations. No contradictions.

Agents need to know what a tool does to the world before 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 (three sentences), front-loaded with the core action and filters, and every sentence adds value. 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?

Given the tool's complexity (17 parameters, no required), the description covers main filter types, return fields, and use cases. It omits pagination details but those are in the schema. Largely 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% with detailed descriptions for all 17 parameters. The tool description only summarizes filter types without adding significant new meaning 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches NIH-funded research projects with multiple filter criteria and specifies return fields. It is a specific verb+resource but does not explicitly distinguish from sibling tools like nih_projects_by_agency or nih_search_publications.

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 ('find research grants for any disease, track institutional funding, or identify PIs') but does not mention when to avoid this tool or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nih_search_publicationsA
Read-only

Search for publications linked to NIH-funded projects. Search by PubMed IDs (PMIDs), application IDs, or core project numbers. Returns PMID and linked project number.

ParametersJSON Schema
NameRequiredDescriptionDefault
pmidsNoPubMed IDs: [33298401, 33105091]
core_project_numsNoCore project numbers: ['R01AG060942']
appl_idsNoApplication IDs
limitNoResults per page (default 10)
offsetNoStarting offset for pagination

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, so the description does not need to reinforce that. It adds that the tool returns PMID and linked project number, which is useful but does not cover pagination or other behaviors. With annotations bearing the safety burden, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two sentences, front-loading the purpose and then listing the search methods and return fields. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with no output schema, the description covers the core functionality and return fields. It could mention pagination behavior (e.g., limit and offset), but the complexity is low, and the description is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 with descriptions for each parameter. The description repeats that searches are by PMIDs, application IDs, or core project numbers, but does not provide additional context beyond the schema. Baseline is 3 due to high 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 it searches for publications linked to NIH-funded projects and specifies three search methods (PMIDs, application IDs, core project numbers). However, it does not differentiate from the sibling tool nih_search_projects, which could cause confusion for an AI agent deciding which tool to use.

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 listing acceptable inputs, but it does not provide explicit guidance on when to use this tool vs alternatives, such as when a broader project search would be more appropriate. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nih_spending_by_categoryA
Read-only

Get NIH project counts and estimated funding for a disease/research area across fiscal years. Uses RCDC spending categories with an agency-based fallback for more accurate counts. Common category IDs: 27=Cancer, 7=Alzheimer's, 41=Diabetes, 60=HIV/AIDS, 93=Opioids, 30=Cardiovascular, 85=Mental Health, 38=COVID-19, 118=Stroke, 92=Obesity. Note: For the most reliable counts by disease area, also try nih_projects_by_agency with the relevant institute.

ParametersJSON Schema
NameRequiredDescriptionDefault
category_idYesRCDC spending category ID: 27=Cancer, 7=Alzheimer's, 41=Diabetes, 60=HIV/AIDS, 93=Opioids
fiscal_yearsYesFiscal years to compare: [2020,2021,2022,2023,2024]

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds transparency about the data source (RCDC spending categories and agency-based fallback), which enhances understanding 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?

Three sentences, each contributing essential information: what the tool does, how it works, and practical examples with alternatives. 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?

The description covers purpose, parameters, and alternatives. It lacks explicit output format details, but the tool is simple and the purpose implies the return type. A brief note on output structure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds value by listing common category IDs (e.g., 27=Cancer) and providing usage context, which aids parameter selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it retrieves NIH project counts and estimated funding for a disease/research area across fiscal years. It also distinguishes itself from sibling tools by name and by suggesting an alternative for more reliable counts.

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 the methodology (RCDC categories with fallback) and provides common category IDs. It suggests an alternative tool for reliable counts, offering guidance on when to use this tool versus others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

noaa_climate_dataA
Read-only

Get climate observations (temperature, precipitation, snow, wind) from NOAA. Requires dataset ID + date range. Optionally filter by station or location.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesDataset: GHCND=daily, GSOM=monthly, GSOY=annual
start_dateYesStart date YYYY-MM-DD
end_dateYesEnd date YYYY-MM-DD
station_idNoStation ID, e.g. 'GHCND:USW00094728' (Central Park, NYC)
location_idNoLocation ID, e.g. 'FIPS:36' (NY state)
datatype_idNoData type: TMAX, TMIN, TAVG, PRCP, SNOW, SNWD, AWND
limitNoMax observations (default 1000)

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, indicating a safe read operation. The description adds valuable context about the types of data returned and filtering options, going beyond 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?

The description is two concise sentences, front-loaded with key information (what, from where, requirements, options), with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose and key parameters, but does not describe the return format or output structure, which is not covered by an output schema. This is a minor gap for 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?

Input schema has 100% coverage with descriptions for all parameters. The description does not add additional meaning beyond what the schema provides, so 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 states the tool retrieves climate observations (temperature, precipitation, snow, wind) from NOAA, specifying required parameters (dataset ID + date range) and optional filters. It distinguishes itself from sibling tools like noaa_datasets and noaa_stations.

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 to use the tool (need climate observations with required dataset ID and date range) and optional filters, but does not explicitly state when not to use it or mention alternatives among the many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

noaa_datasetsA
Read-only

List available NOAA climate datasets (GHCND daily, GSOM monthly, GSOY annual, normals, etc.)

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 declare readOnlyHint=true, so the description's 'List' is consistent. However, no additional behavioral details are provided beyond what annotations offer.

Agents need to know what a tool does to the world before 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 of 15 words, front-loaded with the verb 'List', maximally concise with zero 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 simple read-only list tool with no parameters and no output schema, the description fully covers its purpose with examples, making it complete.

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 no parameters (0 params), so the description adds value by listing example datasets, compensating for the lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'NOAA climate datasets' with examples, distinguishing it from siblings like noaa_climate_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?

The description implies usage through the action 'List', but does not explicitly state when to use this tool versus alternatives like noaa_climate_data or noaa_stations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

noaa_locationsA
Read-only

Search NOAA location IDs (states, cities, countries) for use with other NOAA tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoLocation category: ST=states, CITY, CNTRY=countries, CLIM_REG=climate regions
dataset_idNoFilter by dataset, e.g. 'GHCND'
limitNoMax results (default 50)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description uses 'Search', consistent with a read operation. No contradictions, but description adds minimal extra behavioral context beyond the 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?

Single sentence that is concise, front-loaded, and contains no unnecessary words 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?

Given the low complexity (no output schema, 3 params with full schema coverage), the description is fairly complete. It could mention return format but is adequate for its purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for all 3 parameters. The tool description does not add parameter-specific details, so 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?

Description clearly states the verb 'Search', the resource 'NOAA location IDs', and the purpose 'for use with other NOAA tools', distinguishing it from sibling NOAA tools like noaa_stations or noaa_datasets.

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 it is a supporting lookup tool for other NOAA tools, providing clear context. However, it lacks explicit when-not-to-use guidance or alternative tool mentions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

noaa_stationsB
Read-only

Search for NOAA weather stations by location or dataset. Use location IDs like FIPS:36 (New York), FIPS:06 (California), CITY:US360019 (NYC).

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idNoe.g. 'GHCND', 'GSOM'
location_idNoe.g. 'FIPS:36' (NY), 'FIPS:06' (CA)
limitNoMax results (default 25)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description is consistent. However, beyond that, the description adds no behavioral details such as pagination, rate limits, or output format. The description only says 'Search' which is already implied by the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences, front-loaded with the main purpose, and provides examples without unnecessary detail. Every sentence adds value.

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 3 parameters, no output schema, and annotations, the description covers the main search functionality and gives example IDs. However, it does not mention the limit parameter or describe the output structure, which would be helpful for an API 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%, so parameters are well-documented in the schema. The description adds example values for location_id and dataset_id, which provides helpful context, but does not significantly enhance understanding 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 it searches for NOAA weather stations by location or dataset. It provides specific examples of location IDs (FIPS:36, FIPS:06, CITY:US360019), which gives a clear purpose. However, it does not fully distinguish from sibling NOAA tools like noaa_climate_data or noaa_datasets, but it's still clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (search stations by location or dataset) and provides example location IDs, but it does not explicitly state when not to use it or suggest alternatives. Given the long sibling list, explicit guidance would help, but the examples provide some context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nrel_fuel_stationsA
Read-only

Search for EV charging stations, hydrogen stations, biodiesel, CNG, and other alternative fuel stations. Covers all U.S. alt fuel infrastructure. Filter by state, zip, fuel type, radius.

Fuel types: 'ELEC' (EV), 'HY' (hydrogen), 'CNG' (natural gas), 'LPG' (propane), 'BD' (biodiesel), 'E85' (ethanol)

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code: 'CA', 'TX', 'NY'
zipNoZIP code to search near
fuel_typeNoFuel type: 'ELEC' (Electric), 'E85' (Ethanol (E85)), 'CNG' (Compressed Natural Gas), 'LPG' (Propane (LPG)), 'BD' (Biodiesel (B20 and above)), 'HY' (Hydrogen), 'LNG' (Liquefied Natural Gas), 'RD' (Renewable Diesel)
radiusNoSearch radius in miles from zip (default 25)
limitNoMax results (default 20)
statusNoStation status: 'E' (Open (available)), 'P' (Planned (not yet open)), 'T' (Temporarily unavailable)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's additional context (covering all U.S. alt fuel infrastructure) adds some value but does not disclose behavioral traits like data freshness, pagination, or response shape. Given annotations cover the safety profile, the description is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence front-loads the main purpose and coverage, and the second enumerates filters and fuel types 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?

The description adequately defines the tool's scope and parameters, but it does not describe the output format or fields returned. Since no output schema is provided, this omission leaves some ambiguity for the agent about what data to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all parameters. The description lists fuel types and mentions radius filtering, adding marginal 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 clearly states the tool searches for EV charging stations and other alternative fuel stations across the U.S. It uses specific verbs like 'Search' and identifies the resource as alternative fuel stations, distinguishing it from sibling tools like nrel_solar and nrel_utility_rates which handle different 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 lists filter parameters (state, zip, fuel type, radius) and fuel types, providing clear context for when to use the tool. However, it does not explicitly exclude scenarios or mention alternative tools, though no direct competitors exist among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nrel_solarA
Read-only

Get solar energy resource data for any U.S. location — monthly and annual solar irradiance. Shows potential for solar panels at a given location.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude

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, so the description's 'get' verb is consistent. The description adds context about the data (irradiance, panel potential) but lacks details on limitations (e.g., only U.S., assumptions). No contradictions.

Agents need to know what a tool does to the world before 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, two sentences, with the core purpose and output front-loaded. No redundant 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 no output schema and simple parameters, the description provides sufficient context: it returns irradiance data and solar panel potential. However, it could specify units or data source for 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 coverage is 100% with basic descriptions for lat/lon. The tool description does not add any additional parameter semantics (e.g., valid ranges, coordinate system) beyond the schema. 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 states the tool retrieves solar energy resource data, specifically monthly and annual solar irradiance, for any U.S. location. It distinguishes from sibling NREL tools (fuel stations, utility rates) by focusing on solar resource assessment.

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 for U.S. locations and solar panel potential assessment but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. No mention of siblings or when not to use.

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-only

Get residential, commercial, and industrial electricity rates for any U.S. location. Provide latitude/longitude to get the local utility and their rates ($/kWh).

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude (e.g. 40.7128 for NYC, 34.0522 for LA)
lonYesLongitude (e.g. -74.0060 for NYC, -118.2437 for LA)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint: true already indicates the tool is read-only. The description reinforces this by stating it 'gets' data, but does not add further behavioral details (e.g., no data limits, no authentication needs). Overall adequate 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 exceptionally concise: two single-line sentences that front-load the purpose and provide clear instructions. Every word adds value with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema), the description covers the essential behavioral and parameter details. However, it does not describe the output structure beyond mentioning 'local utility and their rates ($/kWh)', leaving some ambiguity 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?

The input schema covers both parameters (lat, lon) with examples, so the description's job is lighter. However, the description adds meaning beyond the schema by stating that the location is for U.S. and that rates are in $/kWh, which helps the agent interpret results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 gets electricity rates and specifies the sectors (residential, commercial, industrial) and location requirement (U.S. location). It distinguishes itself from sibling tools like nrel_fuel_stations and nrel_solar by focusing on utility rates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: provide latitude/longitude to get rates for any U.S. location. However, it does not mention when to avoid using this tool or provide alternatives for similar tasks, leaving it to the agent to infer from context.

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-only

Get payment summary data grouped by pharmaceutical/device company (all years combined). Shows total amounts and number of payments per company.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of companies to return (default 20)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The tool has readOnlyHint=true in annotations, so the read-only nature is already clear. The description adds minor context (grouping by company, showing totals and count) but does not disclose additional behavioral traits 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?

The description is concise, consisting of two clear sentences with no redundant information. It front-loads the main purpose and immediately provides key details.

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 tool with one optional parameter and no output schema, the description is complete. It clearly states what data is returned (grouped by company, total amounts and count), and the readOnlyHint annotation covers safety concerns.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 for the single parameter 'limit', which is described. The description does not add extra meaning beyond the schema's own description, 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 clearly states the tool retrieves payment summary data grouped by company, with total amounts and payment counts. It uses a specific verb-resource combination ('Get payment summary data') and distinguishes from sibling tools like open_payments_by_physician or open_payments_by_hospital.

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 for aggregated data across years, but provides no explicit guidance on when to use this tool versus alternatives. There is no mention of when not to use it or suggestions for other tools for more granular queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_payments_by_hospitalA
Read-only

Get payments grouped by teaching hospital. Shows total pharma payments to teaching hospitals — useful for identifying institutional conflicts of interest.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of hospitals (default 20)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description aligns by saying 'Shows'. No additional behavioral traits (e.g., pagination, data freshness) are disclosed 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 are extremely concise and front-loaded with the key action and resource, leaving 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?

The tool is simple with one optional parameter and no output schema. The description adequately conveys the purpose and use case, though it could mention the output format or fields 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?

Schema coverage is 100% with a clear description for the 'limit' parameter. The description does not add any new meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and resource 'payments grouped by teaching hospital', clearly distinguishing it from siblings like open_payments_by_company or open_payments_by_physician.

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 usage for identifying institutional conflicts of interest but does not explicitly state when to use this tool versus 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.

open_payments_by_physicianA
Read-only

Get payments grouped by individual physician across all years. Pre-aggregated totals — shows how much each doctor received from pharma overall.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of physicians (default 20)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'Pre-aggregated totals' beyond the readOnlyHint annotation, informing that results are summary data. However, it does not disclose other behavioral aspects like performance or scope limitations beyond years.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey the tool's purpose and behavior. No redundant or verbose language; every word adds 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?

Given the tool's simplicity (one optional parameter, no output schema, readOnly annotation), the description fully covers what an agent needs to know: what the tool returns and its aggregated nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 for the single 'limit' parameter with a clear description. The description adds no further parameter meaning beyond what the schema provides, which is adequate but not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('Get'), the resource ('payments grouped by individual physician'), and the scope ('across all years'). It effectively distinguishes this tool from siblings like open_payments_by_company or open_payments_by_hospital.

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 indicates this tool provides aggregated totals per physician, implying it is appropriate for queries about overall payments to individual doctors. It does not explicitly state when not to use it or mention alternatives, but the context is clear enough for an agent to infer usage.

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-only

Get national payment totals and averages by medical specialty. Shows which specialties receive the most pharma money — cardiologists, orthopedic surgeons, psychiatrists, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of specialties (default 30)

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. The description adds no further behavioral details like pagination or default behavior, which is acceptable but not exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, no wasted words, and front-loaded with key 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 the tool's simplicity (one optional parameter, no output schema), the description provides sufficient context: what is returned (national totals/averages) and examples of specialties.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'limit'. The description does not add meaning beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves national payment totals and averages by medical specialty, with examples like cardiologists. It is distinct from sibling tools like open_payments_by_physician.

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 for comparing specialties but does not explicitly state when to use this tool versus alternatives or provide exclusions.

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-only

Search Open Payments OWNERSHIP data — doctors with ownership or investment stakes in pharma/device companies. The deepest form of conflict of interest. Shows which doctors have financial interests in the companies whose products they prescribe.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNoCompany name: 'Pfizer', 'Johnson & Johnson'
doctorNoDoctor last name
stateNoTwo-letter state: 'CA', 'WA'
yearNoYear (auto-discovers latest if omitted)
limitNoMax results (default 20)

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, so the description's addition of 'deepest form of conflict of interest' adds context about the nature of the data. However, no further behavioral traits (e.g., pagination, rate limits) are disclosed.

Agents need to know what a tool does to the world before 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 with two sentences that front-load the core purpose and add emphasis. No unnecessary wording.

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 search tool with no output schema, the description adequately explains the purpose but omits what the output contains (e.g., doctor names, companies). Completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameters are well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, warranting a baseline score of 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 clearly states the tool searches Open Payments OWNERSHIP data, specifically doctors with ownership stakes. It distinguishes itself from siblings like open_payments_by_company or open_payments_by_physician by focusing on ownership 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 does not provide any guidance on when to use this tool versus alternatives. It lacks explicit context for when to choose ownership search over other Open Payments tools like general search or research.

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-only

Search Open Payments RESEARCH payment data — grants, clinical research funding from pharma to doctors. Separate from general payments. Shows research funding amounts, sponsors, and principal investigators.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNoCompany name: 'Pfizer', 'Novo Nordisk'
doctorNoDoctor last name: 'Smith'
stateNoTwo-letter state: 'CA', 'WA'
yearNoYear (auto-discovers latest if omitted)
limitNoMax results (default 20)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description confirms a read-only search. It adds that results show funding amounts, sponsors, and principal investigators, but does not disclose pagination, error handling, or response structure. Adds some context but not extensive.

Agents need to know what a tool does to the world before 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: purpose, differentiation, and output summary. Extremely concise with no filler, front-loaded with key information. 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 search tool with 5 optional parameters and no output schema, the description covers purpose and differentiation but omits details like pagination (limit param), year auto-discovery behavior, and output format. Adequate but could provide more operational 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?

All 5 parameters are fully described in the input schema (100% coverage), so the description's baseline is 3. It does not add parameter-specific clarifications; the output field mention in description is helpful but not parameter-related. No additional meaning beyond 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 clearly states it searches Open Payments RESEARCH payment data, specifically grants and clinical research funding. It distinguishes from general payments, making the tool's purpose precise and differentiated from siblings like open_payments_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?

Implies usage for research-specific payments by stating 'Separate from general payments.' This provides clear context but does not name alternative tools or explicitly state when not to use it. Still, it effectively guides selection among 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_summaryA
Read-only

Get national-level Open Payment totals and averages across all years. Shows how much money flows from pharma to doctors nationally.

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 include readOnlyHint=true, so the description adds context about aggregating totals and averages across all years. However, it does not describe the response format, data source, or any limitations beyond the 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, no wasted words, front-loaded with the primary action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and a simple purpose, the description is adequate. It covers the main functionality, but could be slightly improved by mentioning the output type or any potential limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the description does not need to add meaning; baseline score of 4 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 the tool retrieves national-level Open Payment totals and averages, using a specific verb 'Get' and resource description. It distinguishes itself from sibling tools that focus on specific entities like companies, physicians, or hospitals.

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 the tool is for high-level national summaries, and sibling tools exist for more granular queries, but it does not explicitly state when to use this tool over alternatives or provide any exclusions.

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-only

Find the HIGHEST pharma payments to doctors — sorted by amount descending.\nUse this to find the biggest consulting fees, royalties, and speaking fees in a state or specialty.\nSupports sorting by payment amount — unlike the basic search which returns results in default order.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNoCompany name: 'Pfizer', 'Stryker', 'Medtronic'
doctorNoDoctor last name
stateNoTwo-letter state: 'WA', 'CA', 'TX'
specialtyNoSpecialty: 'Orthopaedic', 'Cardio', 'Neurology'
yearNoYear (auto-discovers latest)
limitNoNumber of top results (default 20)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so no need to restate. Description adds sorting behavior and scope. No hidden side effects; adequate for a read-only 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, each sentence adds distinct value. No waste, efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 low complexity, full schema coverage, and read-only annotations, description is mostly complete. Minor gap: no mention of return format or default limit, but acceptable for a simple sorted list 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% with clear parameter descriptions. Description adds no new parameter details but contextualizes usage of state and specialty. 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?

Description clearly states verb 'Find', resource 'highest pharma payments to doctors', and sorting by amount descending. Distinguishes from siblings by emphasizing sorted results vs default order in basic 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?

Explicitly says to use this tool to find biggest fees in a state or specialty. Mentions sorting capability as differentiator from basic search. Lacks explicit when-not-to-use, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_payments_top_doctorsA
Read-only

Find the HIGHEST-PAID doctors by TOTAL payments received — aggregates all individual payments per doctor. Groups by doctor and sums all their payments, sorted by total descending. This is the key tool for finding doctors with the biggest pharma relationships.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state: 'WA', 'CA', 'TX'
specialtyNoSpecialty: 'Orthopaedic', 'Cardio', 'Neurology'
companyNoCompany name: 'Pfizer', 'Stryker'
yearNoYear (auto-discovers latest)
limitNoNumber of top doctors (default 20)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds behavioral details: it aggregates all payments per doctor, groups and sorts by total descending. This provides transparency about the data processing beyond the read-only 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 three sentences with no redundancy. The first sentence states the purpose, the second explains the mechanism, and the third provides a use case. It is front-loaded and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, but the description conceptually explains the output (list of doctors with total payments). Input parameters are well-documented in the schema. It could mention the default limit or that filters are optional, but overall it is sufficient for a simple aggregation 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%, so baseline is 3. The description does not add new parameter-specific meaning beyond what the schema already provides. It explains the aggregation behavior but not parameter 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 clearly states the tool finds 'HIGHEST-PAID doctors by TOTAL payments received', specifying the verb (Find), resource (highest-paid doctors), and aggregation. It distinguishes from siblings like 'open_payments_by_physician' by emphasizing total aggregation.

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 marks itself as 'the key tool for finding doctors with the biggest pharma relationships', providing strong usage guidance. It implicitly suggests using this over other open_payments tools for top-level aggregation, though it doesn't explicitly list when not to use alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_fiscal_dataA
Read-only

Query the U.S. Treasury Fiscal Data API. Supports field selection, filtering, sorting, and pagination.

Filter operators: eq (equal), gt, gte, lt, lte, in. Example filter: 'record_date:gte:2024-01-01' Example sort: '-record_date' (descending) Multiple filters: 'country_currency_desc:in:(Canada-Dollar,Mexico-Peso),record_date:gte:2024-01-01'

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointYesThe API endpoint path, e.g. '/v2/accounting/od/debt_to_penny'
fieldsNoComma-separated list of field names to return. If omitted, all fields are returned. Example: 'record_date,tot_pub_debt_out_amt'
filterNoFilter expression. Format: field:operator:value. Multiple: field1:op1:val1,field2:op2:val2. Example: 'record_date:gte:2024-01-01,security_type_desc:eq:Treasury Bills'
sortNoComma-separated list of fields to sort by. Prefix with '-' for descending. Example: '-record_date'
page_numberNoPage number (1-indexed). Default: 1
page_sizeNoNumber of records per page (1-10000). Default: 100

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains supported operations (field selection, filtering, sorting, pagination) and provides filter operators with examples. The readOnlyHint annotation already signals no destructive side effects. No contradictions, and the description adds useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences), each sentence serving a purpose: purpose, capabilities, and examples. No redundancy or unnecessary 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?

The tool is simple (query with parameters), and the schema covers all parameters. The description adds examples and operators. While it does not mention error handling or rate limits, it is reasonably complete for a query tool with good schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by providing concrete filter and sort syntax examples (e.g., 'record_date:gte:2024-01-01', '-record_date'), clarifying usage beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Query the U.S. Treasury Fiscal Data API', specifying the exact resource and action. It distinguishes from sibling tools that target different data sources (e.g., BEA, BLS) by naming the specific API.

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 implicitly indicates the tool is for querying Treasury fiscal data, but it does not explicitly state when to use it versus alternatives or when not to use it. However, the name and description are clear enough for an agent to select appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regulations_comment_detailB
Read-only

Get detailed information for a specific public comment by its comment ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentIdYesComment ID (e.g. 'HHS-OCR-2018-0002-5313')

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so description adds minimal behavioral context beyond stating it returns 'detailed information' without specifying what that entails.

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?

Single sentence, front-loaded, and concise. Could be slightly more structured but 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?

With one parameter, read-only annotation, and no output schema, the description is adequate but fails to mention the nature or structure of the returned data, which would help an agent use 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 coverage is 100% with a clear description and example for 'commentId'. The description does not add extra meaning beyond referencing 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?

The description clearly identifies the action ('Get detailed information') and resource ('specific public comment'), and distinguishes from sibling tools like regulations_search_comments and regulations_docket_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as search tools to first obtain a comment ID, or how to interpret the returned data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regulations_docket_detailA
Read-only

Get detailed information for a specific regulatory docket by its docket ID (e.g. 'EPA-HQ-OAR-2003-0129').

ParametersJSON Schema
NameRequiredDescriptionDefault
docketIdYesDocket ID (e.g. 'EPA-HQ-OAR-2003-0129')

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares this is a read operation. The description adds 'Get detailed information' but does not disclose any behavioral traits beyond what annotations provide (e.g., no mention of what 'detailed information' includes, no error conditions, no 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?

The description is a single sentence that is front-loaded with the purpose and includes an example. No unnecessary words; every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should convey what 'detailed information' entails. It is vague; while the tool is simple, the description could be more informative about the nature of docket details (e.g., title, status, dates).

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 provides a description for docketId, and the description adds a concrete example ('EPA-HQ-OAR-2003-0129'), clarifying the expected format. This adds value beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 detailed information') and resource ('regulatory docket'), and provides an example docket ID. It clearly distinguishes from sibling tools like regulations_search_dockets (which searches multiple) and regulations_document_detail (for documents).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when one has a docket ID ('by its docket ID'), but does not explicitly state when to use or avoid this tool, nor mention alternatives (e.g., searching for dockets first). No exclusions or context for when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regulations_document_detailA
Read-only

Get detailed information for a specific regulatory document by its document ID (e.g. 'FDA-2009-N-0501-0012').

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesDocument ID (e.g. 'FDA-2009-N-0501-0012', 'EPA-HQ-OAR-2021-0208-0001')

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, so the description adds the example ID format but no additional behavioral context like error handling or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 20 words, front-loaded with verb and resource. 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?

Description is adequate for a simple detail retrieval tool with one parameter and read-only annotation. Could mention what 'detailed information' includes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 provides an example ID matching the schema. No extra semantic meaning beyond 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 the tool retrieves detailed information for a specific regulatory document by ID. It uses specific verb 'Get' and resource 'regulatory document', distinguishing it from search or docket 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like regulations_search_documents. The purpose is implied but no exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regulations_search_commentsA
Read-only

Search for public comments on federal regulations. Filter by keyword, agency, docket, or date. Shows what the public said about proposed rules.

Sort: 'postedDate' (asc) or '-postedDate' (desc, newest first).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermNoKeyword search in comments
agencyIdNoAgency abbreviation: 'EPA', 'FDA', 'DOL'
docketIdNoDocket ID to get comments for a specific rulemaking
postedDateGeNoComments posted on or after date: '2024-01-01'
postedDateLeNoComments posted on or before date: '2024-12-31'
sortNoSort order (default: newest first)
pageSizeNoResults per page (max 250, default 25)
pageNumberNoPage number (1-based)

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. The description adds sorting behavior (sort field with asc/desc) but does not disclose pagination behavior beyond schema-defined pageSize/pageNumber, rate limits, or data provenance. The added sort detail is useful 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?

Three concise sentences: purpose, filters, sort. Front-loaded with the core action, no redundancy. Every sentence adds value without extraneous detail.

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; description lacks return value details. For a search tool with 8 parameters, more context on response structure (e.g., fields returned, pagination metadata) would improve completeness, but the basics are 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 description coverage is 100%, so parameters are well-documented in the schema. The description mentions filters but does not add new meaning 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for public comments on federal regulations', specifying the action and resource. It mentions filtering by keyword, agency, docket, or date, and sort options, distinguishing it from sibling tools like regulations_comment_detail or regulations_search_documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool over alternatives. While the tool's name and description imply it's for searching comments, it doesn't mention when to use other search tools (e.g., regulations_search_documents) or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regulations_search_docketsA
Read-only

Search for regulatory dockets — organizational folders containing related rules, comments, and documents. Each docket represents a rulemaking or non-rulemaking action by a federal agency.

Sort: 'title', '-title'.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermNoKeyword search (e.g. 'clean air', 'food safety')
agencyIdNoAgency abbreviation: 'EPA', 'FDA', 'DOL', 'HHS'. Comma-separate for multiple: 'EPA,FDA'
docketTypeNoDocket type
sortNoSort order
pageSizeNoResults per page (max 250, default 25)
pageNumberNoPage number (1-based)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description does not contradict this. However, it adds minimal behavioral context beyond the annotations, such as not mentioning rate limits, authentication, or how results are structured.

Agents need to know what a tool does to the world before 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 efficiently convey the tool's purpose and a key parameter hint. No unnecessary words, well front-loaded with the core action.

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?

While the description explains what a docket is and the sort option, it lacks details on what the search response contains (e.g., fields returned) or that all parameters are optional. The absence of output schema makes this more significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter description in the schema. The description adds only the sort examples ('title', '-title') which are already in the schema enums. It 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 clearly states 'Search for regulatory dockets' and explains what a docket is, distinguishing it from sibling tools like regulations_search_documents or regulations_docket_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 description implies use for searching dockets but does not explicitly state when to use this tool versus alternatives like regulations_docket_detail or regulations_search_documents. No when-not or prerequisite guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regulations_search_documentsA
Read-only

Search for federal regulatory documents — proposed rules, final rules, and supporting materials. Filter by agency, docket, date, or keyword. Complements Federal Register data with rulemaking context.

Document types: 'Proposed Rule', 'Rule', 'Supporting & Related Material', 'Other'. Sort: 'postedDate' (asc) or '-postedDate' (desc, newest first).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermNoFull-text search keyword (e.g. 'water quality', 'emissions')
agencyIdNoAgency abbreviation: 'EPA', 'FDA', 'DOL', 'HHS', 'DOT', 'OSHA'
docketIdNoDocket ID (e.g. 'EPA-HQ-OAR-2003-0129')
documentTypeNoDocument type: 'Proposed Rule' (Proposed Rule), 'Rule' (Final Rule), 'Supporting & Related Material' (Supporting & Related Material), 'Other' (Other)
postedDateNoExact date: '2024-01-15'
postedDateGeNoPosted on or after date: '2024-01-01'
postedDateLeNoPosted on or before date: '2024-12-31'
sortNoSort order
pageSizeNoResults per page (max 250, default 25)
pageNumberNoPage number (1-based)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description accurately states it performs searches, aligning with the readOnlyHint annotation. It adds value by detailing the scope (federal regulatory documents with rulemaking context) and filterable attributes, providing behavioral context beyond the 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 remarkably concise: three sentences with no wasted words. It front-loads the purpose in the first sentence and efficiently lists document types and sort options in the last. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters, no output schema), the description covers the tool's purpose, filters, sorting, and document types. It does not explain pagination (pageSize, pageNumber) but the schema covers these. It provides sufficient context for an AI agent to understand the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description summarizes filter options (agency, docket, date, keyword) and lists document types and sort orders, but these are already fully described in the input schema (100% coverage). It adds no new information beyond what is 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 clearly states it searches for federal regulatory documents (proposed rules, final rules, supporting materials) and distinguishes itself from Federal Register data by providing rulemaking context. It lists specific document types and filter options, making the 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 implies usage by mentioning it complements Federal Register data, suggesting it is best for broader regulatory context. However, it does not explicitly state when to use this tool over alternative search tools like fr_search_rules or other regulations_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scorecard_compareA
Read-only

Compare specific colleges side-by-side on cost, graduation rate, earnings, and debt. Provide school names to search and compare.

ParametersJSON Schema
NameRequiredDescriptionDefault
schoolsYesComma-separated school names to compare: 'Harvard,MIT,Stanford' or 'Ohio State,Michigan'

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds that the tool compares specific metrics, which is consistent. No contradictions or additional behavioral traits needed.

Agents need to know what a tool does to the world before 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 succinct sentences cover purpose and usage with no unnecessary words. Front-loads key action and metrics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 single parameter, readOnlyHint, and no output schema, the description adequately informs the agent what to input and what to expect (side-by-side comparison on metrics). Could mention return format but not critical.

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% with a parameter description. The description adds example formats (e.g., 'Harvard,MIT,Stanford') and clarifies that school names are for searching and comparing, enhancing schema 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 clearly states the tool compares specific colleges on cost, graduation rate, earnings, and debt. It distinguishes itself from sibling search/query/top tools by emphasizing side-by-side 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 tells the agent to provide school names and implies comparison. While no explicit when-not or alternatives are given, the mention of 'side-by-side' and the context of siblings make usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scorecard_queryA
Read-only

Advanced College Scorecard query with custom field filters and ranges.

Filter examples:

  • 'latest.admissions.admission_rate.overall__range=0..0.10' (schools with <10% admission rate)

  • 'latest.cost.tuition.in_state__range=..5000' (tuition under $5K)

  • 'school.degrees_awarded.predominant=3' (bachelor's-granting)

  • 'latest.earnings.10_yrs_after_entry.median__range=80000..' (high-earning graduates)

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersYesSemicolon-separated filter params: 'school.state=CA;latest.admissions.admission_rate.overall__range=0..0.20;school.degrees_awarded.predominant=3'
sortNoSort: 'latest.earnings.10_yrs_after_entry.median:desc'
per_pageNoResults per page (default 20)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, indicating a read-only operation. The description adds value by showing filter syntax (e.g., __range operators) and field paths, which clarifies how queries work. However, it does not disclose additional behavioral details such as rate limits, pagination behavior, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear opening sentence and useful bullet-list examples. It avoids redundancy with the schema. The examples are valuable but somewhat lengthy; a smaller set could suffice. Overall, it is well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a query tool with 3 parameters, no output schema, and read-only annotations, the description is adequate but missing context about return format, pagination limits, or error behavior. The filter examples are helpful but narrower in scope. A mention of response structure would 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 coverage is 100% with descriptions for all three parameters. The description's filter examples add meaning beyond the schema's 'semicolon-separated filter params' by showing specific syntax and range operators. However, no extra info is provided for sort or per_page, which remain covered solely by 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 'Advanced College Scorecard query with custom field filters and ranges', clearly identifying the tool as a flexible query interface for the College Scorecard dataset. The examples emphasize direct filtering on specific fields (e.g., admission rate, cost, earnings), distinguishing it from sibling tools like scorecard_search (simpler search), scorecard_compare (comparison), and scorecard_top (top 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 description implies usage for complex queries via field examples but does not explicitly state when to prefer this tool over alternatives. No 'when to use' or 'when not to use' guidance is provided. The sibling tool names suggest distinct purposes (search, compare, top), but the description does not leverage this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scorecard_topA
Read-only

Get top-ranked colleges by earnings, graduation rate, or lowest cost. Rankings: 'earnings' (highest median pay 10yr after entry), 'graduation' (highest completion rate), 'expensive' (highest tuition)

ParametersJSON Schema
NameRequiredDescriptionDefault
rankingYesRanking metric
stateNoFilter to state: 'CA', 'NY', 'TX'
ownershipNo1=Public, 2=Private nonprofit, 3=Private for-profit
per_pageNoNumber of schools (default 20)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the read-only nature is clear. The description adds context about ranking meanings but does not disclose other behaviors like pagination, default sorting, or response format. Given the annotations, it provides moderate additional 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?

The description is extremely concise: two sentences that efficiently convey the purpose and ranking definitions. No unnecessary words, and key 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?

With no output schema, the description could explain the return format or that results are limited (e.g., default per_page=20). It omits details about sorting and response structure, making it moderately complete for a simple list tool but insufficient for full 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 coverage is 100%, so baseline is 3. The description adds extra semantics for the 'ranking' parameter by explaining each enum value, but does not enhance state, ownership, or per_page parameters beyond their 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 the tool's purpose: to retrieve top-ranked colleges based on earnings, graduation rate, or lowest cost. It defines each ranking metric distinctly, distinguishing it from sibling tools like scorecard_search or scorecard_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 description implies when to use the tool (for top rankings) but does not explicitly state when not to use it or suggest alternatives like scorecard_query for detailed filtering. Usage guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_datasetsA
Read-only

Search for Treasury Fiscal Data datasets and endpoints by keyword. Searches across all 53 datasets (181 endpoints) by name, table name, endpoint path, and description.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe keyword or phrase to search for (case-insensitive). Examples: 'debt', 'exchange rate', 'gold', 'auction'

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds behavioral context by detailing the search scope and fields. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the purpose and adding necessary scope details without extraneous 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 search tool with one parameter and no output schema, the description provides sufficient context: what it searches, how it searches (by keyword across multiple fields), and the scope. It could mention output format, but it's not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'query' that includes examples. The description adds value by specifying that the search targets name, table name, endpoint path, and description, going beyond the schema's generic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 searches Treasury Fiscal Data datasets and endpoints by keyword, specifying the scope (53 datasets, 181 endpoints) and searchable fields (name, table name, endpoint path, description). This distinguishes it from sibling search tools targeting different data sources.

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 context on when to use this tool (for searching Treasury Fiscal Data) and details the search fields, but does not explicitly state when not to use it or suggest alternatives. However, the domain-specific nature makes implicit usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_company_financialsA
Read-only

Get financial data (revenue, net income, assets, etc.) from SEC XBRL filings for a company. Returns standardized financial data extracted from 10-K and 10-Q filings.

Requires CIK number. Use sec_company_search to look up filings first.

Common XBRL concepts: Revenues, NetIncomeLoss, Assets, Liabilities, StockholdersEquity, EarningsPerShareBasic, CashAndCashEquivalentsAtCarryingValue

ParametersJSON Schema
NameRequiredDescriptionDefault
cikYes10-digit CIK number (e.g., '0000320193' for Apple)
metricNoSpecific XBRL concept to retrieve (e.g., 'Revenues', 'NetIncomeLoss', 'Assets'). Omit to get a summary of available key metrics.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's statement 'Get financial data' aligns with read-only behavior. It adds that data is standardized and extracted from filings, and explains the behavior when metric is omitted (returns summary). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three focused paragraphs: purpose, prerequisite, and common concepts. No redundant sentences; front-loaded with core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, no output schema), the description covers prerequisites, parameter guidance, and examples. While it could mention return format or pagination, it is fairly complete for the complexity level.

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 100% coverage with descriptions for both parameters. The description adds value by listing common XBRL concepts and explaining that omitting metric returns a summary of key metrics, going beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'get', the resource 'financial data from SEC XBRL filings', and specifies data types (revenue, net income, assets). It also mentions the source filings (10-K and 10-Q), distinguishing it from sibling tools like sec_company_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 explicitly states the prerequisite 'Requires CIK number' and directs users to 'Use sec_company_search to look up filings first.' It also lists common XBRL concepts for the metric parameter, providing clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usa_agency_overviewA
Read-only

Get an overview of a federal agency's spending, including budgetary resources and obligations.

Common codes: '097' (DOD), '075' (HHS), '069' (Treasury), '089' (DOE), '012' (USDA), '015' (Justice), '036' (VA), '070' (DHS), '080' (NASA)

ParametersJSON Schema
NameRequiredDescriptionDefault
agency_codeYesToptier agency code. Common: '097' (DOD), '075' (HHS), '069' (Treasury), '089' (DOE), '036' (VA), '070' (DHS), '080' (NASA), '091' (Education), '016' (Labor)
fiscal_yearNoFiscal year (default: current)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate 'readOnlyHint: true', so the description's statement 'Get an overview' is consistent and adds no extra behavioral insight. The description does not disclose any other traits like data freshness, pagination, or response size. Since annotations cover the safety profile, a score of 3 is appropriate – adequate but no 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?

The description is concise, consisting of two sentences. The first sentence defines the purpose; the second provides practical usage examples. It avoids redundancy and is well-structured for quick consumption.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 simplicity (2 parameters, no nested objects), the description is largely complete. It explains what the tool returns (overview of spending with budgetary resources and obligations) and provides common codes. However, it lacks details on the output format or additional constraints, which would be helpful but not critical for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents both parameters. The description adds value by providing a curated list of common agency codes beyond what is in the schema, helping users quickly use the tool. It does not explain the fiscal_year semantics beyond 'default: current', but the schema provides that. Overall, it adds meaningful 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 clearly states the tool's purpose: 'Get an overview of a federal agency's spending, including budgetary resources and obligations.' It uses a specific verb ('Get an overview') and identifies the resource ('federal agency's spending'), differentiating it from sibling tools like 'usa_spending_by_agency' which focus on detailed breakdowns rather than an overview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as 'usa_spending_by_agency' or 'usa_spending_over_time'. It does not mention prerequisites, limitations, or any context for selecting this tool over others. The list of common codes is helpful but does not constitute usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usa_spending_by_agencyA
Read-only

Get total federal spending broken down by awarding agency. Shows which agencies are spending the most.

ParametersJSON Schema
NameRequiredDescriptionDefault
fiscal_yearNoFiscal year (default: current)
stateNoTwo-letter state code, e.g. 'CA', 'TX'
keywordNoKeyword to filter spending
award_typeNoAward type filter
limitNoNumber of agencies (default: 20)

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, so the description adds limited behavior context beyond confirming it is a read operation. It does not discuss defaults, pagination, or ordering beyond 'spending the most'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loading the purpose with no extraneous words. It is efficiently 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 straightforward aggregation tool with no required parameters, the description conveys the main output (agency spending ranking) and implies a filtered view. It lacks mention of return format or default limit but is reasonably complete for its 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 coverage is 100% with descriptions for all 5 parameters. The description adds no parameter-level detail beyond what the schema provides, resulting in baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves total federal spending broken down by awarding agency, and explicitly mentions it shows which agencies are spending the most, effectively distinguishing it from sibling tools like usa_spending_by_award or usa_spending_by_recipient.

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 agency-level spending aggregation but provides no explicit guidance on when to use it versus alternatives or any exclusions. It is adequate but lacks direct direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usa_spending_by_awardA
Read-only

Search federal spending awards (contracts, grants, loans, direct payments). Filter by keyword, agency, recipient, date range, award type, and amount.

Award type groups: 'contracts', 'grants', 'loans', 'direct_payments'. Or use codes: 'A,B,C,D' (contracts), '02,03,04,05' (grants), '07,08' (loans), '06,10' (direct payments)

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoKeyword to search across award descriptions and recipient names
award_typeNoAward type filter
agencyNoAwarding agency name, e.g. 'Department of Defense'
recipientNoRecipient/company name to search for
stateNoTwo-letter state code, e.g. 'CA', 'TX'
start_dateNoStart date YYYY-MM-DD (default: current FY). Earliest: 2007-10-01
end_dateNoEnd date YYYY-MM-DD (default: today)
min_amountNoMinimum award amount in dollars
max_amountNoMaximum award amount in dollars
limitNoResults per page (default: 25)
pageNoPage number (default: 1)
sort_fieldNoSort by: 'Award Amount' (default), 'Recipient Name', 'Start Date', 'End Date'

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description includes a 'search' verb matching the readOnlyHint=true annotation. It adds context on award type groups but does not disclose response format, pagination details, or rate limits. Annotations already cover safety, so this is adequate but not comprehensive.

Agents need to know what a tool does to the world before 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, front-loaded with purpose, and includes necessary detail on award types without fluff. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 12 parameters and no output schema, the description is fairly complete for a search tool but lacks information about return format and pagination behavior. The presence of limit and page parameters implies pagination, but not stated.

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%, providing descriptions for all 12 parameters. The description adds valuable detail for award_type (groups and codes) not present in the schema, enhancing usability. Baseline is 3; this addition justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 searches federal spending awards, listing types and filters. It is specific and distinguishes itself from sibling tools that focus on aggregations (e.g., by agency, recipient).

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 indicates when to use (search awards with filters) and provides award type groups with codes. It is implicit about when not to use, but sibling names suggest different aggregation levels; explicit guidance would improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usa_spending_by_recipientA
Read-only

Get the top recipients (companies, organizations) of federal spending. Use state and agency filters to narrow results.

ParametersJSON Schema
NameRequiredDescriptionDefault
fiscal_yearNoFiscal year (default: current)
award_typeNoAward type filter
stateNoTwo-letter state code, e.g. 'CA', 'TX'
agencyNoAwarding agency name, e.g. 'Department of Energy'
limitNoNumber of recipients (default: 25)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the tool is known to be read-only. The description adds no further behavioral details (e.g., sorting criteria, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise and to the point, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 5 optional parameters and no output schema, the description covers the core purpose and basic filtering. It could be slightly improved by clarifying 'top' ordering or default 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 the schema already documents all parameters. The description only repeats state and agency filters without adding new 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 clearly states the tool retrieves top recipients of federal spending and mentions narrowing with filters. It distinctly differs from sibling tools like usa_spending_by_agency or usa_spending_by_award.

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 advises using state and agency filters to narrow results, providing some usage guidance. However, it lacks explicit comparison to sibling tools or conditions for when 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.

usa_spending_by_stateA
Read-only

Get federal spending by state or territory. Shows total awards and per-capita spending.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter state code (e.g. 'CA'). Omit for all states.
fiscal_yearNoFiscal year (default: most recent)

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. The description adds the output details (total awards and per-capita spending) but does not disclose data source freshness, rate limits, or other behavioral traits.

Agents need to know what a tool does to the world before 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 succinct sentences, front-loaded with the core purpose. No redundant 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 2-parameter tool with annotations, the description sufficiently covers what the tool returns. It is complete enough for basic 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 coverage is 100% with adequate parameter descriptions. The description adds minimal extra meaning beyond the schema, only hinting at the output metrics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves federal spending by state or territory, showing total awards and per-capita spending. This is a specific verb+resource and distinguishes it from siblings like usa_spending_by_agency.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., other USAspending tools). The description does not mention prerequisites or scope limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usa_spending_over_timeA
Read-only

Get federal spending aggregated by time period (monthly, quarterly, or fiscal year). Useful for identifying trends.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoTime grouping (default: month)
start_dateNoStart date YYYY-MM-DD (default: 3 years ago)
end_dateNoEnd date YYYY-MM-DD (default: today)
agencyNoFilter to specific agency name
award_typeNoAward type filter
stateNoTwo-letter state code, e.g. 'CA', 'TX'
keywordNoKeyword to filter spending

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint already tells the agent this is a safe read operation. The description adds no behavioral details beyond that, such as rate limits, response format, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences that are front-loaded with the core action. Every word is necessary and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose but does not mention the multiple optional filters (agency, state, keyword) or response structure. Given 7 parameters and no output schema, more guidance would 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 coverage is 100%, so baseline is 3. The description does not elaborate on parameters; it only mentions time grouping options. It adds no extra 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 clearly states the verb 'Get' and resource 'federal spending aggregated by time period'. It implicitly distinguishes from siblings like usa_spending_by_agency, usa_spending_by_award, etc., by focusing on time-based aggregation.

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 indicates use for time-based aggregation and trend identification, but does not explicitly state when to avoid this tool or name alternatives. The distinction from siblings is clear from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usda_ag_queryA
Read-only

Custom query to USDA NASS QuickStats — any combination of filters. Max 50,000 records. Use usda_ag_count first for large queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
commodity_descNoCommodity: CORN, WHEAT, CATTLE, etc.
source_descNoSURVEY or CENSUS
sector_descNoCROPS, ANIMALS & PRODUCTS, ECONOMICS, ENVIRONMENTAL
statisticcat_descNoAREA PLANTED, PRODUCTION, YIELD, PRICE RECEIVED, INVENTORY
state_alphaNoState code: IA, IL, CA or US for national
yearNoYear
agg_level_descNoNATIONAL, STATE, COUNTY
freq_descNoANNUAL, MONTHLY, WEEKLY

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds the 50,000 record limit behavior beyond annotations, which is useful. However, it does not detail any other behavioral traits like performance or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The first sentence states purpose, the second provides limits and usage guidance. Ideal structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 doesn't explain return format. However, it covers the important aspects: custom query, limits, and when to use sibling. For a query tool, it is fairly complete given context signals.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 has 8 parameters all with descriptions, achieving 100% coverage. The description's statement 'any combination of filters' implies all parameters are optional, which is a minor addition. Baseline 3 is appropriate as the schema handles most 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?

Description clearly states it is a custom query tool for USDA NASS QuickStats with any combination of filters. It specifies the resource (USDA NASS QuickStats) and action (query), and distinguishes from sibling tools like usda_crop_data and usda_livestock which are more specific.

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 mentions a maximum record limit of 50,000 and advises using usda_ag_count first for large queries, providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usda_crop_dataB
Read-only

Get crop production data — area planted, harvested, production, yield. Commodities: CORN, SOYBEANS, WHEAT, COTTON, RICE, SORGHUM

ParametersJSON Schema
NameRequiredDescriptionDefault
commodityYesCrop name: CORN, SOYBEANS, WHEAT, COTTON, RICE
stateNoState code: IA, IL, CA, TX. Omit for national
yearNoYear (omit for all recent years)
categoryNoPRODUCTION (default), AREA PLANTED, AREA HARVESTED, YIELD

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, so the read-only nature is clear. The description adds no additional behavioral context beyond basic data type, which is adequate 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 concise with two short sentences that front-load the purpose and list key commodities. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple data retrieval tool with 4 parameters and no output schema, the description covers core functionality and commodity scope. It lacks mention of optional parameters like state and year, but those are 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?

All parameters have schema descriptions, providing 100% coverage. The description adds a commodity (SORGHUM) not listed in the parameter description, which can be confusing. Baseline is 3 due to high schema coverage, but the inconsistency prevents a higher score.

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 retrieves crop production data with specific metrics like area planted, harvested, production, and yield, and lists commodities. However, it does not differentiate from sibling USDA tools (e.g., usda_ag_query, usda_livestock) explicitly, and 'crop production data' might be slightly ambiguous given the category parameter includes other metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus other USDA tools or alternatives. The description only states what the tool does, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usda_livestockA
Read-only

Get livestock data — inventory, slaughter, production. Commodities: CATTLE, HOGS, CHICKENS, MILK, EGGS

ParametersJSON Schema
NameRequiredDescriptionDefault
commodityYesCATTLE, HOGS, CHICKENS, MILK, EGGS
stateNoState code. Omit for national
yearNoYear
categoryNoINVENTORY, PRODUCTION, SALES

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds the data types (inventory, slaughter, production) but does not discuss rate limits, pagination, or data freshness. Minor inconsistency: description says 'slaughter' while schema category says 'SALES'.

Agents need to know what a tool does to the world before 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 covering purpose and commodities, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema. Description does not explain return structure, pagination, or how to use parameters together. Lacks differentiation from usda_ag_query. Inconsistency between 'slaughter' and 'SALES' reduces 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 coverage is 100%, so the schema already documents parameters. The description lists commodities and category values, mostly repeating schema. It adds no extra semantics beyond schema, except introducing inconsistency with 'slaughter' vs 'SALES'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves livestock data with specific categories (inventory, slaughter, production) and lists commodities. It distinguishes from siblings like usda_crop_data and usda_prices.

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 guidance on when to use this tool versus alternatives. The purpose is implied but no exclusions or comparisons provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usda_pricesB
Read-only

Get prices received by farmers for agricultural commodities. Works for any commodity: CORN, WHEAT, SOYBEANS, CATTLE, MILK, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
commodityYesAny commodity: CORN, WHEAT, SOYBEANS, CATTLE, HOGS, MILK
stateNoState code. Omit for national average
yearNoYear

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the description's 'Get prices' is consistent with a read operation. However, the description adds no further behavioral traits such as data availability (e.g., historical range, frequency) or any potential 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?

Two short, focused sentences with no extraneous text. All words contribute to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with readOnlyHint annotations, the description is mostly complete. It covers the core function and parameter hints. However, it lacks information about expected output format or how results are structured, which would be helpful given 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% (each parameter has a description in the schema), so the description adds minimal value beyond the schema. It lists commodity examples but does not elaborate on state format, year restrictions, or output implications.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get prices received by farmers for agricultural commodities' with specific examples (CORN, WHEAT, etc.). This is a clear verb+resource combination, but it does not differentiate from sibling USDA tools like usda_crop_data or usda_livestock, which may also involve price 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?

No guidance on when to use this tool vs. alternatives. Among many sibling tools, including other USDA tools, there is no mention of specific use cases, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usgs_daily_water_dataA
Read-only

Get USGS daily value water data (historical daily averages). Unlike real-time instantaneous values, these are aggregated daily means — better for trend analysis. Parameter codes: 00060=discharge (cfs), 00065=gage height (ft), 00010=water temp (°C).

ParametersJSON Schema
NameRequiredDescriptionDefault
sitesNoUSGS site number(s): '01646500'
state_cdNoTwo-letter state code: 'CA', 'TX'
parameter_cdNoParameter code: '00060' (discharge), '00065' (gage height). Default: 00060
periodNoISO 8601 duration: 'P30D' (default), 'P90D', 'P365D'
start_dtNoStart date: '2024-01-01' (overrides period)
end_dtNoEnd date: '2024-12-31'

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, so the tool is read-only. The description adds that data are aggregated daily means (historical averages), which implies no real-time updates. This provides behavioral context beyond the annotations, though no additional details on rate limits or other traits 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?

The description is three sentences, each serving a distinct purpose: function, differentiation, and parameter codes. No unnecessary words; information is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description explains input and use case, it lacks any information about the output format, fields returned, or pagination. With no output schema, an agent lacks context on what to expect from the response, making it incomplete for a data retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by listing common parameter codes (00060, 00065, 00010) with their physical meanings and units, which the schema does not provide. This aids parameter selection beyond the 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 the verb 'Get' and resource 'USGS daily value water data (historical daily averages)'. It distinguishes from real-time instantaneous values, implying differentiation from siblings like usgs_water_data. The purpose is specific and 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 explicitly contrasts with real-time instantaneous values and suggests the tool is better for trend analysis. This gives clear context on when to use it, though it does not name the exact sibling tool or provide when-not-to-use conditions. Still, the guidance is effective.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usgs_earthquake_countA
Read-only

Count earthquakes matching criteria without fetching full details. Useful for statistics: 'How many M5+ earthquakes occurred in 2024?'

ParametersJSON Schema
NameRequiredDescriptionDefault
starttimeNoStart date: '2024-01-01'
endtimeNoEnd date: '2024-12-31'
minmagnitudeNoMinimum magnitude
maxmagnitudeNoMaximum magnitude
latitudeNoCenter latitude for radius search
longitudeNoCenter longitude for radius search
maxradiuskmNoSearch radius in km

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds that it counts without fetching full details, aligning with that. No extra behavioral context (e.g., return format) is provided, but for a simple count tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. Front-loaded with action and resource, followed by a practical example. 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?

Tool is simple, annotations cover safety, schema covers parameters, and description provides use case. Could mention return value format, but absence of output schema and tool's straightforward nature make this adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 covers all 7 parameters with descriptions (100% coverage). Description does not add parameter-specific details beyond the schema, but the overall purpose and example guide usage. 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?

Description clearly states the verb 'count', resource 'earthquakes', and purpose 'without fetching full details'. Example 'How many M5+ earthquakes occurred in 2024?' solidifies understanding. Distinguishes from sibling tool 'usgs_earthquakes' which fetches 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?

Provides a concrete use case for statistics and implies when not to use (when full details needed). Does not explicitly name sibling alternatives, but the context is clear enough for agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usgs_earthquakesA
Read-only

Search for earthquakes by magnitude, location, date range, and more. Returns magnitude, location, depth, time, alert level, tsunami risk, and felt reports. Magnitude scale: 2.5+ felt by people, 4.0+ moderate, 5.0+ significant, 7.0+ major.

ParametersJSON Schema
NameRequiredDescriptionDefault
starttimeNoStart date ISO format: '2024-01-01'
endtimeNoEnd date ISO format: '2024-12-31'
minmagnitudeNoMinimum magnitude (e.g. 4.0, 5.0, 6.0)
maxmagnitudeNoMaximum magnitude
latitudeNoCenter latitude for radius search
longitudeNoCenter longitude for radius search
maxradiuskmNoSearch radius in km (requires lat/lon)
alertlevelNoPAGER alert level: 'green' (Limited impact — no damage expected), 'yellow' (Regional impact — some damage possible), 'orange' (National/international impact — significant damage likely), 'red' (Massive impact — extensive damage and casualties expected)
limitNoMax results (default 20, max 200)
orderbyNoSort order (default: time)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses return fields (magnitude, location, depth, time, alert level, tsunami risk, felt reports) and magnitude scale interpretation, adding value beyond readOnlyHint 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?

Three concise sentences with key information front-loaded. 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?

Given 10 parameters and no output schema, the description covers typical output and magnitude scale well. Lacks details on pagination or defaults but is fairly complete 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 coverage is 100% with descriptions for all parameters. Description adds magnitude scale interpretation but does not enhance individual parameter understanding significantly.

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?

Clearly states it searches for earthquakes by various criteria. However, does not differentiate from sibling tools usgs_earthquake_count or usgs_significant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. Does not mention when not to use or provide context for alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usgs_significantA
Read-only

Get significant earthquakes from the past 30 days (typically M4.5+ or felt/damaging events). Quick way to see the latest notable seismic activity worldwide.

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. The description adds useful context about the time range and magnitude threshold, but does not discuss any other behavioral traits (e.g., rate limits, 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 clear, front-loaded sentences with no redundant information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only tool with no output schema, the description fully covers the purpose, scope, and constraints (time range, magnitude filter). No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters and schema coverage is 100%. The description does not need to add parameter details, earning a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Get significant earthquakes from the past 30 days' with a clear magnitude threshold (M4.5+ or felt/damaging). It distinguishes from sibling tools like usgs_earthquakes by focusing on 'significant' events.

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 labels itself as a 'Quick way to see the latest notable seismic activity', implying a superficial use case, but does not explicitly state when to avoid it or name alternatives like usgs_earthquakes for detailed queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usgs_water_dataA
Read-only

Get real-time water data (streamflow, gage height, temperature) from USGS monitoring sites. 13,000+ stations nationwide. Parameter codes: 00060=discharge (cfs), 00065=gage height (ft), 00010=water temp (°C). Query by site ID, state, county, or hydrologic unit code (HUC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sitesNoUSGS site number(s), comma-separated: '01646500' or '01646500,01647000'
state_cdNoTwo-letter state code: 'CA', 'TX', 'NY'
parameter_cdNoParameter code: '00060' (discharge), '00065' (gage height), '00010' (temp). Default: 00060
periodNoISO 8601 duration: 'P1D' (1 day, default), 'P7D' (7 days), 'P30D' (30 days)
start_dtNoStart date: '2024-01-01' (overrides period)
end_dtNoEnd date: '2024-01-31'

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already indicates readOnlyHint=true. The description adds context about the scale (13,000+ stations) and the specific data types (discharge, gage height, temperature) with their parameter codes. This supplements the annotation by clarifying the scope and content of the read operation.

Agents need to know what a tool does to the world before 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 and front-loaded with purpose, then adds key context (station count, parameter codes, query methods). No redundant or unnecessary information. Highly 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?

Given the tool has 6 parameters with 100% schema coverage and no output schema, the description covers purpose, data types, scale, and query options. It could be improved by briefly describing the response format (e.g., JSON with timestamps and values), but the absent output schema does not severely hinder selection or invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented. The tool description adds value by explaining parameter codes (00060, 00065, 00010) and mentioning query methods that map to schema properties. However, it does not elaborate on the period vs. start_dt/end_dt semantics, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches real-time water data (streamflow, gage height, temperature) from USGS sites. It specifies the resource (USGS monitoring sites) and the verb (Get). However, it does not explicitly distinguish from the sibling tool 'usgs_daily_water_data', which likely provides historical daily averages versus real-time snapshots.

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 listing query methods (site ID, state, county, HUC) and parameter code meanings. It does not provide explicit guidance on when to use this tool versus alternatives like 'usgs_daily_water_data' or 'usgs_water_sites', nor does it 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.

usgs_water_sitesB
Read-only

Search for USGS water monitoring sites by state, county, or hydrologic unit. Site types: ST=stream, GW=groundwater, LK=lake, SP=spring.

ParametersJSON Schema
NameRequiredDescriptionDefault
state_cdNoTwo-letter state code: 'CA', 'TX'
county_cdNoCounty FIPS code
site_typeNoSite type: ST (stream), GW (groundwater), LK (lake), SP (spring)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, meaning the tool is safe and read-only. The description adds no further behavioral context such as rate limits, pagination, or return format, so it relies entirely on annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, efficiently front-loaded with the tool's purpose and key details. However, the misleading mention of hydrologic unit slightly detracts from clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 3 optional parameters and no output schema, the description fails to mention return fields, pagination, or rate limits. The hydrologic unit inconsistency further reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and descriptions are provided, but the description adds no new meaning beyond the schema. It also incorrectly mentions 'hydrologic unit' as a filter option, which is not in the input schema, potentially confusing agents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'Search' and the resource 'USGS water monitoring sites', with explicit criteria (state, county, hydrologic unit) and site type abbreviations that distinguish it from siblings like usgs_water_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?

The description implies usage by listing search parameters, but does not explicitly state when to use this tool vs alternatives (e.g., usgs_water_data for time series). No exclusions or alternative tool names are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_application_assignmentsA
Read-only

Get assignment (ownership transfer) records for a patent application. Shows conveyance type, assignor, assignee, and dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
application_numberYesApplication number

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true correctly indicates a read operation, and the description adds value by listing specific output fields (conveyance type, assignor, assignee, dates). This provides behavioral context beyond the annotation 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?

The description is concise (20 words in two sentences), front-loaded with the verb 'Get', and contains no redundant information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, output fields, and parameter adequately for a simple lookup tool. With no output schema and no nested objects, it provides sufficient context for an AI to use the tool correctly, though it lacks mention of potential limitations 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?

The input schema has 100% description coverage for the single parameter (application_number) with a basic description. The description itself adds no additional semantic information about the parameter 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?

The description uses a specific verb ('Get') and clearly identifies the resource ('assignment records for a patent application'). It mentions the key fields returned (conveyance type, assignor, assignee, dates), which helps distinguish it from sibling tools like uspto_application_details.

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 obtaining assignment records, but it does not explicitly state when to use this tool over alternatives or provide context on limitations or prerequisites. The usage context is clear enough for an AI to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_application_continuityA
Read-only

Get continuity (parent/child application chain) data for a patent application. Shows parent applications (continuations, divisionals, CIPs) and child applications.

ParametersJSON Schema
NameRequiredDescriptionDefault
application_numberYesApplication number

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, so the tool's read-only nature is clear. The description adds that it shows parent and child applications, but does not disclose other behavioral traits like pagination, limits, or data format. With annotations covering safety, the additional context is sufficient but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, both front-loaded with essential information. There is no fluff or redundancy; every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one required parameter and no output schema, the description adequately explains the purpose and output content. It could briefly mention return structure, but is mostly complete for an agent to understand its 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 only parameter, 'application_number', has a schema description 'Application number'. The description does not add extra semantics (e.g., format hints, validation rules) beyond what the schema provides. Since schema coverage is 100%, baseline is 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 clearly states the verb 'Get' and specifies the resource 'continuity data for a patent application'. It further explains the content as parent/child chain with examples (continuations, divisionals, CIPs), distinguishing it from other USPTO tools like assignments or details.

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 for retrieving patent continuity, but does not explicitly state when to use this tool versus alternative USPTO tools (e.g., uspto_application_details). No exclusion or alternative mention is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_application_detailsA
Read-only

Get full patent application data by application number. Returns all metadata including filing date, grant date, status, inventors, applicant, patent number, type, and prosecution details.

ParametersJSON Schema
NameRequiredDescriptionDefault
application_numberYesApplication number (e.g. '14412875'). For PCT, use encoded format (e.g. 'PCTUS0719317')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds that it returns 'all metadata' and lists fields, but does not disclose any behavioral quirks 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: one stating purpose, one listing returns. No fluff, 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter, no output schema, and readOnlyHint in annotations, the description adequately covers what the tool does. It could be more explicit about returning a single record, but overall 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 covers the single parameter (application_number) with format examples. The description merely repeats 'by application number', 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 clearly states the tool's purpose: retrieving full patent application data by application number. It lists specific metadata fields (filing date, grant date, status, etc.), distinguishing it from sibling tools like search or assignments.

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: use when you have an application number and need full details. However, it does not explicitly contrast with siblings like uspto_search_applications or mention 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.

uspto_application_documentsA
Read-only

List documents filed in a patent application (office actions, amendments, drawings, etc.). Filter by document code or date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
application_numberYesApplication number
document_codesNoComma-separated document codes e.g. 'WFEE' (fee worksheet), 'SRFW,SRNT' (search forward/notice)
date_fromNoOfficial date from (yyyy-MM-dd)
date_toNoOfficial date to (yyyy-MM-dd)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context about document types beyond the readOnlyHint annotation, but does not disclose other behaviors like pagination, rate limits, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose and examples, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a listing tool with full schema coverage, the description is mostly complete. However, it lacks mention of pagination or result limits, which are common in list operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter described. The description only vaguely mentions filtering, adding little 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 clearly states the tool lists documents in a patent application, with examples (office actions, amendments, drawings). It distinguishes itself from sibling tools like application_details or transactions.

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 mentions filtering by document code or date range, but does not specify when to use this tool over alternatives or any exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_application_transactionsA
Read-only

Get transaction (prosecution history) events for a patent application. Shows office actions, responses, examiner actions, and status changes with dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
application_numberYesApplication 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, and description aligns with 'Get'. No additional behavioral traits disclosed beyond what annotations provide, such as rate limits or authentication 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?

Single sentence, 22 words, front-loaded with verb and resource. No unnecessary 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 tool with one required parameter, the description is adequate. However, absence of output schema leaves return format unspecified, though the description hints at event types and dates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with a single parameter description 'application number'. Description adds no extra meaning 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?

Description clearly states it retrieves transaction/prosecution history events for a patent application, listing specific event types (office actions, responses, etc.), distinguishing it from sibling tools like uspto_application_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?

Implicitly tells when to use (when needing prosecution history events), but lacks explicit comparisons to alternatives or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_petition_decisionsA
Read-only

Search USPTO petition decisions - petitions for extension of time, revival, suspension, etc. Search by applicant name, decision type, technology center, date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query - e.g. 'firstApplicantName:BRANT*', 'decisionTypeCodeDescriptionText:Denied'
filtersNoArray of filters as 'field value' - e.g. ['technologyCenter 3600', 'businessEntityStatusCategory Small']
range_filtersNoArray of range filters as 'field from:to' - e.g. ['petitionMailDate 2021-01-01:2025-01-01']
sortNoSort as 'field order' - e.g. 'petitionMailDate desc'
fieldsNoFields to include in response
offsetNoStarting position (default 0)
limitNoResults per page (default 25)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the readOnlyHint annotation, indicating a non-destructive search operation. However, it does not disclose additional behavioral traits such as pagination (though offset/limit parameters hint at it) or rate limits. The description adds minimal context beyond what annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

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 primary purpose and includes concrete examples. Every word contributes meaning, and the format is concise without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description is incomplete. It does not explain the response format, pagination behavior, or what fields are returned. The agent would need to infer output structure from parameter names and examples, which is insufficient for a complex search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds value by illustrating specific field examples (e.g., 'firstApplicantName:BRANT*', 'decisionTypeCodeDescriptionText:Denied') and filter patterns ('technologyCenter 3600'), which enrich the schema's generic 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 specifies the resource (USPTO petition decisions) and the action (search), listing concrete types of petitions (extension of time, revival, suspension) and search fields (applicant name, decision type, technology center, date range). It effectively distinguishes from sibling tools like uspto_ptab_decisions and uspto_search_applications by focusing on petition decisions.

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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it. While the purpose is clear, the lack of comparison with other USPTO tools or conditions for use limits usability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_ptab_decisionsB
Read-only

Search PTAB trial decisions. Find institution decisions, final written decisions, and other PTAB rulings. Search by trial type, outcome, patent owner, grant date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query - e.g. 'trialMetaData.trialTypeCode:IPR AND patentOwnerData.groupArtUnitNumber:2884'
filtersNoArray of filters as 'field value' - e.g. ['trialMetaData.trialTypeCode IPR']
range_filtersNoArray of range filters as 'field from:to' - e.g. ['respondentData.grantDate 2023-01-01:2024-12-31']
sortNoSort as 'field order'
fieldsNoFields to include in response
offsetNoStarting position (default 0)
limitNoResults per page (default 25)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set readOnlyHint=true, so the description's 'Search' aligns. It adds context about decision types but does not disclose other behaviors such as rate limits, authentication needs, or result structure. With annotations present, minimal extra value 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?

The description is extremely concise at two sentences, front-loading the purpose and including key searchable aspects without unnecessary words. Every sentence contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters and no output schema, the description covers basic purpose but lacks details on query syntax, result format, or pagination behavior. It is adequate but could be more helpful for first-time users.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 baseline is 3. The description mentions searchable criteria (trial type, outcome, etc.) but does not add meaning beyond the schema's parameter descriptions, which already specify formats and 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 searches PTAB trial decisions and lists specific types like institution and final written decisions. However, it does not differentiate from sibling tools like uspto_ptab_proceedings, which may also involve PTAB content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The implied usage is through listing searchable criteria, but explicit comparisons with siblings are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_ptab_proceeding_detailsA
Read-only

Get details for a specific PTAB trial proceeding by trial number (e.g. 'IPR2025-01319').

ParametersJSON Schema
NameRequiredDescriptionDefault
trial_numberYesTrial number (e.g. 'IPR2025-01319')

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description confirms it by stating 'Get details'. It adds context about the specific resource (PTAB trial) and the expected ID format (e.g., 'IPR2025-01319'). No contradictions.

Agents need to know what a tool does to the world before 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, well-front-loaded sentence of 12 words with no extraneous content. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with one parameter. Description lacks details on return format, but given the low complexity, it is largely sufficient. Could be improved by noting what 'details' include.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameter description includes an example. The description repeats the same example, adding no new semantic information. 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?

Description clearly states the action ('Get details'), resource ('PTAB trial proceeding'), and scope ('by trial number') with an example. This distinguishes it from sibling tools like uspto_ptab_proceedings (list) or uspto_ptab_decisions (decisions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., for searching proceedings or obtaining decisions). The agent must infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_ptab_proceedingsB
Read-only

Search PTAB (Patent Trial and Appeal Board) trial proceedings - IPR, PGR, CBM, and derivation proceedings. Search by trial number, patent owner, petitioner, technology center, status, or date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query - e.g. 'trialMetaData.trialTypeCode:IPR', 'patentOwnerData.patentOwnerName:Apple'
filtersNoArray of filters as 'field value' - e.g. ['trialMetaData.trialTypeCode IPR', 'patentOwnerData.technologyCenterNumber 3700']
range_filtersNoArray of range filters as 'field from:to' - e.g. ['trialMetaData.petitionFilingDate 2023-01-01:2024-12-31']
sortNoSort as 'field order' - e.g. 'patentOwnerData.technologyCenterNumber desc'
fieldsNoFields to include in response
offsetNoStarting position (default 0)
limitNoResults per page (default 25)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint: true, and the description describes a search operation, which is consistent. The description adds no additional behavioral traits beyond what annotations provide (e.g., no mention of pagination, rate limits, or data freshness).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy, front-loaded with key purpose. Efficient and focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 7 parameters and no output schema. The description covers the basic purpose but lacks details on pagination, query syntax nuances, or result structure. With high schema coverage, it is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description lists search criteria but does not add new meaning beyond the schema. 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 states the tool searches PTAB trial proceedings and lists types (IPR, PGR, CBM, derivation) and search criteria (trial number, patent owner, etc.). It is specific but does not explicitly differentiate from sibling tools like uspto_ptab_proceeding_details or uspto_ptab_decisions.

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 search examples but offers no guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions. Lacks explicit context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uspto_search_applicationsA
Read-only

Search USPTO patent applications using ODP query syntax (POST). The q param supports opensearch DSL: boolean (AND/OR/NOT), wildcards (* ?), exact phrases (""), field:value, ranges ([from TO to]), comparisons (>=600). Filters narrow results by field value. Range filters narrow by date/number range. All params are optional -- an empty search returns recent applications.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query - e.g. 'applicationMetaData.applicationTypeLabelName:Utility', 'applicationNumberText:14412875', free text 'machine learning', or 'applicationMetaData.filingDate:[2024-01-01 TO 2024-12-31]'
filtersNoArray of filters as 'field value1,value2' strings - e.g. ['applicationMetaData.applicationTypeCode UTL,DES', 'applicationMetaData.entityStatusData.businessEntityStatusCategory Small']. Each entry adds an AND-combined filter; multiple values within a filter act as OR.
range_filtersNoArray of range filters as 'field from:to' strings - e.g. ['applicationMetaData.grantDate 2020-01-01:2024-12-31', 'applicationMetaData.applicationStatusCode 150:200']. Valid for date and number fields only.
sortNoSort as 'field order' - e.g. 'applicationMetaData.filingDate desc'. Default: filingDate desc. Text fields cannot be sorted.
fieldsNoFields to include in response - e.g. ['applicationNumberText', 'applicationMetaData.patentNumber', 'applicationMetaData.filingDate']. Omit for all fields. Supports wildcards like '*Date*'.
offsetNoStarting position (default 0)
limitNoResults per page (default 25)
facetsNoFields to aggregate - e.g. ['applicationMetaData.applicationTypeLabelName', 'applicationMetaData.applicationStatusCode']. Text fields not supported.

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. The description adds value by detailing query syntax, optional parameters, and default behavior (empty search returns recent applications). 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 two sentences, front-loaded with purpose and key query details. Every sentence adds value 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?

Given no output schema, the description covers query capabilities, optional parameters, and default behavior. It lacks detail on response format or data structure, but for a search tool this is adequate.

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% with descriptions for each parameter. The description adds meaning beyond schema by explaining the query DSL, filter structures, and optionality, though it could further clarify parameter interactions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 searches USPTO patent applications using ODP query syntax, specifying the resource and action. It distinguishes from siblings like uspto_application_details by focusing on search and query capabilities.

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 for searching applications but does not explicitly state when to use this tool over alternatives or mention any exclusions. Siblings include other USPTO tools with overlapping functionality, yet no comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wb_compareA
Read-only

Compare a World Bank indicator across multiple countries. Great for 'How does US compare to...' questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
indicatorYesIndicator code
countriesYesSemicolon-separated ISO2 codes: 'US;GB;DE;JP;CN'
date_rangeNoYear range: '2015:2024'. Default: last 5 years

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'compare' which aligns with the readOnlyHint annotation (true). No additional behavioral details beyond what annotations provide. Since annotations already indicate read-only, the description adds minimal value but does not contradict.

Agents need to know what a tool does to the world before 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 plus a use-case phrase, with no wasted words. It efficiently communicates the core purpose.

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 compare tool with no output schema, the description is marginally adequate. It does not explain return format or quirks, but the schema covers parameters. With no nested objects or enums, the complexity is low, so this is 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?

All three parameters have descriptions in the input schema (100% coverage). The description adds no further parameter-specific meaning beyond the schema. Baseline score of 3 is appropriate as schema already documents parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: compare a World Bank indicator across multiple countries. The verb 'compare' and resource 'World Bank indicator across multiple countries' are specific. It distinguishes from sibling tools like wb_indicator (single indicator) and wb_search (search indicators).

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 use case: 'Great for How does US compare to... questions.' This implies when to use but lacks explicit when-not-to-use or alternatives. Given sibling tools exist for single-country or search scenarios, some guidance is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wb_countriesA
Read-only

List World Bank countries with region, income level, and capital city.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, confirming safety. Description adds that it returns specific fields but does not mention any potential size or rate limits. Sufficient for a simple read operation.

Agents need to know what a tool does to the world before 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, concise sentence that starts with the action verb 'List'. No redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and simple output, the description adequately conveys purpose and output fields. Could be more explicit about the output structure, but fine given 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?

No parameters exist; schema coverage is 100%. Description adds meaning by listing the returned fields (region, income level, capital city), which is beyond the empty 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 clearly states the tool lists World Bank countries and specifies the included fields (region, income level, capital city). It distinguishes from sibling tools like wb_indicator, wb_search, and wb_compare by focusing on a static list.

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 guidance on when to use or alternatives, but the simplicity and no-parameter design imply it is for retrieving the full country list. Sibling tool names provide implicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wb_indicatorB
Read-only

Get a World Bank indicator for a country. Popular: NY.GDP.MKTP.CD (GDP), SP.DYN.LE00.IN (life expectancy), SH.XPD.CHEX.PC.CD (health spend/capita), SL.UEM.TOTL.ZS (unemployment)

ParametersJSON Schema
NameRequiredDescriptionDefault
indicatorYesIndicator code, e.g. 'NY.GDP.MKTP.CD'
countryNoISO2 code: US, GB, DE, JP, CN. Default: US
date_rangeNoYear range: '2015:2024' or single year '2024'. Default: last 10 years

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, so the read-only nature is clear. The description adds no further behavioral context such as auth requirements, rate limits, or what happens on missing indicators. It is adequate but does not exceed 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?

The description is two sentences, very concise, and front-loaded with the purpose. No superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with 3 parameters and no output schema. The description covers the main purpose and gives examples, but lacks information about the output format or structure (e.g., time series data). It is minimally complete.

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. The description adds value by listing popular indicator codes with their meanings, helping users understand typical inputs. However, it does not explain the country or date_range formats beyond what the schema descriptions already state.

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 'Get a World Bank indicator for a country', specifying the verb and resource. It provides popular indicator examples, but does not explicitly differentiate from sibling tools like wb_search, wb_compare, or wb_countries.

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 does not provide any guidance on when to use this tool versus alternatives (e.g., wb_search, wb_compare). No when-to-use or when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation4/5

Tools are organized with source prefixes (e.g., bea_, cdc_, congress_), making them distinct across agencies. Within each source, tools have clear roles, but minor overlap exists (e.g., fda_drug_counts vs. fda_count). Descriptions are detailed, aiding differentiation.

Naming Consistency3/5

Naming conventions vary across sources; some use snake_case with verb_noun patterns (e.g., bea_gdp_national), others use noun phrases (e.g., fr_agencies). Within each source, naming is consistent, but the lack of a uniform pattern across the server reduces consistency.

Tool Count2/5

With 324 tools, the server is overly broad for a single MCP server. While it covers many domains, the sheer number is overwhelming and suggests it should be split into smaller, focused servers. Most users would only need a subset.

Completeness4/5

The server covers an extensive range of US government data (economics, health, crime, education, energy, etc.) with deep coverage in many areas (e.g., Congress, FDA, EPA). Minor gaps exist (e.g., World Bank tools are sparse), but overall surface is impressively comprehensive.

Maintenance

ActivityInactive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides access to 7 free government and open data APIs including NOAA weather, US Census demographics, NASA imagery, World Bank economics, Data.gov, and EU Open Data through 22 specialized tools, with most requiring no API keys.
    22
    3
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Query 20 structured datasets from AI agents — healthcare providers (9M NPI records), SEC EDGAR filings, PACER federal courts, USPTO patents and trademarks, OFAC sanctions screening, crypto whale wallets, DeFi liquidation signals, Polymarket smart money, economic indicators (FRED/BLS), federal contracts, NOAA weather, and OTC shell risk scoring. Pay per query, no subscriptions
    75
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    The most comprehensive keyless federal-data MCP server. 36 tools for SAM.gov + USAspending + Federal Register + eCFR + Grants.gov. No API key, no registration, no signup. Works in Claude Desktop, Claude Code, Codex CLI, Cursor, Continue, Gemini CLI, and any MCP-aware host.
    36
    100
    107
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lzinga/us-gov-open-data-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server