LiveDataLink
Server Details
291 public-data tools across 59 domains; source freshness varies. Free tier.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- blackboxfoundry/livedatalink
- GitHub Stars
- 0
- Server Listing
- LiveDataLink
Available Tools
294 toolsair_qualityARead-onlyIdempotentInspect
Get current air quality data for any location. Returns US AQI index, PM2.5, PM10, ozone, NO2, SO2, and CO levels with health category rating. Use this for 'what's the air quality?', 'is it safe to go outside?', 'pollution levels', 'AQI in Los Angeles', 'should I wear a mask?', 'is there smoke in the air?', or any air quality or pollution question.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City, zip code, or place name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, open-world, and non-destructive. The description adds behavioral detail by stating the response includes a health category rating and specific pollutant levels, which helps the agent set expectations about live, current measurements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and return data, then gives a practical set of example queries. The list of query phrasings is slightly redundant near the end, but overall it is crisp and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with strong annotations and a complete schema, the description covers what data is returned and the kinds of questions it answers. It does not discuss data freshness, units, or coverage limitations, but these are minor gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the single 'location' parameter as 'City, zip code, or place name' with 100% coverage. The description's examples reinforce that location can be a place name like Los Angeles, but it does not add meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('current air quality data'), and enumerates the exact data returned (US AQI, PM2.5, PM10, ozone, NO2, SO2, CO, health category). It is immediately distinguishable from weather, health, or pollution-related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit natural-language triggers ('what's the air quality?', 'is it safe to go outside?', 'AQI in Los Angeles') and states to use it for 'any air quality or pollution question.' It does not name alternatives or exclusion cases, but the guidance is clear enough for an agent to select this tool confidently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bank_health_reportARead-onlyIdempotentInspect
One-call financial-health read for a US bank or savings institution. Give a bank name or an FDIC certificate (CERT) number. Joins FDIC BankFind institution + financials (total assets, deposits, net income, return on assets/equity, active-vs-failed status) with the CFPB Consumer Complaint Database (complaint volume and top complaint products for the matched company) into a HEALTHY / STABLE / WATCH / FAILED read with the numbers behind it. FDIC is the primary signal; CFPB complaint data is best-effort and degrades gracefully if the bank's complaint records cannot be matched. Useful for picking a sponsor/partner bank, treasury counterparty checks, or deposit-safety questions. Informational, not a rating or advice.
| Name | Required | Description | Default |
|---|---|---|---|
| bank | No | Bank or savings institution name (e.g. 'JPMorgan Chase Bank', 'Cross River Bank'). Use the full legal name for best matching. | |
| cert | No | Optional FDIC certificate (CERT) number for an exact institution match, used instead of a name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnly/idempotent annotations already covering safety, the description adds behavioral nuance beyond structured data: 'FDIC is the primary signal; CFPB complaint data is best-effort and degrades gracefully if the bank's complaint records cannot be matched,' plus the explicit 'not a rating or advice' boundary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core purpose, and each sentence pulls weight (data sources, output, fallback, use cases). It loses a point for restating parameter guidance already present in the schema, making it slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still communicates the returned read's contents: the category label, underlying financial metrics, complaint volume/products, and graceful degradation. The use-case and disclaimer sentences close the remaining selection and invocation questions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both params and the full-legal-name matching tip. The description's 'bank name or FDIC certificate (CERT) number' reinforces the one-of relationship but adds little beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('financial-health read'), a specific resource ('US bank or savings institution'), and concrete output categories (HEALTHY/STABLE/WATCH/FAILED). The explicit FDIC + CFPB join distinguishes it from sibling FDIC-only and CFPB-only tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases (sponsor/partner bank selection, treasury counterparty checks, deposit-safety questions) and frames the tool as a one-call read, which implies when it is appropriate. However, it never names alternatives or says when-not-to-use it, so the guidance is clear but not fully exclusionary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
beneficial_owner_screenARead-onlyIdempotentInspect
One-call KYB/AML ownership-chain sanctions screen: answers the real question 'is anyone in this company's ownership chain sanctioned?', not just 'is the top-level name on a list?'. Give a company name or a 20-character LEI; the tool maps the ownership structure via GLEIF (keyless CC0 reference data) - the subject entity, its ULTIMATE parent (top of the chain), and its reported direct subsidiaries, capped at about 15 entities so a broad group stays bounded - then SCREENS each entity in that set against the local sanctions/watchlist matcher (OFAC SDN / EU / UN / BIS), the same first-party matcher company_trust_check uses. Returns the mapped ownership structure, a per-entity CLEAR / HIT result (each hit naming the matched list entry, source, and score), and an overall verdict: CLEAR (no entity matched) vs HITS-FOUND (at least one entity in the chain matched). This catches a sanctioned parent or subsidiary that screening only the counterparty name would miss - the exposure beneficial-ownership rules target. Best-effort: if GLEIF hops fail the subject is still screened; if the sanctions binding is unavailable the screen is noted as unavailable, never silently passed. Only relationships an entity self-reports to GLEIF are shown. A name match is not proof of identity and must be cleared. Informational public-record synthesis, not legal, compliance, or sanctions-clearance advice.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Optional exact 20-character LEI code to anchor the ownership chain directly (e.g. '5493006MHB84DD0ZWV18'). Overrides a name search. | |
| company | No | Company / organization name (e.g. 'Alphabet Inc.', 'JPMorgan') or a 20-character LEI code. Provide this or 'lei'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/openWorld/idempotent annotations: it discloses the GLEIF mapping approach, the ~15 entity cap, the sanctions sources screened, best-effort failure behavior, that only self-reported GLEIF relationships are shown, and that name matches are not proof of identity. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, the description is dense with non-redundant information and every sentence earns its place: purpose, method, scope, failure behavior, return contents, and caveats. The core value proposition is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what the tool returns: mapped ownership structure, per-entity CLEAR/HIT results with matched list entry/source/score, and an overall verdict. It also covers edge cases like GLEIF failure and unavailable sanctions binding, making it practically complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents both parameters. The description adds meaningful semantics on top: the LEI must be 20 characters, an LEI can be supplied via either field, and the lei parameter overrides a name search. This helps the agent disambiguate parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a one-call KYB/AML ownership-chain sanctions screen. It clearly frames the real question being answered and distinguishes itself from a simple top-level-name list check, which separates it from related screening and lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when this tool is valuable: when ownership-chain exposure must be caught beyond screening only the counterparty name. It references the same matcher as company_trust_check and notes GLEIF-based mapping, giving useful context, though it does not explicitly enumerate sibling alternatives or state hard 'do not use when' conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bls_indicatorARead-onlyIdempotentInspect
US labor & price statistics from the Bureau of Labor Statistics by friendly name. Available: unemployment_rate, labor_force_participation, employment_population_ratio, cpi, cpi_less_food_energy, nonfarm_payrolls, avg_hourly_earnings, avg_weekly_hours, ppi_final_demand. Returns a monthly time series. Keyless official BLS data.
| Name | Required | Description | Default |
|---|---|---|---|
| end_year | No | End year (optional; defaults to current year). | |
| indicator | No | Indicator name, one of: unemployment_rate, labor_force_participation, employment_population_ratio, cpi, cpi_less_food_energy, nonfarm_payrolls, avg_hourly_earnings, avg_weekly_hours, ppi_final_demand. | |
| start_year | No | Start year (optional; defaults to ~3 years back). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds useful context beyond those annotations: no API key is needed and the result is a monthly time series. It does not mention possible data revisions or lags, but the annotation-covered safety profile lowers the burden and the added details are meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences: a scoped subject, a concise indicator list, and a useful return/auth note. Every sentence earns its place and the most important identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with three optional parameters and no output schema, the description conveys the domain, supported indicators, monthly frequency, and keyless access. It could specify the exact time-series shape or units, but it is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters already documented including defaults and the full indicator enumeration. The description restates the indicator list but adds no extra semantics such as date formats, units, or interactions between start_year and end_year.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the data source (Bureau of Labor Statistics), the domain (US labor and price statistics), and the supported friendly-name indicators. It lacks an explicit action verb like 'get' or 'fetch' and does not explicitly distinguish itself from the sibling bls_series tool, so it falls just short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives like bls_series or FRED tools. The phrase 'by friendly name' and the indicator list imply the use case, but the description never states when not to use it or what to use instead for raw BLS series or different datasets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bls_seriesARead-onlyIdempotentInspect
Fetch any BLS time series by its raw series ID (e.g. 'LNS14000000' for the unemployment rate, or a state/industry series). For when you know the exact BLS series ID.
| Name | Required | Description | Default |
|---|---|---|---|
| end_year | No | End year (optional). | |
| series_id | Yes | BLS series ID, e.g. 'LNS14000000'. | |
| start_year | No | Start year (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description's 'Fetch' aligns as a safe read operation. The description adds no behavioral caveats such as output format, rate limits, or year-range constraints, so it only mildly extends what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the action and example front-loaded, followed by the exact-ID selection criterion. No filler, fluff, or redundant restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only fetch with one required parameter and clearly documented optional years, selection and invocation are well covered. With no output schema, the response shape is left unstated, but the description still provides enough for correct tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with series_id, start_year, and end_year already described. The description repeats an example ID also found in the schema and does not clarify year range behavior, so it meets the baseline without adding meaningful parameter insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Fetch any BLS time series by its raw series ID', which is a specific verb, resource, and exact input. The examples and the 'when you know the exact BLS series ID' clause distinguish it from lookup or search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly identifies the right condition: use when the exact BLS series ID is known. It does not name sibling alternatives or provide a when-not, so exclusions are left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_detailsARead-onlyIdempotentInspect
Get full catalog metadata for a single book by its Project Gutenberg id (title, authors, subjects, languages, copyright, download count, and whether its full text is indexed here).
| Name | Required | Description | Default |
|---|---|---|---|
| gutenberg_id | Yes | Project Gutenberg ebook id, e.g. 84 (Frankenstein). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds value by disclosing the concrete return fields, including the notable 'whether its full text is indexed here' behavior, which is not inferable from the input schema. It does not cover not-found or error behavior, but the annotation coverage lowers that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with the field list in a parenthetical. There is no filler, no repetition of schema details, and every phrase contributes to understanding what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup with strong annotations, the description is complete: it identifies the required input and the full set of returned metadata fields. Since there is no output schema, the description appropriately carries the return-value information needed by the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents gutenberg_id with 100% coverage and a concrete example ('84 (Frankenstein)'). The description only restates that the parameter is a Project Gutenberg id and adds no additional syntax or format details, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get full catalog metadata for a single book by its Project Gutenberg id.' It enumerates the exact metadata fields, making it clearly distinguishable from sibling tools like book_search, book_get_text, and book_fulltext_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this when you already have a Gutenberg id and need catalog metadata for one book. It does not explicitly name alternatives or exclusions, but the 'single book by id' framing is sufficient to differentiate it from search and text-retrieval siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_fulltext_searchARead-onlyIdempotentInspect
Search INSIDE the indexed corpus of top public-domain books for a phrase or keywords and get back the matching passages, each with the book title, author, and a snippet around the match. This is the headline feature: agents can find where a passage appears across great books. Optionally restrict to one book by gutenberg_id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum passages to return (default 10, max 50). | |
| query | Yes | Phrase or keywords to find inside the books, e.g. 'it was the best of times', 'whale'. | |
| gutenberg_id | No | Optional: restrict the search to a single indexed book by its Gutenberg id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds useful context beyond annotations: the corpus is indexed public-domain books, results include title/author/snippet, and search can be narrowed to one book. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the action verb front-loaded ('Search INSIDE...'). The phrase 'headline feature' adds minor positioning context, but every sentence otherwise earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the return shape (matching passages with title, author, snippet) and the scope of the corpus. It does not mention no-results behavior or pagination, but limit defaults are documented in the schema and the overall behavior is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description, including examples for query. The description only restates the gutenberg_id restriction role and adds little semantic value beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search INSIDE the indexed corpus of top public-domain books') and the exact output ('matching passages, each with the book title, author, and a snippet'). It clearly distinguishes itself from siblings like book_search and book_get_text by emphasizing passage-level full-text search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case explicit: find where a passage or phrase appears across books, with optional restriction to a single book via gutenberg_id. It does not name alternative sibling tools or state when not to use it, but the context is clear enough for an agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_get_textARead-onlyIdempotentInspect
Return the full text of an indexed book by Gutenberg id, paginated by passage. Use from_seq + max_passages to page through it. For books in the catalog that are NOT indexed locally, returns the public gutenberg.org plain-text URL so the agent can fetch it directly.
| Name | Required | Description | Default |
|---|---|---|---|
| from_seq | No | Passage index to start from (0-based, default 0). | |
| gutenberg_id | Yes | Project Gutenberg ebook id. | |
| max_passages | No | Maximum passages to return per call (default 40, max 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent. The description adds meaningful behavioral context beyond those annotations: results are paginated by passage, and non-indexed books return a gutenberg.org URL instead of text, which is an important non-obvious fallback behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: the first states the core operation, the second gives the pagination pattern, and the third covers the fallback case. No filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description still explains both return modes: paginated text passages for indexed books and a plain-text URL for non-indexed books. It is sufficient for correct invocation, though a bit more detail about what constitutes a 'passage' would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters at 100% coverage, so baseline is 3. The description adds value by explaining the pagination relationship between from_seq and max_passages and by tying gutenberg_id to the indexed-versus-URL fallback behavior, which the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Return the full text of an indexed book by Gutenberg id'. It also clarifies the pagination model and the fallback behavior for non-indexed books, which distinguishes it from search-oriented siblings like book_fulltext_search and book_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives direct usage guidance: 'Use from_seq + max_passages to page through it' and explains the alternate path for unindexed books by returning a URL. It does not explicitly name sibling alternatives or state when not to use this tool, but the context is clear for this retrieval action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_searchARead-onlyIdempotentInspect
Search the full Project Gutenberg catalog (~78,500 public-domain books) live via Gutendex by title / author / subject keyword, with optional author, subject, and language filters. Ranked by keyword relevance then download popularity. Returns each book's Gutenberg id, title, author(s), language, and download count. Use book_fulltext_search to search inside the locally indexed top books.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Title / author / subject keyword, e.g. 'frankenstein', 'sherlock holmes', 'astronomy'. | |
| author | No | Optional author-name fragment, e.g. 'Shelley', 'Twain'. | |
| subject | No | Optional subject fragment, e.g. 'Science fiction', 'Detective'. | |
| language | No | Optional language code filter, e.g. 'en', 'fr'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the description adds useful behavioral context beyond them: live Gutendex source, ranking by keyword relevance then download popularity, and the exact fields returned. This gives the agent a strong sense of what the tool will do and what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three dense sentences with no filler. The core search scope and filters come first, followed by ranking behavior, return fields, and the sibling-tool routing at the end. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by listing the returned fields. It also explains scope, source, ranking behavior, and the relevant alternative tool. For a search tool with optional filters and safety annotations, this is complete enough for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented with examples and defaults. The description mostly restates that query accepts title/author/subject keywords and that author, subject, and language are optional filters, without adding significant new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search the full Project Gutenberg catalog') with a clear resource, scope, and method (Gutendex). It explicitly distinguishes itself from book_fulltext_search by naming that sibling and clarifying the different search domain (metadata vs full text).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use book_fulltext_search when the task is to search inside book text, providing a clear routing rule. It also characterizes book_search as a live catalog search, so an agent can infer when this tool is appropriate versus sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_statusARead-onlyIdempotentInspect
Report the books store status: the catalog is served live via Gutendex (78,000+ books), plus the local D1 indexed-corpus counts (books with full text indexed, total indexed passages, last refresh timestamp).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context beyond annotations by clarifying that the catalog is served live via Gutendex and that the D1 counts are local indexed-corpus statistics, including the last refresh timestamp. This helps the agent understand what data source and freshness semantics to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose ('Report the books store status') before listing the key data components. Every element adds value: data source, scale, indexed-corpus metrics, and refresh timestamp. There is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status-reporting tool, the description is complete. It tells the agent what to expect in the response: live catalog availability, indexed corpus counts, total passages, and last refresh timestamp. No output schema is present, but the description compensates well by outlining the return categories. No additional context seems necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. There are no parameter semantics to explain, and the description appropriately focuses on the output content instead. Because there is no input schema burden, the description does not need to compensate for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and a clear resource ('books store status'), then enumerates exactly what the status contains: live Gutendex catalog, local D1 indexed-corpus counts, and last refresh timestamp. This clearly distinguishes it from sibling book tools like book_search, book_details, and book_fulltext_search, which operate on individual books or search results rather than the store's health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to use when an agent needs a high-level status or health summary of the books store, rather than specific book content. However, there is no explicit when-to-use guidance, no mention of when not to use it, and no reference to alternative sibling tools. The usage intent is clear enough but left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bounce_scannerARead-onlyIdempotentInspect
Screen one or more US tickers for a mean-reversion 'bounce' setup on daily bars: price near support (recent pivot low) or the moving average, RSI oversold and turning up, a bullish latest candle, and volume at/above its recent average. Returns per-symbol {isBounce, score 0-100, reasons, price, rsi, distanceToSupportPct, supportLevel}. ALL thresholds are tunable inputs (rsi_threshold, ma_period, proximity_pct, lookback_days) so calibration is a parameter change. HEURISTIC signal for research, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | A single ticker (e.g. 'AAPL'). Use this or `symbols`. | |
| symbols | No | Multiple tickers to scan (max 15). | |
| ma_period | No | Simple moving-average period used as a dynamic support reference (default 50). | |
| lookback_days | No | Trailing daily bars to analyze (default 180). | |
| proximity_pct | No | How close (percent) price must be to support/MA to count as 'near' (default 3). | |
| rsi_threshold | No | RSI(14) must be at or below this to qualify as oversold (default 35). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond that: it is a heuristic research signal, not investment advice; all thresholds are tunable parameters; and the per-symbol return fields are enumerated. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero filler: strategy conditions, output format, tunability, and disclaimer all fit naturally. The core action is front-loaded, and every sentence carries distinctive information. This is appropriately dense rather than bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though there is no output schema, the description lists the exact return fields and explains the strategy criteria, threshold tunability, and heuristic nature. All six parameters are documented in the input schema, and the intended ticker scope (US, daily bars) is explicit. An agent has enough information to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 because the schema already documents each parameter. The description adds extra meaning by explicitly labeling rsi_threshold, ma_period, proximity_pct, and lookback_days as tunable thresholds and explaining that calibration is achieved through parameter changes. This links the parameters directly to the strategy logic beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Screen one or more US tickers') and a clearly defined resource/strategy: a mean-reversion 'bounce' setup with explicit conditions (near support/MA, RSI oversold and turning up, bullish latest candle, volume at/above average). It also specifies the exact output shape, which leaves no ambiguity about what the tool does. The definition is distinctive enough to be separated from siblings like candlestick_signals or support_resistance_levels without reading their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when screening US tickers for daily-bar mean-reversion bounce setups. It does not explicitly name alternative tools or state when not to use it, but the strategy-specific wording makes the intended use obvious. It stops short of a 5 because no explicit 'use X instead when...' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candlestick_signalsARead-onlyIdempotentInspect
Detect classic candlestick patterns on a ticker's recent daily bars: hammer, inverted hammer, bullish/bearish engulfing, doji, morning/evening star, and shooting star. Returns each detected pattern with {pattern, date, direction (bullish/bearish/neutral), barIndex}. HEURISTIC pattern detection with conservative default thresholds; for research, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | US ticker (e.g. 'MSFT'). | |
| lookback_days | No | Trailing daily bars to scan for patterns (default 60). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive nature, lowering the bar. The description adds important behavioral context by flagging HEURISTIC detection with conservative default thresholds and stating the tool is for research, not investment advice. This helps the agent temper expectations about precision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first delivers the core action, pattern list, and return shape; the second adds a necessary heuristic caveat. No filler, and the most important identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description's explicit return-field list ({pattern, date, direction, barIndex}) is valuable. It covers the essentials for a simple read-only scanner, though it could mention edge cases or the meaning of barIndex more explicitly. Overall, it is sufficiently complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents symbol and lookback_days. The description does not add substantial parameter-level detail beyond reaffirming the daily-bar scope, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Detect'), a specific resource ('classic candlestick patterns on a ticker's recent daily bars'), and enumerates the exact patterns covered. It also specifies the return fields, making the tool's purpose unambiguous and clearly distinct from siblings like stock_history or support_resistance_levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (recent daily bars, research-oriented) and adds a 'not investment advice' caveat, but it does not explicitly say when to prefer this tool over similar technical-analysis siblings like support_resistance_levels or bounce_scanner. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cargo_crateARead-onlyIdempotentInspect
Look up a Rust crate on crates.io: latest version, description, total downloads, repository, and homepage. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Crate name, e.g. 'serde'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds 'Keyless' to clarify that no authentication is required, which is valuable operational context. It also lists the response content, partially compensating for the absence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. The lookup target and returned fields are front-loaded, and the 'Keyless' note is a concise, useful addition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only lookup with no output schema, this description is complete: it identifies the source platform, the input semantics, the returned fields, and the authentication requirement. Nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single 'name' parameter with an example. Schema description coverage is 100%, so the baseline is 3. The description adds context by specifying 'Rust crate' and 'crates.io', but it does not materially deepen parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Look up a Rust crate on crates.io', which clearly distinguishes it from sibling package lookup tools like npm_package and pypi_package. It also enumerates the exact returned fields, so an agent knows what this tool provides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the context for use: any time a Rust crate's metadata from crates.io is needed. It does not explicitly name alternatives or exclusions, but the platform and language are explicit enough to guide selection among package-oriented siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carrier_monitor_recheckARead-onlyIdempotentInspect
Recheck an existing carrier snapshot and identify meaningful changes since the previous check. Accepts a DOT/MC/name plus the prior result or snapshot as previous_snapshot, then compares authority, identity, insurance summary, BASIC alerts, crashes, out-of-service indicators, safety rating, and verdict. Returns unchanged/changed status, a severity, field-level changes, and the next reviewer action. Store the returned current_snapshot in your own system and call this on a schedule; LiveDataLink does not silently retain customer watchlists.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC/MX number. Accepts 123456 or MC-123456. | |
| dot | No | USDOT number (preferred). Accepts 3405079 or USDOT 3405079. | |
| name | No | Carrier legal name when DOT/MC is unavailable. | |
| format | No | Report format. Defaults to markdown. | |
| previous_snapshot | No | Prior carrier_vetting result or JSON snapshot returned by an earlier call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the description's job is to add context beyond that. It does so by disclosing the important behavioral trait that LiveDataLink does not silently retain customer watchlists, plus the compare fields and return shape. No contradiction with annotations; 'recheck' is consistent with a non-destructive, idempotent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: purpose, inputs, comparison fields, return values, and the storage/scheduling caveat. It is front-loaded with the core purpose and organized logically, though it could be tightened slightly without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters and no output schema, the description compensates by specifying exactly what the tool returns (unchanged/changed status, severity, field-level changes, next reviewer action). It also covers the operational requirement for the agent to store snapshots. Minor gaps like error handling or refresh timing are not critical for a read-only recheck tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds modest value by emphasizing that previous_snapshot is the prior result or snapshot required for comparison and that DOT/MC/name are identifiers, but it does not substantially enrich the parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Recheck') with a specific resource ('existing carrier snapshot') and states the precise goal: identify meaningful changes since the previous check. It clearly lists what is compared and what is returned, making it readily distinguishable from sibling tools like carrier_vetting_batch or fmcsa_carrier_lookup, which perform initial checks or lookups rather than repeat comparisons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit operational context: store the returned current_snapshot yourself, call the tool on a schedule, and rely on it to detect changes over time. It stops short of naming alternatives or stating when not to use it, but the intended usage pattern 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.
carrier_vetting_batchARead-onlyIdempotentInspect
Vet a batch of up to 10 US motor carriers by USDOT number in one workflow call. Returns one GO/CAUTION/NO-GO result per carrier, source coverage and failures, key authority/insurance/safety signals, and an export in markdown (default), JSON, or CSV. Each submitted carrier uses one query from your plan because each is evaluated independently. Use this to screen a broker's candidate list or lane roster; one missing or unavailable record does not hide the others. This is an analytical aid, not a substitute for direct FMCSA verification.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export format. Defaults to markdown. | |
| dot_numbers | Yes | 1-10 USDOT numbers. A comma-separated string is also accepted for agent convenience. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the readOnly/idempotent annotations: each carrier consumes one plan query, carriers are evaluated independently, missing records do not hide others, and outputs include source coverage and failures. It also includes the important caveat that this is 'an analytical aid, not a substitute for direct FMCSA verification.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly written with no filler. It front-loads the core action and scope, then covers outputs, usage, plan cost, resilience, and limitations in three efficient sentences. Every sentence contributes to agent decision-making.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by listing what is returned (status per carrier, source coverage, failures, authority/insurance/safety signals, export formats). It also covers usage context, plan cost, and reliability behavior, making it complete enough for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description reinforces the 1-10 batch limit and the convenience of comma-separated strings, but adds little semantic meaning beyond the schema. This 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('Vet'), resource ('US motor carriers by USDOT number'), and scope ('up to 10... in one workflow call'). It also describes the key output (GO/CAUTION/NO-GO per carrier), making its purpose distinct from single-carrier siblings like carrier_vetting_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool: 'Use this to screen a broker's candidate list or lane roster.' It notes the batch behavior and resilience to missing records. It does not explicitly name sibling alternatives or when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carrier_vetting_evidence_packARead-onlyIdempotentInspect
Produce an auditable Carrier Vetting Pack for a freight broker. Resolve a US motor carrier by USDOT, MC, or legal name, then return the GO/CAUTION/NO-GO verdict, the exact FMCSA authority/insurance/safety evidence, sanctions/court/federal-award checks, source coverage and failures, retrieval timestamp, primary-source links, a versioned evidence receipt fingerprint, and a broker follow-up checklist. The receipt helps detect accidental changes after export; it is not tamper-proof storage or a compliance certification. This is the evidence-first companion to carrier_vetting_score: use it when a human reviewer needs to save or forward the record. It is an analytical aid, not a substitute for direct FMCSA insurance and authority verification.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC/MX number. Accepts 123456 or MC-123456. | |
| dot | No | USDOT number (preferred). Accepts 3405079 or USDOT 3405079. | |
| name | No | Legal carrier name when DOT/MC is unavailable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/openWorld/idempotent/non-destructive, and the description adds behavioral nuance beyond them: the versioned receipt fingerprint only 'helps detect accidental changes after export' and is explicitly not tamper-proof or a certification. It also discloses that the pack reports 'source coverage and failures', signaling that results may be incomplete, which aligns with openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each earning its place: output list, receipt caveat, sibling routing, and compliance disclaimer, with the purpose front-loaded. The enumerative middle sentence is long, but it compensates for the absent output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return content, and it fully enumerates the verdict, FMCSA evidence, sanctions/court/award checks, source coverage and failures, timestamp, links, fingerprint, and follow-up checklist. Input resolution options and limitations are also covered, so nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: mc, dot, and name each carry format examples, and dot is marked preferred. The description adds only that resolution proceeds 'by USDOT, MC, or legal name', which restates the schema; with full coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Produce an auditable Carrier Vetting Pack for a freight broker' — and enumerates the exact verdict and evidence contents. It explicitly differentiates from the sibling carrier_vetting_score by calling itself the 'evidence-first companion' for saving or forwarding the record, so an agent can tell them apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the alternative carrier_vetting_score and gives the selection condition: use this tool when a human reviewer needs to save or forward the record. It also states the when-not cases — 'not tamper-proof storage or a compliance certification' and 'not a substitute for direct FMCSA insurance and authority verification' — leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carrier_vetting_scoreARead-onlyIdempotentInspect
Vet a US motor carrier (trucking company) for a freight-brokerage review, in one call. Give a USDOT number, MC number, or carrier name. Joins FMCSA public safety data (operating authority, insurance on file, crash and out-of-service history vs the national average, safety rating, and CSA BASIC indicators where FMCSA publishes them) with sanctions screening (OFAC/UN/EU/BIS on the carrier's legal name), federal-court litigation history (CourtListener), and USAspending federal awards. Returns a GO / CAUTION / NO-GO decision-support result with reasons and the underlying fields. NO-GO is triggered by a sanctions match or lack of active operating authority; CAUTION by published BASIC alerts, fatal crashes, missing required liability insurance, high out-of-service rates, litigation, or an unavailable source. This is an analytical aid, not a substitute for your own carrier-onboarding checks.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC number. Accepts 123456 or MC-123456. | |
| dot | No | USDOT number (preferred). Accepts 76830 or USDOT 76830. | |
| name | No | Carrier legal name, used if no DOT/MC number is given. The top FMCSA name match is vetted; prefer a DOT number for an exact carrier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses the data sources joined, the decision categories, and the precise triggers for NO-GO and CAUTION. It also correctly labels the output as an analytical aid rather than a substitute for onboarding checks, which is meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds essential information: purpose, input options, data sources, output semantics, decision thresholds, and a caveat. It remains front-loaded and structured, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description fully compensates by explaining the return value (GO/CAUTION/NO-GO with reasons and underlying fields) and the conditions that lead to each result. It also covers inputs, data sources, and limitations, so an agent has enough to invoke and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters including accepted formats and the name-match caveat. The description adds a brief restatement of the three input options but no significant new parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb ('Vet'), a specific resource ('US motor carrier... for a freight-brokerage review'), and the 'in one call' qualifier that separates it from batch or evidence-pack siblings. It also names the decision output (GO/CAUTION/NO-GO), making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the intended context: vetting a US motor carrier for a freight-brokerage review, with DOT/MC/name as alternative entry points. It does not explicitly say when to prefer this over carrier_vetting_batch, carrier_vetting_evidence_pack, or fmcsa-specific lookup tools, but the context is clear enough to place it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_case_detailsARead-onlyIdempotentInspect
Get full metadata for a single case by its CAP id (name, citations, court, jurisdiction, decision date, reporter location, and the source URL for its full text).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | CAP case id, e.g. 11301409 (Brown v. Board of Education). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, non-destructive, and open-world. The description adds behavioral clarity by specifying the exact payload fields (name, citations, court, jurisdiction, decision date, reporter location, source URL) and indicating that the full text itself is not returned. No contradiction exists between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence gets straight to the action and resource, with the field list in parentheses. There is no filler or repetition; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only, idempotent lookup with no output schema, the description is complete: it identifies the input and enumerates the expected return fields. An agent can select and invoke the tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage for the single required id parameter, the baseline is 3. The description merely repeats that the lookup is by CAP id and adds no extra format, range, or semantics beyond the schema's example and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get full metadata for a single case by its CAP id.' It enumerates the exact metadata fields returned and clarifies that the full text is only referenced by URL, which distinguishes it from sibling tools like caselaw_opinion_text, caselaw_search, and caselaw_citation_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'single case by its CAP id' gives a clear context for use: an agent should call this when it already has a CAP id and needs the case metadata record. The mention of the source URL for full text implicitly signals that full-opinion retrieval is out of scope, though no sibling tool is explicitly named and no when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_citation_lookupARead-onlyIdempotentInspect
Resolve a reporter citation (e.g. '347 U.S. 483', '347 U. S. 483', '384 U.S. 436') to the case it identifies. Matches official and parallel citations. Returns the case metadata including its CAP id for use with caselaw_opinion_text.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | A reporter citation, e.g. '347 U.S. 483'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior, so the description only needs to add value beyond that. It adds useful behavioral detail: it matches official and parallel citations, tolerates citation variants like '347 U. S. 483', and returns metadata including the CAP id. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the full necessary meaning: purpose, input examples, matching behavior, output, and downstream use. There is no filler, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description is complete: it says what input is expected, what matching behavior occurs, what the return value contains, and how the result connects to caselaw_opinion_text. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single citation parameter with an example, and coverage is 100%. The description enriches the parameter meaning by providing additional format examples and explicitly stating that official and parallel citations are matched, which helps the agent understand acceptable inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Resolve a reporter citation ... to the case it identifies.' It also clarifies that it matches official and parallel citations and returns metadata with a CAP id. It does not explicitly distinguish itself from similar siblings like court_citation_resolver or caselaw_search, though the downstream link to caselaw_opinion_text helps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the intended use case: when an agent has a reporter citation and needs the case identity and CAP id for further caselaw operations. It names the downstream sibling caselaw_opinion_text but does not state when-not-to-use alternatives such as caselaw_search, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_opinion_textARead-onlyIdempotentInspect
Fetch the full opinion text of a case on demand by its CAP id. Text is retrieved live from the public-domain CAP static mirror (not stored), and includes each opinion (majority, dissent, concurrence) with its author. Use max_chars to bound the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | CAP case id (from caselaw_search / caselaw_citation_lookup). | |
| max_chars | No | Maximum total characters of opinion text (default 50000, max 500000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior. The description adds useful context beyond that: text is 'retrieved live from the public-domain CAP static mirror (not stored)' and includes each opinion type with its author, which helps the agent understand what will happen when invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the core action is front-loaded, followed by data-source behavior, output composition, and a parameter-bound usage note. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with rich annotations, this is largely complete: it identifies the input, source, output content, and response bounding. Minor ambiguity remains about the exact return format or behavior when max_chars is exceeded, but no output schema exists to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both id and max_chars are already documented structurally. The description adds only that max_chars bounds the response and that the id is a CAP case id, which does not significantly extend the schema's own parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetch the full opinion text of a case') and the required identifier ('by its CAP id'), making the core purpose clear. It does not explicitly differentiate from siblings like caselaw_case_details or caselaw_search, though 'full opinion text' and 'CAP id' imply a distinct retrieval role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('on demand by its CAP id' and 'Use max_chars to bound the response'), but it does not explicitly state alternatives or when not to use it. The schema's id description points to caselaw_search/caselaw_citation_lookup as sources, but the description itself offers only implied usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_searchARead-onlyIdempotentInspect
Search US court opinions (Caselaw Access Project, public domain) by case name / keyword, court, jurisdiction, and decision-date range. Returns matching case metadata with CAP ids and citations. Use caselaw_opinion_text with a returned id to read the full opinion. Note: v1 index covers the U.S. Reports reporter (official US Supreme Court reporter).
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court-name fragment, e.g. 'Supreme Court'. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Case name or keyword, e.g. 'Brown Board Education', 'Miranda'. | |
| end_date | No | Optional ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Optional ISO date lower bound (YYYY-MM-DD). | |
| jurisdiction | No | Optional jurisdiction fragment, e.g. 'United States'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds meaningful context beyond those: the data is public domain, results include CAP ids and citations, and the v1 index only covers the U.S. Reports reporter. This is valuable behavioral transparency and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: purpose first, then output and next-step guidance, then a critical scope caveat. It is front-loaded and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what is searched, what is returned, how to retrieve full opinions, and a major index limitation. The schema handles parameter details. It stops slightly short of stating whether at least one search criterion is expected or describing the exact result envelope, but for a search tool with strong annotations this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter already described and exemplified. The description adds a useful high-level grouping of filters and the decision-date range concept, but does not need to compensate for missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: searching US court opinions from the Caselaw Access Project by case name, keyword, court, jurisdiction, and date range. It clearly differentiates itself from the sibling caselaw_opinion_text by describing its metadata output and directing the agent to that sibling for full opinion text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit follow-up/alternative: 'Use caselaw_opinion_text with a returned id to read the full opinion.' It also sets expectation with the v1 U.S. Reports coverage note. However, it does not explain when to prefer other sibling search tools such as caselaw_citation_lookup or court_opinion_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_dataset_queryARead-onlyIdempotentInspect
Generic SoQL query against any data.cdc.gov dataset. Use this when none of the curated tools fit. Accepts a 4x4 Socrata ID and a where-clause. SoQL reference: https://dev.socrata.com/docs/queries/
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| order | No | SoQL order clause (e.g. 'date DESC') | |
| where | No | SoQL where clause (e.g. "state='Texas' AND year=2024") | |
| select | No | SoQL select clause (default '*') | |
| dataset | Yes | Socrata 4x4 dataset ID (e.g. 'muzy-jte6') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds context that this is an arbitrary SoQL query against any CDC dataset, but does not mention response shape, pagination, or rate-limit behavior. With annotations carrying the safety burden, this is adequate but not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: the generic scope, the usage rule, and the required input format. The SoQL reference link is useful and placed at the end without disrupting the core guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema coverage, strong annotations, and the inherently flexible nature of a generic query tool, the description is largely complete. The SoQL reference helps fill the gap left by no output schema, though it does not describe expected return format or mention how to discover valid dataset IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all five parameters. The description reinforces that dataset is a 4x4 Socrata ID and mentions where-clause support, but adds no meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Generic SoQL query against any data.cdc.gov dataset.' It also distinguishes itself from siblings by positioning itself as the fallback when 'none of the curated tools fit,' making its role in the tool hierarchy clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it when none of the curated tools fit, which is clear contextual guidance. It does not enumerate specific alternative tools or spell out when not to use it, but the generic-vs-curated distinction is enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_drug_overdose_deathsARead-onlyIdempotentInspect
CDC drug overdose deaths by state and indicator (9j2v-jamp). 12-month rolling counts. Useful for opioid/fentanyl/stimulant policy research and treatment-program siting.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| indicator | No | Drug class (e.g. 'Opioids (T40.0-T40.4,T40.6)', 'Synthetic opioids, excl. methadone (T40.4)') | |
| state_name | No | Full state name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnly, idempotent, and non-destructive behavior. The description adds useful context with '12-month rolling counts' and the dataset ID, which goes beyond the annotations. It does not mention response format, temporal coverage, or pagination behavior, so it adds some but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, and each one earns its place: identifying the dataset, describing the rolling-count aggregation, and stating practical use cases. There is no filler, redundancy, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with three optional parameters and no required inputs, the description covers the subject, dimensions, aggregation, and intended applications. It is missing explicit details like date range or row contents, but given the simple schema and strong annotations, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters: limit, indicator, and state_name. The description merely restates 'by state and indicator' without adding new parameter-level meaning. This matches the baseline where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as 'CDC drug overdose deaths by state and indicator' and adds the dataset ID (9j2v-jamp), making it distinct from related CDC tools. It lacks an explicit verb like 'returns' or 'provides', but the intent is unmistakable. It differentiates well from siblings such as cdc_weekly_deaths_by_state and cdc_leading_causes_of_death.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides use cases ('opioid/fentanyl/stimulant policy research and treatment-program siting'), which imply when this tool is relevant. However, it does not explicitly state when to use this tool versus sibling CDC tools or mention any exclusions. The guidance is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_excess_deaths_covidARead-onlyIdempotentInspect
CDC excess deaths associated with COVID-19 (xkkf-xrst). Modeled expected vs observed deaths by state and week. Used to estimate true pandemic impact beyond reported COVID deaths.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| state | No | Full state name (e.g. 'Texas') or 'United States' | |
| outcome | No | Outcome (e.g. 'All causes', 'All causes, excluding COVID-19') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the safety burden is covered. The description adds useful context about the data being modeled expected vs observed values, but it does not disclose operational details such as update cadence, response shape, or query limitations. This is adequate but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences each earn their place: the dataset identifier, the data model and granularity, and the intended analytical purpose. There is no filler, repetition of schema content, or unnecessary detail. The key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, read-only tool with fully documented parameters and safety annotations, the description is sufficient for an agent to understand what the tool returns and why it exists. It does not describe output columns or response formatting, but no output schema is provided and the dataset semantics are clear enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents limit, state, and outcome with examples. The description adds the conceptual framing of 'by state and week' but gives no parameter-specific guidance beyond that. The baseline of 3 is appropriate because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific CDC dataset (xkkf-xrst) and explains that it contains modeled expected vs observed deaths by state and week. This distinguishes it from siblings like cdc_weekly_deaths_by_state, which would provide observed death data, and cdc_drug_overdose_deaths. Though no explicit verb like 'get' or 'query' appears, the resource and its content are unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear purpose: estimating true pandemic impact beyond reported COVID deaths. This gives an agent enough context to select this tool over related CDC mortality datasets. It does not explicitly name alternative tools or state when not to use it, but the intended use case is concrete rather than merely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_flu_surveillanceARead-onlyIdempotentInspect
CDC FluView state-level influenza surveillance (vh55-3he6). Returns weekly ILI (influenza-like illness) activity levels per state.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| season | No | Flu season (e.g. '2023-24') | |
| statename | No | Full state name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description's burden is reduced. It adds useful context about scope (state-level, weekly) and the dataset, but does not describe output format, pagination, or behavior with empty filters. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the source and the return value, with no filler and no repetition of schema fields. The dataset ID is useful and unobtrusive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with zero required parameters and full schema coverage, the description is nearly complete. It states what is returned and at what granularity. However, since there is no output schema, it could be slightly clearer about the form of 'activity levels' (e.g., categorical vs. numeric) and default behavior when no filters are supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters at 100% coverage (limit, season, statename). The description does not add meaningful parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific source and resource ('CDC FluView state-level influenza surveillance') and states a clear action with output ('Returns weekly ILI activity levels per state'). It distinguishes itself from sibling CDC tools by focusing specifically on influenza-like illness, and the dataset ID (vh55-3he6) adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when this tool is relevant: any query about state-level flu/ILI activity. However, it does not explicitly state when to prefer this over siblings such as cdc_dataset_query or cdc_weekly_deaths_by_state, nor does it provide exclusions or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_leading_causes_of_deathARead-onlyIdempotentInspect
NCHS leading causes of death by state (bi63-dtpu). Returns total deaths and age-adjusted death rates per cause per state per year. Useful for chronic disease + injury mortality research.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year | |
| limit | No | Max rows (default 50) | |
| state | No | Full state name or 'United States' | |
| cause_name | No | Cause name (e.g. 'Heart disease', 'Cancer', 'Suicide') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds useful output-shape context but does not disclose potential operational behaviors such as default scope when filters are omitted, available year range, or valid cause-name list. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are front-loaded with the dataset source and return values, and the closing use-case sentence adds context without clutter. The dataset ID in parentheses is a minor but useful identifier, not wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-filter retrieval tool with no output schema, the description provides the key missing output semantics: rows contain deaths and age-adjusted rates by cause, state, and year. It could add valid cause-name/date-range details, but the 100%-covered schema and read-only annotations make the tool safely invokable with reasonable defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all four parameters at 100% coverage, so the baseline is 3. The description adds value by explaining that results are organized 'per cause per state per year,' clarifying how the optional filters combine into output rows. This goes slightly beyond the one-line schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — the NCHS leading-causes-of-death dataset (bi63-dtpu) — and states the exact returned metrics: total deaths and age-adjusted death rates by cause, state, and year. This makes it easy to distinguish from CDC siblings such as cdc_drug_overdose_deaths or cdc_weekly_deaths_by_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers an implied use case ('useful for chronic disease + injury mortality research') but no explicit when-to-use/when-not-to-use guidance or alternative tool suggestions. Among many CDC siblings, the agent is not told why this tool should be selected over cdc_dataset_query or the other CDC dataset tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_outbreak_reportsARead-onlyIdempotentInspect
CDC NORS foodborne / waterborne / enteric outbreak reports (iezt-77pi). Returns outbreak date, state, etiology, illnesses, hospitalizations, deaths, and implicated food/exposure.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Outbreak year | |
| limit | No | Max rows (default 50) | |
| state | No | Full state name | |
| etiology | No | Causative agent (e.g. 'Salmonella', 'Norovirus', 'E. coli') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds value by enumerating the returned data fields (date, state, etiology, illnesses, hospitalizations, deaths, exposure), which is especially helpful in the absence of an output schema. It does not disclose pagination or default-limit behavior, but the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence identifies the dataset, scope, and return fields with zero filler. Every word contributes to the agent's ability to understand and invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with four optional parameters and no output schema, the description plus schema covers the essential invocation details: dataset, filters, returned fields, and default limit. It stops short of explaining filtering behavior or result-set expectations, but the tool is simple enough that these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter (year, limit, state, etiology) already having a description in the input schema. The tool description names some of these concepts (state, etiology) but does not add meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (CDC NORS foodborne/waterborne/enteric outbreak reports), the dataset identifier (iezt-77pi), and the exact fields returned. This clearly distinguishes the tool from the many other cdc_* siblings by domain and dataset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by 'CDC NORS ... outbreak reports' and the returned fields, but the description does not explicitly state when to choose this tool over alternatives like cdc_dataset_query or other CDC health datasets. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_vaccination_coverageBRead-onlyIdempotentInspect
COVID-19 vaccination coverage by US county (8xkx-amqh). Returns booster + primary series percentages over time. Useful for public-health gap analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50) | |
| recip_state | No | Two-letter state code (e.g. 'CA') | |
| recip_county | No | County name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context: the specific Socrata dataset ID (8xkx-amqh), the breakdown of returned metrics, and the time-series nature. However, it does not disclose default scope when no state/county filter is applied or the time window returned, and no contradiction exists with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses front-load the subject, then state the output composition and a use case. Every sentence earns its place; the dataset ID is slightly esoteric but useful for provenance when cross-referencing with cdc_dataset_query.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with all-optional parameters and no output schema, the description covers what is returned. But it leaves gaps: what happens with zero filters (all counties? national aggregate?), what date range is covered, and how 'over time' is represented in the response. These are material for an agent invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — limit, recip_state, and recip_county are all documented in the input schema. The description only hints at county-level granularity ('by US county') and adds no parameter semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear verb+resource: returns COVID-19 vaccination coverage by US county, with explicit output content (booster + primary series percentages over time). This distinguishes it from sibling CDC tools covering flu, overdose deaths, and other indicators, though it doesn't explicitly differentiate from the generic cdc_dataset_query which could query the same dataset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for public-health gap analysis' implies a use case, but there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives. Among many cdc_* siblings, an agent gets no routing help beyond the narrow subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cdc_weekly_deaths_by_stateARead-onlyIdempotentInspect
CDC weekly provisional deaths by state and cause (NCHS dataset muzy-jte6). Returns all-cause and selected-cause death counts per state per ISO week. Useful for excess-mortality and respiratory-disease seasonality analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year (e.g. 2024) | |
| cause | No | Cause category (e.g. 'All Cause', 'COVID-19 (U071, Multiple Cause of Death)', 'Influenza and pneumonia') | |
| limit | No | Max rows (default 50) | |
| state | No | Full state name or 'United States' for national. Default 'United States'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds useful context beyond those: the 'provisional' nature of the data, the NCHS dataset identifier, and the ISO-week granularity. This meaningfully informs the agent about data freshness and structure without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the dataset source, output semantics, granularity, and intended use cases with no filler. Key information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with all parameters documented in the schema and no required parameters, the description is complete enough for safe invocation. It explains what the tool returns, from which dataset, and what analysis it supports, which compensates for the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description hints at cause categories and state/time granularity, but it does not add much beyond what the schema already documents for year, cause, limit, and state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns all-cause and selected-cause death counts per state per ISO week' from the CDC NCHS dataset. It identifies the exact dataset id (muzy-jte6) and scope, which clearly distinguishes it from sibling CDC tools like cdc_flu_surveillance or cdc_leading_causes_of_death.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for appropriate use: 'excess-mortality and respiratory-disease seasonality analysis.' It does not explicitly name sibling tools to avoid or state when-not-to-use conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_businessARead-onlyIdempotentInspect
Business establishments, employment, and annual payroll from County Business Patterns. Optional NAICS industry filter. Used for industry research, competitive intel, supply chain analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| naics | No | Optional NAICS 2017 industry code (2 to 6 digits). E.g. '23' for Construction, '54' for Professional Services. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, non-destructive behavior, lowering the bar for disclosure. The description adds context about the data source and optional NAICS filtering, but does not describe output format, pagination, or geographic parameter dependencies. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core data content and source; the second efficiently explains the optional filter and use cases. Every clause contributes to selection and invocation understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description is somewhat thin: it names the data metrics and domain but does not explain geography-level selection rules, return structure, or units. The schema covers required parameter dependencies, but the overall package relies heavily on the schema to make the tool usable. Description is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics by clarifying that NAICS is an industry filter and that the returned metrics are establishments, employment, and payroll, which helps agents interpret the year and level parameters in context. It does not fully compensate for missing schema-level nuances, but it goes beyond simple duplication.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: business establishments, employment, and annual payroll from County Business Patterns, with an optional NAICS filter. This differentiates it from sibling census tools like census_demographics or census_population, though it lacks a direct verb such as 'get' or 'query' and does not explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful usage context ('Used for industry research, competitive intel, supply chain analysis') but gives no explicit when-to-use vs. alternative guidance, such as 'for demographic data use census_demographics.' The intended use is implied by the data domain rather than clearly contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_commute_employmentARead-onlyIdempotentInspect
Labor force, unemployment, commute times, public transit usage, work-from-home rates for a US geography. Used for site selection, workforce analysis, commercial real estate.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds limited behavioral context beyond that, mostly restating topic areas rather than disclosing output shape, limitations, or data-source nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the tool's substance with a list of returned data categories, then add use-case context. There is no filler, redundancy, or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich schema descriptions and annotations, the description covers the essential 'what' and 'when' well. It also lists the return subjects since there is no output schema. Minor gaps remain around output format or precise metric definitions, but they do not prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The tool description adds no parameter-specific guidance beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates the specific data topics (labor force, unemployment, commute times, public transit usage, work-from-home rates) and the geographic scope (US geography), which distinguishes it from sibling census_* tools. It lacks an explicit verb like 'returns' or 'provides', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use contexts: site selection, workforce analysis, and commercial real estate. This helps an agent decide when this tool is relevant, though it does not explicitly state when to use an alternative census tool or call out exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_demographicsARead-onlyIdempotentInspect
Race, ethnicity, and age breakdown for a US geography. Returns counts for white, black, Asian, AIAN, NHPI, other, two-or-more, plus Hispanic/Latino total and median age. Source: ACS 5-year.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds useful context by stating the source is ACS 5-year and listing the returned fields, but it does not disclose potential limitations such as data suppression, margins of error, or geography-specific availability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes a compact list of return fields plus the data source. Every sentence adds information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description enumerates the returned counts and median age, which is adequate for a read-only demographic lookup. The schema handles parameter semantics, and the source attribution provides important temporal context, though a note on ACS estimate reliability would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents all 8 parameters with descriptions and an enum for level, so the description does not need to repeat parameter details. The description adds only general geography context, which is insufficient to raise the score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's specific purpose: providing race, ethnicity, and age breakdowns for US geographies. It lists the exact returned metrics and names the data source, making it easily distinguishable from sibling census tools that focus on population, income, or business data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool is relevant: when demographic breakdowns by race, ethnicity, or age are needed. It does not explicitly name alternatives or exclusions, but the detailed output list makes the appropriate use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_geography_lookupARead-onlyIdempotentInspect
Look up Census FIPS codes by name. Supports state name or 2-letter code, ZIP code (5 digits), and (for state) substring matching. Use this to find the FIPS codes needed by other census_* tools.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Optional filter: state, county, zcta, place. | |
| limit | No | Max matches (default 10). | |
| query | Yes | Free-text: state name ('Texas'), state code ('TX'), or 5-digit ZIP ('77301'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context about matching behavior, especially the note that state lookups support substring matching. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what the tool does, what inputs it supports, and why/when to use it. The purpose is front-loaded and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with strong schema coverage and safe annotations, the description is adequate for selection and invocation. The only minor gap is that it does not describe the exact response shape or how ambiguous matches are handled, but no output schema exists and the purpose is simple enough that this is not a serious deficiency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters in detail, including query examples, the level enum, and the limit default. The description adds only minor extra meaning—substring matching for states—so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Look up'), a clear resource ('Census FIPS codes by name'), and enumerates supported query forms. It also distinguishes itself from the other census_* tools by identifying it as the code-finding helper needed before those data tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance: 'Use this to find the FIPS codes needed by other census_* tools.' This tells the agent when to reach for it, though it stops short of explicitly naming alternatives or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_income_housingARead-onlyIdempotentInspect
Median household income, per capita income, housing units, owner vs renter occupancy, median home value, median gross and contract rent for a US geography. Used for real estate AI, market analysis, location-based pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is established. The description adds metric and geography scope but does not disclose operational behavior such as return shape, aggregation, wildcard effects, or lookup defaults. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with front-loaded, specific metric content followed by a short use-case statement. It contains no filler, no repetition of schema details, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all conditional geography parameters and the annotations cover read-only/idempotent behavior, so most invocation requirements are already structured. The description adds the output metrics and use cases, which is valuable because there is no output schema. A small note on how to choose among geography levels would improve it further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a meaningful description including conditional requirements and wildcard usage. The description adds no parameter-specific semantics beyond the general geography scope, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific data domain—household income, per capita income, housing units, occupancy, home value, and rent—for US geographies. This concrete metric list makes the tool's purpose clear and distinguishes it from sibling census tools like census_demographics or census_population without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases ('real estate AI, market analysis, location-based pricing'), which provides useful context. However, it does not compare against sibling census or real-estate tools, nor does it say when not to use this tool, leaving alternative selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
census_populationARead-onlyIdempotentInspect
Get total population for a US geography (state, county, ZIP/ZCTA, city, census tract, MSA, or national). Returns total, male, female, and median age. Used for market sizing, location intelligence, demographic analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| msa | No | 5-digit Metropolitan Statistical Area code. Required for msa level. | |
| year | No | ACS 5-year endpoint year (default 2023). | |
| zcta | No | 5-digit ZIP Code Tabulation Area. Required for zcta level. | |
| level | Yes | Geography level: 'us', 'state', 'county', 'zcta' (ZIP), 'place' (city), 'tract', 'msa'. | |
| place | No | Census place FIPS (city). Required for place level. | |
| state | No | 2-letter state code (e.g. 'TX') or 2-digit FIPS. Required for state/county/place/tract levels. | |
| tract | No | 6-digit census tract code. Use '*' for all tracts in a county. | |
| county | No | 3-digit county FIPS. Use '*' for all counties in a state. Required for county/tract levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint=false, the description adds meaningful behavioral context by listing the returned metrics (total, male, female, median age) and the supported geography scope. This helps the agent predict what the call will produce without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words: action and scope first, then return values, then use cases. It is appropriately sized for a data-retrieval tool and front-loads the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core outputs, supported geographies, and typical use cases, which is sufficient given the rich schema and read-only annotations. It could be slightly more complete by explicitly differentiating itself from census_demographics, but an agent can still invoke it correctly with the schema's parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters and their conditional requirements. The description adds little parameter-specific meaning beyond restating geography levels, which are already captured in the level enum and parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get total population for a US geography,' then enumerates all supported geography levels. It also distinguishes itself from sibling census tools by specifying the exact outputs (total, male, female, median age), which clarifies its narrow population-focused scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating it is 'Used for market sizing, location intelligence, demographic analysis.' It does not explicitly name alternative tools or exclusion criteria, but the use cases give an agent enough context to select it over broader census or demographic tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_complaint_aggregationsARead-onlyIdempotentInspect
Aggregate complaint counts by a single facet (product, issue, company, state, company_response, or submitted_via). Useful for ranking companies by complaint volume or finding the most common issue categories.
| Name | Required | Description | Default |
|---|---|---|---|
| facet | Yes | Field to aggregate by | |
| company | No | Optional company filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds that results are aggregate counts by a single facet, but it does not disclose output structure, limits, sorting, or other behavioral nuances. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: it opens with a precise statement of what the tool does, enumerates the facet options, and closes with relevant use cases. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only aggregation tool with a complete schema and safety annotations, the description is largely sufficient: it names the facets, describes the output concept (aggregate counts), and gives practical use cases. Since there is no output schema, a slightly more explicit description of the response shape or ordering would make it fully complete, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully, including an enum for facet and a description for company, so schema coverage is 100%. The description reinforces the meaning of the facet parameter by listing valid values and stating the use cases, but it does not add substantial semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Aggregate complaint counts') and enumerates the exact allowed facets, making the tool's function immediately clear. It is clearly distinguishable from sibling tools like cfpb_complaint_detail, cfpb_search_complaints, and cfpb_complaint_trends because it focuses on single-facet aggregation rather than individual records, search, or time trends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases ('ranking companies by complaint volume' and 'finding the most common issue categories'), which gives useful context for when to invoke it. However, it does not explicitly mention alternatives or exclusion conditions, such as when to prefer cfpb_complaint_trends or cfpb_search_complaints instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_complaint_detailARead-onlyIdempotentInspect
Fetch a single CFPB complaint by complaint_id. Returns the full record including narrative if consented.
| Name | Required | Description | Default |
|---|---|---|---|
| complaint_id | Yes | CFPB complaint ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context beyond annotations by disclosing that the full record includes the narrative only 'if consented,' which is a meaningful behavioral caveat for a complaint detail endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The main action and resource are front-loaded, and the conditional narrative detail is stated efficiently in the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-ID lookup tool with safe annotations, the description is largely complete: it names the required parameter, the return type ('full record'), and a key conditional field ('narrative if consented'). It does not describe error/not-found behavior, but that is a minor gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already described as 'CFPB complaint ID.' The tool description adds no additional format, source, or lookup semantics beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Fetch'), a specific resource ('a single CFPB complaint'), and the lookup key ('complaint_id'). It also distinguishes itself from sibling search/aggregation tools by emphasizing 'single' and 'full record'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear usage context: use this when you have a complaint_id and need the full individual record. It does not explicitly name alternatives or when-not-to-use conditions, so it falls short of a 5, but the intended use is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_complaint_trendsARead-onlyIdempotentInspect
Time-series trends of complaint volume. lens=overview shows total complaints over time; lens=product shows by product; lens=company shows by company; lens=issue shows by issue. Interval can be month, quarter, or year.
| Name | Required | Description | Default |
|---|---|---|---|
| lens | Yes | Trend dimension | |
| product | No | Filter to a specific product | |
| sub_lens | No | Optional sub-dimension | |
| trend_depth | No | Top N to track (default 5) | |
| trend_interval | No | Time bucket size | |
| date_received_max | No | YYYY-MM-DD upper bound | |
| date_received_min | No | YYYY-MM-DD lower bound |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive, so the description does not need to repeat those safety traits. It adds some behavioral context by explaining lens semantics and interval options, but it does not describe output format, default behaviors like trend_depth, or parameter interactions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main purpose is front-loaded, and the lens and interval options are enumerated compactly. Every word contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with seven parameters and no output schema, the description is adequate but leaves gaps. It does not clarify how sub_lens interacts with lens, whether product filters combine with lens=product, or what the returned trend data actually looks like. Schema coverage helps, but sub_lens remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds value beyond the schema by explaining the meaning of each lens enum value and clarifying that interval can be month, quarter, or year. This helps an agent use the most important parameters correctly, though it adds nothing for sub_lens or product filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Time-series trends of complaint volume.' It further specifies what each lens shows, including totals over time and breakdowns by product, company, or issue, which makes it easy to distinguish from sibling complaint tools like cfpb_search_complaints or cfpb_complaint_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the available lenses and intervals, so an agent can infer when to use this tool for time-series trend analysis. However, it does not explicitly state when to prefer this tool over alternatives such as cfpb_complaint_aggregations or cfpb_state_complaints, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_search_complaintsARead-onlyIdempotentInspect
Search the CFPB Consumer Complaint Database (4M+ complaints submitted against financial companies since 2011). Filter by free-text term, company, product, state, date range, and narrative-presence. Returns complaint metadata plus public narratives when available.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Pagination offset (default 0) | |
| size | No | Page size (default 25, max 100) | |
| state | No | Two-letter state code | |
| company | No | Exact company name (use cfpb_suggest_company for fuzzy matching) | |
| product | No | CFPB product category (e.g. 'Credit reporting', 'Mortgage', 'Debt collection') | |
| search_term | No | Free-text search across all complaint fields | |
| has_narrative | No | Only complaints with consumer narratives | |
| date_received_max | No | YYYY-MM-DD upper bound | |
| date_received_min | No | YYYY-MM-DD lower bound |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds useful context about the database's scale, time range, and the availability of public narratives in results, but it does not disclose pagination, rate limits, or other behavioral edge cases beyond what the schema's default/max values already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences front-load the core purpose and resource, then list the filter dimensions and return value. There is no filler or redundant restatement of the tool name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 9 optional parameters and no output schema, the description gives a solid high-level picture of inputs and outputs. However, it does not orient the agent among the many related CFPB sibling tools, such as cfpb_complaint_aggregations, cfpb_complaint_trends, or cfpb_suggest_company, leaving some selection context to the agent's own reasoning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description paraphrases several filters (free-text term, company, product, state, date range, narrative-presence) but adds no new semantic detail beyond what the schema provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Search'), a specific resource (the CFPB Consumer Complaint Database), and the main filtering capabilities. It does not explicitly distinguish itself from sibling tools like cfpb_complaint_aggregations, cfpb_complaint_trends, or cfpb_state_complaints, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you want raw complaint records matching certain filters. However, it provides no explicit when-not-to-use guidance or direct comparison with alternatives such as cfpb_complaint_aggregations for counts or cfpb_complaint_detail for individual complaint details, leaving the differentiation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_state_complaintsARead-onlyIdempotentInspect
Complaint counts and percentages per US state, with optional product filter and date range. Useful for state-level financial-consumer risk maps.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | Optional product filter | |
| date_received_max | No | YYYY-MM-DD upper bound | |
| date_received_min | No | YYYY-MM-DD lower bound |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds that the output consists of counts and percentages per state, but it does not clarify what the percentages are relative to, how missing states are handled, or how date-range bounds behave. This is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence states the core function and output, and the second provides a concrete use case. Every phrase earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no required parameters and no output schema, the description gives a reasonable high-level understanding of return values and filters. However, it does not specify the output structure, whether all states are always returned, or how this tool differs from nearby CFPB siblings, leaving some ambiguity for an agent navigating a large tool catalog.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents product, date_received_max, and date_received_min. The description only restates that there is an optional product filter and date range without adding deeper semantics such as allowed product values or date-format constraints beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning complaint counts and percentages per US state, with optional product and date filters. This is specific enough to distinguish it from generic complaint search tools, though it doesn't explicitly name or differentiate from sibling aggregation tools like cfpb_complaint_aggregations or cfpb_complaint_trends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers a clear use case ('state-level financial-consumer risk maps'), which implies when this tool is appropriate. However, it gives no explicit guidance on when not to use it or which sibling tool to prefer for other aggregation styles, such as national or time-series breakdowns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cfpb_suggest_companyARead-onlyIdempotentInspect
Auto-complete company names. Returns up to 10 suggestions matching the partial input. Use the results as exact values for cfpb_search_complaints' company parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Partial company name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds behavioral details beyond that: it returns up to 10 suggestions, matches partial input, and produces values suitable for a specific sibling parameter. This is useful context, though it does not reveal ordering, matching rules, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The core behavior and result limit are front-loaded, and the downstream usage note is concise and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter autocomplete tool with strong safety annotations and no output schema, the description provides the essential return-value information (up to 10 suggestions) and integration guidance. It is nearly complete; minor details like whether suggestions are full names or formatted strings could be added, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter 'text' as 'Partial company name' with 100% coverage. The description reinforces the partial-input concept but adds little meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('auto-complete company names') and resource ('company names'), and specifies the output behavior (up to 10 suggestions matching partial input). It also distinguishes itself by pointing to its intended downstream consumer, cfpb_search_complaints, so an agent can tell it apart from complaint-search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context: use this tool to generate exact values for cfpb_search_complaints' company parameter. This effectively tells the agent when and why to use the tool, though it does not explicitly state when not to use it or name alternative suggestion/fuzzy-match tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chemical_hazardsARead-onlyIdempotentInspect
Return the public GHS (Globally Harmonized System) hazard classification for a chemical from the NIH/NLM PubChem database (keyless, public-domain data). Given a chemical name or PubChem CID, it resolves the compound and returns the GHS signal word (Danger/Warning) and the list of GHS hazard statements (e.g. 'H302: Harmful if swallowed'). If PubChem has no GHS classification on file for the compound, that is reported gracefully. This is informational public GHS classification data, not regulatory guidance or a safety data sheet - verify against an official SDS before handling any chemical.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A chemical name (e.g. 'acetone', 'aspirin') or a numeric PubChem CID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive; description adds data source, keyless access, graceful missing-data behavior, and a caveat that results are not an SDS. This complements the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each containing only necessary information: what it returns, how missing data is handled, and a safety caveat. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup, the description covers input format, output content, missing-data behavior, and usage caveat. No important operational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description covers the single 'query' parameter 100%, so baseline is 3. The description repeats the name-or-CID input form but adds no new parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (return), resource (GHS hazard classification), and source (PubChem). The description explicitly names the outputs (signal word and hazard statements), making its purpose unmistakable and distinct from a generic chemical_lookup sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not name an alternative tool, but clearly frames the use case: retrieving public GHS classification data from PubChem. It adds a boundary condition with the SDS disclaimer, telling the agent this is informational and not regulatory guidance, though it doesn't explicitly route to alternates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chemical_lookupARead-onlyIdempotentInspect
Resolve a chemical name (e.g. 'aspirin', 'caffeine') or a PubChem CID to its core identity and physical properties using the NIH/NLM PubChem public database (keyless, public-domain data). Returns the PubChem Compound ID (CID), IUPAC systematic name, molecular formula, molecular weight (g/mol), and the canonical SMILES structure string. Use it to disambiguate a substance and obtain a stable CID join key for further chemistry or safety lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A chemical name (e.g. 'aspirin', 'sodium chloride') or a numeric PubChem CID (e.g. '2244'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds valuable context about the NIH/NLM PubChem public database, keyless access, public-domain data, and the stability of the returned CID. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: what it resolves, what it returns, and when to use it. The action is front-loaded and there is no filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with rich annotations and no output schema, the description fully covers the return fields, data source, access model, and primary use case. An agent has sufficient information to select and correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the single parameter and already explains that query accepts a chemical name or numeric PubChem CID. The description repeats those examples but adds no parameter-specific meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Resolve') and a clear resource: chemical names or PubChem CIDs to identity and physical properties. It lists the concrete return fields, making the tool's scope unambiguous. This clarity separates it from sibling chemical_hazards, which is focused on hazard data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it to disambiguate a substance and obtain a stable CID join key for further chemistry or safety lookups. It does not name an alternative sibling tool or give when-not-to-use conditions, so it falls just short of complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clinical_site_selectorARead-onlyIdempotentInspect
One-call clinical-trial-activity + local-specialist-availability read for a medical condition in a US geography - the question a trial sponsor, CRO, or site-feasibility analyst asks before choosing where to run a study. Joins three keyless public sources: ClinicalTrials.gov (exact count of RECRUITING trials for the condition, scoped to the geography and compared to the national total, plus the top lead sponsors and phase mix from the recruiting sample), the NPPES NPI Registry (local specialist availability - how many providers carry a specialty taxonomy relevant to the condition in the area, across physicians and NPs/PAs/pharmacists/RNs in the field), and optionally US Census ACS population context for the state (needs a Census key; degrades gracefully). The condition is mapped to a provider specialty heuristically; pass an explicit 'specialty' to override. Returns a readable brief with a headline banding trial activity (HIGH/MODERATE/LOW/NONE) and specialist availability. A source that fails is noted, not fatal. INFORMATIONAL research / site-feasibility synthesis, NOT medical advice or a directive to enroll in any trial.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city to further localize the trial-location and provider search (e.g. 'Houston'); use with state. | |
| state | No | Optional 2-letter US state to scope trial and provider counts (e.g. 'TX'). Omit for a national read. | |
| condition | Yes | Medical condition / disease to evaluate (e.g. 'melanoma', 'type 2 diabetes', 'Alzheimer disease'). | |
| specialty | No | Optional NPPES specialty taxonomy keyword to override the condition-to-specialty mapping (e.g. 'Cardiology', 'Endocrinology'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the description only needs to add behavior beyond those. It does: it names the three keyless sources, explains exact recruiting counts vs. national totals, describes the heuristic condition-to-specialty mapping with an explicit override, notes graceful Census-key degradation, and states that source failures are non-fatal. This is strong behavioral disclosure with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first clause front-loads the core purpose, and the rest is information-dense rather than padded: sources, outputs, failure behavior, and caveats all earn their place. The source enumeration is slightly run-on, but there is no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a complex three-source data aggregation, the description still explains what the agent will receive, including a readable brief with HIGH/MODERATE/LOW/NONE trial-activity banding and specialist availability. It also covers source-failure handling, the Census key prerequisite, and the informational-not-medical-advice boundary, making it complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema: condition is heuristically mapped to a provider specialty, specialty overrides that mapping, city/state scope the trial and provider search, and the Census component is optional and needs a key. This helps an agent choose and combine parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific composite verb+resource: a one-call read of clinical-trial activity plus local specialist availability for a medical condition in a US geography. It clearly identifies the audience and decision context, and it is distinguishable from siblings like trials_search, npi_search_provider, and census_population because it is explicitly a combined site-feasibility synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear and concrete usage context: trial sponsors, CROs, or site-feasibility analysts deciding where to run a study. It does not explicitly name excluded cases or alternatives such as 'use trials_search for raw trial data,' but the intended situation is strongly implied and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_home_health_searchARead-onlyIdempotentInspect
Search Medicare-certified home health agencies from CMS Home Health Compare. Returns agency name, address, services offered, and quality ratings.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the read-only, idempotent, non-destructive nature. The description adds value by disclosing the expected return contents (name, address, services, quality ratings), which is useful because there is no output schema. It does not mention rate limits or auth, but for a simple read-only search tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the core action and resource, then quickly lists the useful output fields. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter search tool, the description is complete: it names the source dataset, the target population, and the return fields. The input schema covers filtering and pagination parameters, and the annotations cover safety and idempotency, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have descriptions in the input schema, so the schema carries full parameter documentation. The tool description adds no additional parameter-level meaning beyond the general search domain, which matches the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and a specific resource ('Medicare-certified home health agencies from CMS Home Health Compare'), and it names the returned data types: agency name, address, services offered, and quality ratings. This clearly distinguishes it from sibling tools like cms_hospital_search or cms_nursing_home_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when this tool is relevant: whenever the user needs Medicare-certified home health agencies from the CMS Home Health Compare dataset. It does not explicitly name sibling alternatives or state when not to use it, so it stops short of a 5, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_hospice_searchARead-onlyIdempotentInspect
Search Medicare-certified hospice agencies from CMS Hospice Compare. Returns provider name, address, ownership, and quality measures.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds scope (Medicare-certified, CMS Hospice Compare) and return-field information, but doesn't disclose operational behavior such as pagination, update cadence, or response structure; that's modest context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main verb and resource are front-loaded, followed immediately by the return content, and every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and four optional parameters, the description usefully names the return categories and source, while the schema fully documents parameter meanings. Nothing needed to select and call the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (limit, state, offset, name_contains) are already documented with clear meanings and defaults. The tool description adds no parameter-specific semantics beyond naming the search resource, so it stays at the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search'), a concrete resource ('Medicare-certified hospice agencies'), and the data source ('CMS Hospice Compare'). It also lists expected return fields, and the hospice-specific wording distinguishes it from sibling CMS facility-search tools without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is inferable from 'hospice agencies' and 'CMS Hospice Compare', but the description never explicitly contrasts it with cms_hospital_search, cms_nursing_home_search, or cms_home_health_search, nor gives when-not-to-use conditions. This is clear implied context rather than explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_hospital_searchARead-onlyIdempotentInspect
Search Medicare-certified hospitals from the CMS Hospital General Information dataset. Returns facility name, address, ownership type, emergency-services flag, and CMS overall star rating (1-5). Filter by state, city, and partial facility-name match.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name (case-insensitive) | |
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral detail beyond that: the specific return fields, the dataset source, and the supported filtering dimensions. It does not mention pagination or rate limits, but for a simple read-only search that gap is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose, then efficiently packs return fields and filter dimensions into a single follow-up sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search with all-optional parameters and no output schema, the description covers the essential facts: the source dataset, the return fields, and the filter criteria. Pagination defaults and exact output structure are left to the schema and general conventions, but those are minor omissions given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents state, city, limit, offset, and name_contains. The description restates state/city/name filters in plain language but adds little semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search Medicare-certified hospitals from the CMS Hospital General Information dataset.' It clearly states what the tool returns and what filters are available. The word 'hospitals' distinguishes it from sibling tools covering home health, hospice, and nursing homes, even without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear operational context: use this search when you need hospitals filtered by state, city, or partial facility name. It does not explicitly name alternative tools or state when not to use it, which keeps it just below a full routing guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_nursing_home_searchARead-onlyIdempotentInspect
Search Medicare-certified nursing homes from CMS Nursing Home Compare. Returns name, address, ownership, certification status, total beds, and quality measures.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'NY') | |
| offset | No | Pagination offset (default 0) | |
| name_contains | No | Partial provider name match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, and the description does not contradict them. It adds value by specifying the return payload and the source dataset, which helps an agent anticipate output. It does not describe pagination behavior, but offset and limit are documented in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with roughly 20 words, front-loading the action and resource while every phrase contributes either scope or return information. There is no filler, no repetition of the schema, and no redundancy with annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search with fully documented optional parameters and no output schema, the description is nearly complete: it states the source, target entity type, and principal fields returned. It could explicitly mention pagination or default behavior, but the schema already provides defaults for limit and offset, so no critical invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; all four parameters (limit, state, offset, name_contains) already have meaningful descriptions. The tool description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Search') and a concrete resource ('Medicare-certified nursing homes from CMS Nursing Home Compare'), and lists the returned fields including name, address, ownership, certification status, total beds, and quality measures. This clearly differentiates it from sibling tools such as cms_hospital_search or cms_home_health_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: this tool is for Medicare-certified nursing homes sourced from CMS Nursing Home Compare, so an agent searching for nursing home facilities can identify it. It does not explicitly name alternatives or state when not to use it, but the resource scope is unambiguous and the sibling tool names reinforce the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_accreditationARead-onlyIdempotentInspect
Current institutional accreditation status, accreditor, and (when published by DAPIP) last action date and programmatic accreditations.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world, and non-destructive behavior. The description adds the useful caveat that last action date and programmatic accreditations are included only when published by DAPIP, giving the agent awareness that these fields may be absent. This is helpful context but not extensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no filler. It front-loads the core purpose ('Current institutional accreditation status') and packs the additional fields and DAPIP caveat efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description covers what data will be returned and the key condition under which some fields are available. Nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter unit_id is already fully described in the schema as 'IPEDS UNITID' (100% schema description coverage). The description does not add further parameter details, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (institutional accreditation) and enumerates the returned data: status, accreditor, last action date, and programmatic accreditations. It does not use an explicit verb like 'gets' or 'returns,' but the intent is unmistakable and it is distinct from sibling college_* tools that focus on search, metrics, or outcomes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus related siblings such as college_search, college_metrics, or college_compare. There are no explicit when-to-use conditions, exclusions, or alternative tool names, so an agent must infer suitability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_compareARead-onlyIdempotentInspect
Side-by-side comparison of 2-5 schools across cost, outcomes, and admissions metrics. Pass UNITIDs.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_ids | Yes | Array of 2-5 IPEDS UNITIDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint, idempotentHint, and destructiveHint annotations already communicate that the call is safe and repeatable, so the description does not need to cover side effects. It adds modest context by naming the comparison dimensions, but it does not disclose return format, output size, or behavior with invalid UNITIDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one front-loaded sentence: the verb and object first, then the scope and metric dimensions, then the input instruction. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with a fully documented schema, the description supplies enough context to identify the tool and invoke it correctly. A small gap is that it does not suggest how to discover UNITIDs (e.g., via college_search) or describe the response format, but neither is required to make a safe call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already gives 100% parameter coverage with 'Array of 2-5 IPEDS UNITIDs.' The description only repeats 'Pass UNITIDs' and adds no extra semantics about how to obtain or format those IDs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'comparison', names the resource ('schools'), and constrains the scope to 2-5 schools and three metric categories. This is enough to distinguish it from college_search, college_metrics, and other single-school sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer that this is the right tool when a user asks to compare multiple schools side by side. It does not name any alternative tool or give a when-not-to-use condition, even though siblings like college_metrics or college_value_score could overlap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_demographicsARead-onlyIdempotentInspect
Student-body demographics for one school: race/ethnicity, gender, age (under/over 25), and geographic origin (in-state, out-of-state, foreign).
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about what demographic dimensions are included, but it does not disclose behavior around missing data, invalid unit IDs, or the response format. This is acceptable given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose ('Student-body demographics for one school') and then compactly lists the demographic categories. Every word contributes meaning, with no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup tool with rich annotations and no output schema, this description is largely complete: it names the school identifier, the single-school scope, and the demographic dimensions returned. It does not detail formatting or data source, but these are minor gaps for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the single parameter, unit_id, with a description 'IPEDS UNITID.' The tool description does not add significant parameter-level detail, but none is needed since the schema fully documents the parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as student-body demographics for a single school and enumerates the specific demographic categories covered (race/ethnicity, gender, age, geographic origin). It distinguishes itself from sibling tools like college_compare or college_trends through the 'for one school' scope, though it does not explicitly name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for one school' implies this tool is for retrieving a single institution's demographic breakdown, as opposed to comparing or searching across schools. However, it does not explicitly state when to use this tool over siblings like college_metrics or college_compare, nor does it provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_metricsARead-onlyIdempotentInspect
Cost and outcome metrics for one school: published tuition (in-state and out-of-state), average net price, six-year graduation rate, first-year retention, median earnings ten years after entry, admission rate, and SAT/ACT ranges.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID (Scorecard 'id'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds the list of returned metrics, which is useful, but does not disclose behavioral details such as data source, update frequency, or handling of missing metrics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the tool's purpose ('Cost and outcome metrics for one school') and then lists the specific metrics. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with rich annotations and no output schema, the description works as a de facto output contract by naming every metric returned. It lacks caveats around data availability, but nothing essential seems missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with unit_id documented as the IPEDS UNITID (Scorecard 'id'). The tool description does not need to add parameter semantics, and it does not attempt to; the schema adequately carries this information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning cost and outcome metrics for a single school, and enumerates the specific metrics included. It differentiates from broader sibling tools like college_trends and college_compare by scoping to 'one school,' though it does not name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need tuition, graduation, earnings, admission, or SAT/ACT metrics for one institution. However, there is no explicit guidance on when to prefer it over related sibling tools such as college_compare, college_demographics, or college_value_score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_outcomes_by_programARead-onlyIdempotentInspect
Program-level outcomes (4-digit CIP code) for one school: median earnings one year after completion, median debt at completion, and award counts.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | IPEDS UNITID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful semantic detail about the metrics ('one year after completion', 'at completion') but does not disclose other behavioral traits such as whether all programs are returned, how missing data is handled, or the response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence with no filler. It front-loads the resource and scope before enumerating the returned metrics, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description provides the essential return-value details: earnings, debt, and award counts at program level. It could be slightly clearer that the tool returns data for all programs for the given school rather than requiring a CIP-code input, but the schema plus description are sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, unit_id, is fully described in the schema as an IPEDS UNITID, so schema coverage is 100%. The description does not add additional parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely identifies the resource (program-level outcomes), the granularity (4-digit CIP code), the scope (one school), and the specific measures returned (median earnings, median debt, award counts). This clearly distinguishes it from sibling tools like college_metrics or college_value_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Program-level outcomes ... for one school' provides clear context for when to use this tool: when a caller needs earning, debt, or award-count metrics broken down by program. It does not name alternative tools or give explicit when-not-to-use guidance, but the scope and granularity are evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_searchARead-onlyIdempotentInspect
Search US colleges and universities by name, state, control type, size, or accreditor. Returns matching institutions with location, control, predominant degree, and enrollment.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Substring of the institution name. | |
| size | No | Carnegie size bucket. | |
| limit | No | Max results, 1-100. Default 25. | |
| state | No | Two-letter state code (e.g. TX). | |
| control | No | Institutional control. | |
| accreditor | No | Substring match against the school's institutional accreditor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds useful behavioral context by specifying the return content — matching institutions with location, control, predominant degree, and enrollment — which is especially valuable given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no wasted words. The search scope and filters lead, and the return content follows. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only search tool with no required parameters and fully documented schema fields, the description covers what it searches, what filters are available, and what comes back. The absence of an output schema is compensated by the description's explicit return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description merely recaps the filter attributes without adding new detail about matching behavior, value formats, or combination semantics, so it earns the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search US colleges and universities') and lists the available filter dimensions, making the tool's purpose clear. It does not explicitly name or contrast sibling tools like college_accreditation or college_compare, but the general lookup scope is evident from the resource and return fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the general-purpose college search tool — use it to find institutions by name, state, control, size, or accreditor. It provides no explicit guidance on when to prefer a sibling tool such as college_accreditation or college_outcomes_by_program, leaving the choice mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_trendsARead-onlyIdempotentInspect
Multi-year trend for one school sourced from the Urban Institute Education Data Portal (IPEDS). Choose a metric (enrollment, graduation_rate, retention, cost) and a year range.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | Yes | Trend metric. | |
| unit_id | Yes | IPEDS UNITID. | |
| end_year | Yes | Last academic year, e.g. 2022. | |
| start_year | Yes | First academic year, e.g. 2010. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds beyond the annotations by specifying the data source (Urban Institute Education Data Portal/IPEDS) and the single-school scope, which is useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core purpose and source, then lists the parameter choices and range selection, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations, complete parameter schema, and simple read-only nature of the tool, the description is largely sufficient for selection and invocation. However, there is no output schema and the description does not describe the response format or behavior for unavailable data, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter already described, including the metric enum and year examples. The description simply restates the metric names and 'year range' without adding deeper semantic meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a multi-year trend for one school and identifies the data source and available metrics. It is specific enough to distinguish from college_search and college_compare, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by saying 'for one school' and instructing the user to choose a metric and year range. It does not, however, explicitly state when not to use it or point to alternatives such as college_compare for comparisons or college_metrics for other metric views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
college_value_scoreARead-onlyIdempotentInspect
One-call 'is this degree worth the cost' read for a US college (and optionally a named program). Joins the College Scorecard / IPEDS education domain (average net price, six-year completion rate, median earnings ten years after entry, and - when a program is named - program-level median debt and 1-year earnings) with a keyless BLS wage context (CES average hourly earnings, annualized) to place those earnings against the broad US private-sector wage. Returns a plain read - STRONG VALUE / FAIR / WEAK VALUE / INSUFFICIENT DATA - with the cost-vs-earnings evidence itemized and each sub-signal scored. A source that fails is noted, not fatal. Cross-source synthesis; Scorecard earnings cover federally-aided students only and lag by years. Informational only, not admissions, financial, or career advice.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate the school name (e.g. 'OH'). | |
| college | Yes | US college/university name (e.g. 'University of Michigan', 'Ohio State University'). | |
| program | No | Optional program name or CIP prefix (e.g. 'Nursing', 'Computer Science') to add program-level debt-vs-earnings evidence. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Rich behavioral disclosure well beyond the annotations: it states the exact output categories (STRONG VALUE / FAIR / WEAK VALUE / INSUFFICIENT DATA), the itemized-and-scored evidence format, graceful degradation ("A source that fails is noted, not fatal"), data limitations ("Scorecard earnings cover federally-aided students only and lag by years"), and the advisory boundary ("not admissions, financial, or career advice"). No contradiction with readOnlyHint/idempotentHint — the description explicitly calls it a "plain read."
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The ~110-word description is front-loaded with the core value proposition, then builds logically: data sources, output format, failure behavior, caveats, disclaimer. Every sentence earns its place — the parenthetical data-source details and caveats are substantive for a synthesis tool, not padding. Nothing is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex cross-source synthesis tool with no output schema, the description carries the return-value burden and does so thoroughly: it names the verdict categories, explains what evidence is itemized, discloses scope limits (US, federally-aided students), and covers failure behavior. An agent can predict both the call's inputs and its response shape without opening any further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters well, including program's role in adding "program-level debt-vs-earnings evidence" and state's disambiguation purpose. The description adds only marginal specificity — that program-level evidence consists of "median debt and 1-year earnings" — but mostly restates what the schema already conveys. Baseline 3 is appropriate; the description does not meaningfully compensate beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase "One-call 'is this degree worth the cost' read for a US college (and optionally a named program)" states a specific verb (read/evaluate) with a specific resource (US college + program) and a crisp value proposition. It clearly distinguishes itself from siblings like college_metrics (raw metrics), college_compare (side-by-side comparison), college_outcomes_by_program (raw program data), and college_search (lookup), by emphasizing it is the synthesis/verdict tool rather than a raw-data tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context well — this is the one-call value judgment tool, and the phrase "when a program is named" explains the optional-program behavior. However, it never names sibling alternatives or states when to prefer college_metrics, college_compare, or college_outcomes_by_program instead, so an agent must infer the routing decision from purpose rather than receiving explicit when-to-use/when-not-to-use guidance. The "informational only" disclaimer is the only explicit exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_complaint_profileARead-onlyIdempotentInspect
One-call CONSUMER-RISK read for a company or brand, LED by the consumer-complaint picture. Joins three public-record legs, CFPB first: CFPB Consumer Complaint Database (complaint volume for the company plus the top complaint products and issues - the primary signal), product recalls (CPSC consumer products + openFDA drug/device/food enforcement, keyed by the company), and federal-court litigation (CourtListener dockets whose caption actually names the company). Returns a rolled-up read (LOW / MODERATE / ELEVATED consumer-risk signals) that leads with complaint volume and the top complaint products/issues, then folds in recall count and severity (FDA Class I / death-related = high) and litigation hits (total + last-3-years). A leg that fails is noted, not fatal. This is consumer-complaint-centered and distinct from product_liability_screen (recall/litigation-centered for manufacturers). NHTSA vehicle recalls need a specific year+make+model so are out of scope here (use recall_screen for a vehicle). Cross-source synthesis; informational public-record synthesis, NOT legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Optional lower-bound date (YYYY-MM-DD) for FDA recalls. | |
| state | No | Optional 2-letter state to scope the CFPB complaint leg (e.g. 'CA'). | |
| company | Yes | Company or brand name to profile (e.g. 'Wells Fargo', 'Peloton'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool readOnly, idempotent, and non-destructive, and the description adds substantial behavioral detail: it joins three public-record legs, notes that failed legs are 'noted, not fatal,' explains how recall severity (FDA Class I / death-related) factors into the rating, and clarifies that the output is an informational synthesis, not legal advice. This goes well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose, data legs, output structure, failure handling, sibling differentiation, scope exclusion, and disclaimer. It is front-loaded with the core purpose and risk signal, and the additional context is tightly packed rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description properly takes on the burden of explaining return values: LOW/MODERATE/ELEVATED risk read, complaint volume and top products/issues, recall count and severity, and litigation totals including last-3-years. It also covers inputs, sources, failure behavior, and exclusions. For a multi-source synthesis tool, this is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 because the schema already documents all three parameters. The description adds context about how the data legs use the inputs, but it does not provide additional per-parameter meaning beyond the schema's own descriptions. It is adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific, differentiated purpose: 'One-call CONSUMER-RISK read for a company or brand, LED by the consumer-complaint picture.' It names the exact resource and scope, and explicitly distinguishes itself from product_liability_screen and recall_screen. An agent can immediately tell this is the complaints-led risk profiling tool among many related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit routing guidance: it states this is consumer-complaint-centered versus product_liability_screen (recall/litigation-centered) and directs vehicle-recall use to recall_screen. It also scopes what is and is not covered, such as NHTSA vehicle recalls being out of scope without a specific year/make/model. This leaves little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_infoARead-onlyIdempotentInspect
Get company profile and financial fundamentals. Returns sector, industry, employee count, business description, revenue, gross profit, EBITDA, profit margins, EPS, P/E ratio, forward P/E, dividend yield, beta, market cap, and shares outstanding. Use this for "tell me about Apple", "what does this company do?", "company financials", "what sector is Netflix in?", "how many employees does Tesla have?", or any company research question.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol (e.g., "AAPL") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds the return field list, which is useful in the absence of an output schema, but it does not disclose failure behavior, data coverage limitations, or whether fields can be null for some companies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then a compact field list, then example queries. Every sentence earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with no output schema, the field list and example queries give an agent enough context to call it correctly and interpret the result. A minor gap is the lack of caveats about data availability or symbol validation, but these are not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter symbol is already documented as a stock ticker example ('AAPL'). The description reinforces this with Apple, Netflix, and Tesla examples but does not add meaningful parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Get company profile and financial fundamentals.' It then enumerates the exact returned fields and provides concrete example queries (e.g., 'tell me about Apple', 'what sector is Netflix in?'), distinguishing this tool from sibling tools like stock_quote or company_complaint_profile by its broad company-research scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases and example prompts, making it easy for an agent to route questions like 'how many employees does Tesla have?' to this tool. However, it does not explicitly say when not to use it or name alternatives such as stock_quote for price-specific queries, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_trust_checkARead-onlyIdempotentInspect
One-call public-record trust read for a company - answers 'can I trust this company?' for KYB/vendor-diligence agents. Joins the LiveDataLink sources that carry a legitimacy or risk signal into a single standing read: an OFAC SDN / EU / UN / BIS sanctions screen (a hit is decisive), SEC EDGAR registration plus the latest filing date (legitimacy + recency), USAspending federal award history (the US government transacts with them), and EPA ECHO facility compliance (significant-non-compliance, penalty, and non-compliant-quarter flags). Returns a plain-English verdict band (ESTABLISHED PUBLIC-RECORD STANDING / STANDING WITH FLAGS / LIMITED FOOTPRINT / SANCTIONS SCREEN HIT), the positive signals, the flags to review, and the resolved identifiers. A source that fails is noted, not fatal. This is a public-record SIGNAL read, not a credit report, background check, or endorsement: absence of a record is not proof of wrongdoing and a match is not proof of guilt. Cross-source synthesis.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate the EPA facility search. | |
| ticker | No | Optional stock ticker hint to pin the SEC EDGAR match (e.g. 'LMT'). | |
| company | Yes | Company or organization name to check (e.g. 'Lockheed Martin', 'Acme Widgets LLC'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent, and non-destructive traits, and the description adds substantial behavioral context beyond those. It discloses that a failing source is noted but non-fatal, enumerates the four verdict bands, and warns that absence of a record is not proof of wrongdoing while a match is not proof of guilt. This gives the agent a clear interpretive framework for the results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but every sentence earns its place: the one-call framing, source list, verdict bands, failure handling, and caveats all contribute to correct tool use. It is front-loaded with the essential purpose and continues with high-value detail without filler or tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still supplies a clear return contract: named verdict bands, positive signals, flags, resolved identifiers, and source-failure behavior. It covers selection context, interpretation limits, and failure semantics for a multi-source tool. The described outcomes are sufficient for an agent to invoke the tool and understand what comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents company, state, and ticker meaning. The description adds indirect context by naming SEC EDGAR and EPA ECHO as sources, but it does not add new parameter-level format, constraints, or behavioral details beyond what the schema provides. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'One-call public-record trust read for a company' and directly answers 'can I trust this company?' for KYB/vendor-diligence agents. It names concrete evidence sources and output categories, clearly separating it from generic company info or single-source screening siblings. The 'not a credit report' caveat further tightens scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the intended use case: a synthesized public-record trust signal for KYB/vendor-diligence agents. It also gives high-level exclusions ('not a credit report, background check, or endorsement'). However, it does not explicitly name sibling tools such as sanctions_screen_entity or edgar_company_facts, so alternative routing is implicit rather than fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_bill_actionsARead-onlyIdempotentInspect
Get the chronological legislative action history for one bill (introductions, committee referrals, votes, becoming law). Requires Congress number, bill type, and bill number.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max actions (default 50). | |
| congress | Yes | Congress number. | |
| bill_type | Yes | Bill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres. | |
| bill_number | Yes | Bill number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior. The description adds useful behavioral context by saying the output is chronological and includes introductions, committee referrals, votes, and law status, but it does not disclose response shape, pagination behavior, or other limits beyond what annotations and schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core purpose, content examples, and required parameters with no filler. The main action is front-loaded, and every sentence adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only one-bill lookup, the description covers what the tool returns, the scope, and the prerequisites. It does not describe return value shape explicitly, but the action-history examples sufficiently communicate expected output for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter already has a meaningful description, including expanded enum labels. The description only repeats the required parameter names ('Congress number, bill type, and bill number') without adding new semantic detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('chronological legislative action history') scoped to 'one bill'. It clearly distinguishes this from siblings like congress_bill_details, congress_bill_cosponsors, and congress_house_votes by naming a distinct bill-action-history resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a caller has a specific bill (Congress number, bill type, bill number) and needs its action history. It does not explicitly name alternatives or exclusions, but the 'for one bill' scope gives clear context against search-style siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_bill_cosponsorsARead-onlyIdempotentInspect
List the cosponsors of one bill with their party and state. Useful for mapping coalitions behind legislation. Requires Congress number, bill type, and bill number.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max cosponsors (default 250). | |
| congress | Yes | Congress number. | |
| bill_type | Yes | Bill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres. | |
| bill_number | Yes | Bill number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that cosponsors come with party and state and that the tool requires Congress number, bill type, and bill number, but it does not disclose additional behavioral details such as pagination, default limits, or error behavior. With annotations carrying the main burden, a mid score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core action is front-loaded, followed by the use case and required parameters, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with fully documented parameters, the description covers the purpose, return content, and required inputs. It does not explicitly mention the optional limit parameter, but that is already documented in the schema, so the overall information is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters including the enum values for bill_type and the default for limit. The description merely restates that Congress number, bill type, and bill number are required, adding no semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('cosponsors of one bill'), and it names the returned fields ('party and state'). This makes the tool's purpose immediately distinguishable from sibling congressional tools like congress_bill_actions or congress_bill_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('mapping coalitions behind legislation') and states the required inputs. It does not explicitly name alternatives or exclusion conditions, but the intended context is clear enough for an agent to know when this tool is relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_bill_detailsARead-onlyIdempotentInspect
Get full detail for one bill, including title, sponsor, latest action, policy area, and a cosponsor party breakdown. Requires the Congress number, bill type, and bill number (e.g. 118, 'hr', 3076).
| Name | Required | Description | Default |
|---|---|---|---|
| congress | Yes | Congress number, e.g. 118. | |
| bill_type | Yes | Bill type code: hr (House Bill), s (Senate Bill), hjres, sjres, hconres, sconres, hres, sres. | |
| bill_number | Yes | Bill number, e.g. 3076. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive, covering the safety profile. The description adds useful context about what fields are returned and requires the three identifying inputs, but it does not disclose edge-case behavior such as missing bills or rate limits. This is acceptable but not exceptional for a simple lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states purpose and expected output fields, the second states the required parameters with a concrete example. Everything in the description earns its place and is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only lookup, the description plus fully covered schema is nearly complete: it lists output contents, required inputs, and a concrete example. The only minor gap is the lack of explicit routing guidance relative to related congress bill tools, but correct invocation is not hindered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter—congress, bill_type, and bill_number—already has a clear description with enum values for bill_type. The description's example (118, 'hr', 3076) adds a small formatting confirmation but no substantive new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get full detail for one bill') and enumerates the exact fields returned: title, sponsor, latest action, policy area, and cosponsor party breakdown. This clearly differentiates it from search-style siblings and from more narrowly scoped tools like congress_bill_actions or congress_bill_cosponsors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case—when a specific, known bill's comprehensive details are needed—and states the required identifiers. It provides no explicit guidance about when not to use it or which sibling tool to use instead, so an agent must infer routing from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_house_votesARead-onlyIdempotentInspect
List recent U.S. House roll-call votes for a Congress, with vote number, question, result, and date. Defaults to the current Congress.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max votes (default 20). | |
| congress | No | Congress number (default current, 91). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool is read-only, idempotent, and non-destructive. The description adds that results include vote number, question, result, and date, and that the congress parameter defaults to the current Congress. It does not specify ordering or pagination beyond limit, but that is a minor gap given the read-only profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the verb and resource, then packs a compact field list and default behavior. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list with two optional parameters, the description plus schema covers input and expected output fields. The absence of an output schema is partially mitigated by listing returned fields; ordering and pagination semantics remain unspecified but are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so defaults and meaning of limit and congress are already documented. The description only restates the current-Congress default and does not add format or syntax details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('List') on a specific resource ('U.S. House roll-call votes') and names the returned fields. The tool is clearly distinct from sibling Congress tools such as bill details or recent laws.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary use case explicit: retrieving recent House roll-call votes, optionally filtering by Congress and limit. It does not explicitly name alternatives or exclusions, but there is no overlapping sibling tool for roll-call votes, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_member_detailsARead-onlyIdempotentInspect
Get detailed profile for one member of Congress by bioguide ID (e.g. 'P000197'), including party history, terms served, and leadership roles.
| Name | Required | Description | Default |
|---|---|---|---|
| bioguide_id | Yes | Bioguide ID, e.g. 'P000197'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and non-destructive, so there is no safety contradiction. The description adds useful behavioral context by listing what the profile includes (party history, terms served, leadership roles), which is especially valuable because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb and resource, then the ID format example and returned content. Every clause adds information; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only lookup with no output schema, the description gives the agent everything essential to invoke it correctly: required ID, an example, and the shape of the result. It does not mention error behavior or how to obtain an ID, but that is not essential for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the schema already describes bioguide_id and provides the same example. The description repeats the example but adds no further semantic detail, so the schema carries the burden and 3 is the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') and resource ('detailed profile for one member of Congress'), and clearly identifies the key identifier (bioguide ID) with an example. It distinguishes itself from sibling search tools like congress_search_members by indicating this is a single-member detail lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the right use case: use when you already have a bioguide ID and want a single member's detailed profile. It does not explicitly name alternatives or exclusions, such as using congress_search_members to first find the bioguide ID, so it stops short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_recent_lawsARead-onlyIdempotentInspect
List bills that have become public or private law in a given Congress. Defaults to the current Congress. Use law_type 'pub' for public laws or 'priv' for private laws.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20). | |
| congress | No | Congress number (default current, 91). | |
| law_type | No | Law type: 'pub' or 'priv'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive nature of the tool. The description adds the default-to-current-Congress behavior and law_type semantics, but does not disclose ordering, recency bounds, or other behavioral details beyond the schema. This is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences carry the full purpose, default behavior, and parameter instructions. No filler or redundancy; the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only listing tool with rich annotations and a fully described schema, the description is complete enough for correct invocation. It does not describe the return format, but the absence of an output schema and the simplicity of the tool make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description reinforces the meaning of law_type ('pub' for public laws, 'priv' for private laws) and the default congress, but adds little beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List bills that have become public or private law') and the resource scope ('in a given Congress' or current Congress). This distinguishes it from sibling tools like congress_search_bills or congress_bill_details by focusing specifically on enacted laws, not bills in progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: defaults to the current Congress and instructs how to choose law_type. It does not explicitly name alternatives or state when not to use the tool, but the context is sufficient for an agent to choose it correctly for listing enacted laws.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_search_billsARead-onlyIdempotentInspect
Search or list recent U.S. federal bills and resolutions from Congress.gov. Returns the most recently updated bills, optionally scoped to a Congress number or filtered by a free-text query. Use this to find legislation by topic or to see what is currently moving.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order, e.g. 'updateDate+desc' (default) or 'updateDate+asc'. | |
| limit | No | Max results (1-250, default 20). | |
| query | No | Optional free-text keyword filter (e.g. 'inflation', 'semiconductor'). | |
| offset | No | Pagination offset. | |
| congress | No | Congress number (e.g. 91 is current). Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context by stating that results are 'the most recently updated bills' and are optionally scoped/filtered, but it does not disclose additional traits like pagination behavior or response structure beyond what the schema already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by return behavior and a concrete use case. Minor redundancy exists between 'recent... bills and resolutions' and 'most recently updated bills,' but overall every sentence contributes useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search/list tool with fully documented parameters, the description is adequate: it states the resource, the result focus, the optional filters, and the intended use. No output schema exists, so a bit more detail about the response shape could improve completeness, but the description covers the essential selection and invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters already have meaningful descriptions. The tool description lightly echoes the query and congress parameters but adds no new semantic detail beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb and resource: 'Search or list recent U.S. federal bills and resolutions from Congress.gov.' It further narrows the purpose with 'most recently updated bills' and explains the use case as finding legislation by topic or seeing what is currently moving, which distinguishes it from sibling tools like congress_bill_details or congress_recent_laws.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context for when to use the tool: 'Use this to find legislation by topic or to see what is currently moving.' However, it does not state exclusions or explicitly mention alternatives, such as using congress_bill_details for a specific bill's full record or congress_recent_laws for enacted laws.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
congress_search_membersARead-onlyIdempotentInspect
Search members of Congress, optionally filtered by Congress number, two-letter state, and district. Returns name, party, chamber, and bioguide ID (use that ID with congress_member_details).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20). | |
| state | No | Two-letter state code, e.g. 'TX'. | |
| congress | No | Congress number. | |
| district | No | House district number. | |
| current_member | No | Limit to currently-serving members. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds behavioral value by specifying the exact output fields (name, party, chamber, bioguide ID) and the downstream use of the ID, which is helpful given there is no output schema. It does not mention pagination or ordering, but this is a minor omission for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the action and filters are up front, return values are stated next, and the cross-reference is last. Every clause earns its place and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with no required parameters and a fully described input schema, the description covers the search filters, the return fields, and the natural next step (congress_member_details). The lack of an output schema is partially compensated by the explicit return field list, though details like pagination or result count are not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters and their types. The description restates the filtering semantics for Congress, state, and district but adds no new meaning beyond that; it omits the limit and current_member parameters entirely. A 3 is the appropriate baseline when the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and resource ('members of Congress'), and enumerates the optional filters and return fields. This clearly distinguishes it from congress_search_bills and congress_member_details, so an agent can tell what the tool is for without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear use case: searching members by optional filters rather than retrieving details for a known member. It also gives a concrete routing hint by saying the returned bioguide ID should be used with congress_member_details. It does not explicitly exclude bill searches or other sibling tools, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contractor_license_sourcesARead-onlyIdempotentInspect
Official contractor-license verification sources and freshness caveats for 12 states. Use this before a state lookup so an agent can route work to the authoritative board instead of relying on a lead database.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter state code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint, idempotentHint, and destructiveHint false, the annotations already establish a safe read-only profile. The description adds context beyond that: the output includes 'freshness caveats' and the tool is meant to direct agents to authoritative boards. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It opens with the core deliverable and immediately follows with the usage directive, so the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only reference tool, the description covers the key facts: what it provides, which states it covers, and when to call it. Although there is no output schema, 'sources and freshness caveats' gives an adequate sense of the return value. It does not detail the output structure, but that is not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the state parameter has a clear description ('Two-letter state code') and an enum constraining the 12 valid values. The description adds no parameter-specific detail beyond confirming the 12-state scope, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the tool as providing 'official contractor-license verification sources and freshness caveats' for a fixed set of states, which is a specific resource. It also clarifies its role in routing work to the authoritative board. However, it lacks an explicit verb like 'returns' and does not differentiate from sibling tools by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs the agent to use this tool 'before a state lookup' and frames the goal as routing to authoritative sources 'instead of relying on a lead database.' This provides clear when-to-use context. It does not name alternative tools or state exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contractor_multistate_routeARead-onlyIdempotentInspect
Build a source-linked contractor-verification checklist for up to 12 supported states. Returns official lookup links, scope boundaries, and freshness caveats; it does not scrape, cache, or resell license records.
| Name | Required | Description | Default |
|---|---|---|---|
| states | Yes | State codes to include. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. On top of that, the description adds concrete behavioral disclosure: what it returns ('official lookup links, scope boundaries, and freshness caveats') and what it deliberately does not do ('does not scrape, cache, or resell license records'). This negative-space disclosure is genuinely valuable and fully consistent with the read-only annotation — no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, roughly thirty words, with the core action front-loaded ('Build a source-linked contractor-verification checklist') and the clarifying exclusions following immediately. Every clause earns its place; there is no boilerplate, redundancy, or restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single required parameter, rich annotations, and no output schema, the description covers the key ground: purpose, output contents (links, scope boundaries, freshness caveats), and behavioral boundaries. The only minor gap is that it does not describe the output's structural form (e.g., per-state checklist layout) or error behavior for unsupported state codes — but given the low complexity, this is a small omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single 'states' parameter is already documented as 'State codes to include' with a 12-value enum. The description adds marginal context by specifying 'up to 12 supported states,' which clarifies the array's intended maximum beyond what the schema conveys. Per the baseline rule for high coverage, this is adequate but does not substantially exceed the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Build a source-linked contractor-verification checklist for up to 12 supported states.' It clearly defines the deliverable (a checklist of official lookup links) and the negative space ('does not scrape, cache, or resell license records'). However, it does not explicitly differentiate from closely-related siblings like contractor_license_sources or wa_contractor_verify, leaving the multi-state vs single-state distinction implicit in the name only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'for up to 12 supported states' and the state enum in the schema — the agent can infer this is for multi-state contractor verification. But the description offers no explicit when-to-use guidance, no exclusions, and does not name alternatives such as contractor_license_sources (for raw license sources) or wa_contractor_verify (for single-state verification).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corporate_ownership_treeARead-onlyIdempotentInspect
One-call FULL corporate-ownership tree for a company from GLEIF (keyless CC0 reference data). Give a company name or a 20-character LEI; the tool resolves the entity, climbs to its ULTIMATE parent (top of the ownership chain), then walks DOWN from that root to list the reported direct subsidiaries plus one level of grand-subsidiaries, each with its LEI, jurisdiction, and status (entity ACTIVE/INACTIVE + LEI registration ISSUED/LAPSED). The queried entity is marked in the tree so you can see where it sits. Distinct from resolve_entity, which returns the ultimate parent plus a subsidiary COUNT only: this returns the actual subsidiary LIST/tree for M&A, diligence, and counterparty mapping. The tree is capped (about 25 nodes) so a broad conglomerate stays bounded, with an 'and N more' note where GLEIF reports additional subsidiaries. Only relationships an entity self-reports to GLEIF are shown, so coverage varies by company. A failing hierarchy hop is noted, not fatal. Informational public-record synthesis; verify against GLEIF before relying on it.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Optional exact 20-character LEI code to anchor the tree directly (e.g. '5493006MHB84DD0ZWV18'). Overrides a name search. | |
| company | No | Company / organization name (e.g. 'Alphabet Inc.', 'JPMorgan') or a 20-character LEI code. Provide this or 'lei'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite strong annotations (read-only, non-destructive, open-world), the description adds substantial behavioral context: the tree is capped at ~25 nodes, extra subsidiaries appear as an 'and N more' note, failing hierarchy hops are noted rather than fatal, and results are self-reported public-record data that should be verified. These details inform the agent about edge cases and data reliability beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: it covers the tool's core behavior, algorithm, edge cases, data caveats, and differentiation from a sibling. The most important information is front-loaded, and the structure follows a logical flow from what it does, to how it works, to limitations and verification advice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tree-building tool with no output schema, the description is remarkably complete. It explains the resolution flow, the ultimate-parent-and-descend approach, the returned fields (LEI, jurisdiction, status), how the queried entity is marked, the node cap, and the self-reporting limitation. An agent has enough context to invoke the tool correctly and interpret its results appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both 'company' and 'lei' are already documented fully in the input schema. The description repeats the name-or-LEI option and notes that LEI overrides name search, but this is also present in the schema. It adds no meaningful semantic detail beyond what the schema already conveys, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('One-call FULL corporate-ownership tree') and immediately identifies the data source (GLEIF). It clearly distinguishes itself from resolve_entity, which returns only an ultimate parent and count, while this tool returns the actual subsidiary list/tree. This leaves no ambiguity about what the tool does or how it differs from a near-named sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('for M&A, diligence, and counterparty mapping') and contrasts it with resolve_entity, which returns less information. It also explains the input alternatives (company name or 20-character LEI) and the key caveat that coverage is limited to self-reported relationships. This gives sufficient routing guidance without needing to inspect sibling tool schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cost_of_doing_business_indexARead-onlyIdempotentInspect
One-call comparative 'cost of operating a business here' read for a US state (with optional metro context). Joins three independent public sources, each a real operating-cost dimension expressed RELATIVE to the US national average (national = 1.00) so the result is a readable, comparable index: LABOR cost from BLS QCEW private-sector average annual pay across all industries (keyless), ENERGY cost from EIA retail electricity price for the commercial and industrial sectors (state vs national), and local CONTEXT from US Census ACS median household income, per-capita income, and median gross rent (needs a Census key; degrades gracefully). Returns a headline relative-cost banding (LOW / MODERATE / HIGH cost vs national) from a labor-weighted composite of the labor and energy indices, with each dimension's numbers and its own banding shown. Labor and energy are state-level; a supplied metro refines the context leg and label only. A source that fails is noted, not fatal. Informational, not a guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| metro | No | Optional 5-digit CBSA/metro code (e.g. '12420' for Austin, TX) to refine the Census local-context leg and the label. Labor and energy remain state-level. | |
| state | Yes | US state as a 2-letter code (e.g. 'TX', 'CA', 'NY') or 2-digit FIPS (e.g. '48'). Required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations by disclosing source composition, key requirements (Census key needed, BLS keyless), graceful degradation when a source fails, state-level vs metro-level scope, and the 'informational, not a guarantee' caveat. It also explains the composite banding logic. This is rich, non-redundant behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, every sentence earns its place: headline purpose, source methodology, output format, scope limitations, failure behavior, and disclaimer. The most important information is front-loaded, and the structure is logical and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain what the caller can expect to receive. It does: a headline LOW/MODERATE/HIGH banding from a labor-weighted composite, per-dimension numbers and bandings, and graceful handling of source failures. Nothing essential for selecting or invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters well. The description mainly restates what the schema says about metro refining the Census context leg and labor/energy staying state-level; it adds no new parameter-level meaning beyond the existing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'One-call comparative cost of operating a business here read for a US state (with optional metro context).' It clearly identifies the tool's unique domain and distinguishes it from neighboring economic, census, and energy tools by specifying that it joins labor, energy, and local-context sources into a comparative index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: a single-call comparative cost-of-business read for a US state, optionally refined by metro. It does not explicitly name alternatives or exclusions, such as when to prefer a more specialized BLS/EIA/census tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
counterparty_risk_scoreARead-onlyIdempotentInspect
Compute a composite 0-100 Counterparty Risk Score for a company name. Combines findings from sanctions screening (OFAC/UN/EU/BIS), SEC EDGAR (registered-filer signal), federal courts (litigation history), EPA ECHO (environmental enforcement), and USAspending (federal contract vetting) into a single weighted metric with an explainable evidence chain. Returns: score, risk band (clean/low/moderate/elevated/high/critical), itemized evidence with citations, sources queried, sources that failed, and a plain-text summary suitable for an AI agent to surface to a user. Sanctions hits zero the score regardless of other signals. Use this when you need a single-call counterparty risk verdict instead of stitching five separate queries.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Company or entity name to score. Examples: 'Lockheed Martin', 'Acme Holdings BV', 'Pfizer Inc'. Common suffixes (Inc/LLC/Ltd/Corp) are normalized automatically. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/idempotent annotations by disclosing that the score is weighted and composite, that sanctions hits zero the score regardless of other signals, and that the output includes an explainable evidence chain plus a list of sources that failed. This is substantive behavioral context an agent needs to interpret and trust the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence carries operational value: what the score means, which sources feed it, what the output includes, a critical exception rule, and when to use it. The structure front-loads the core function and then expands logically through inputs, behavior, and outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description appropriately enumerates the return fields: score, risk band, itemized evidence, sources queried, sources that failed, and a plain-text summary. Combined with the single parameter's full schema documentation and the explicit usage condition, the description is complete for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage of the single parameter company_name, including examples and automatic normalization of common suffixes. The description does not need to add parameter detail and does not materially extend what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compute a composite 0-100 Counterparty Risk Score for a company name.' It names the exact data sources involved and the output type, and it distinguishes the tool from the alternative of stitching five separate queries, making its purpose unmistakable among a large sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this when you need a single-call counterparty risk verdict instead of stitching five separate queries.' This gives the agent a clear decision rule and an implicit contrast with granular source-specific tools, even though those tools are not named individually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_case_searchBRead-onlyIdempotentInspect
Search federal and state court opinions by keyword, court, judge, party name, or date range. Returns case summaries with citations.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Court ID, e.g. 'scotus', 'ca9', 'nysd'. | |
| judge | No | Judge name filter. | |
| limit | No | Max results (1-50, default 10). | |
| party | No | Party name filter. | |
| query | No | Free-text search query. | |
| date_filed_after | No | ISO date YYYY-MM-DD. | |
| date_filed_before | No | ISO date YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the return shape ('case summaries with citations') and the federal/state coverage scope, which is helpful, but it does not disclose pagination, result limits, ordering, or coverage caveats beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the search scope and filter options, then states the return format. There is no filler or redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a read-only search tool: it states what is searched, which filters matter, and what is returned. However, it lacks guidance on distinguishing this sibling from other court-search tools and does not mention result limits or pagination behavior, making it only minimally complete for a tool with 7 parameters and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enumerates keyword, court, judge, party name, and date range, which maps cleanly onto the schema properties, but it does not add meaning beyond what the schema already provides, such as query syntax or filter combination behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and clearly identifies the resource ('federal and state court opinions') plus the main filter dimensions. It does not explicitly distinguish this tool from closely related siblings like court_opinion_search or caselaw_search, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for finding court opinions by common legal filters, but it provides no explicit guidance on when to prefer this over alternatives such as court_opinion_search, caselaw_search, court_docket_lookup, or court_judge_lookup. There are no exclusions or 'use X instead' signals, which is a notable gap given the large sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_citation_resolverBRead-onlyIdempotentInspect
Resolve a legal citation (e.g. '410 U.S. 113') to its CourtListener case record.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | Citation string, e.g. '410 U.S. 113'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds clarification that this resolves to a CourtListener case record, but it does not disclose behavior for unresolved citations or what a 'case record' contains. This is acceptable given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It states the action, gives an illustrative example, and names the output target efficiently. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter, read-only, idempotent lookup, the description plus schema and annotations supply enough to invoke the tool correctly: the citation format and the intended result. It lacks usage-alternative guidance and output-format detail, but the low complexity and rich annotations keep it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the single 'citation' parameter with the same example ('410 U.S. 113'), and schema description coverage is 100%. The tool description repeats the example without adding new meaning, so the parameter semantics remain at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Resolve'), a specific resource ('a legal citation'), and an output target ('its CourtListener case record'). The example citation makes the purpose concrete, but it does not explicitly distinguish this from overlapping siblings like caselaw_citation_lookup or court_case_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as caselaw_citation_lookup, court_case_search, or court_opinion_search. The description implies a citation-to-record lookup but does not state exclusions or recommend sibling tools for other citation-related needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_docket_lookupARead-onlyIdempotentInspect
Look up a federal docket by court ID and docket number. Returns party list and recent entries from PACER/RECAP.
| Name | Required | Description | Default |
|---|---|---|---|
| court | Yes | Court ID, e.g. 'nysd'. | |
| docket_number | Yes | Docket number, e.g. '1:23-cv-04567'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, lowering the disclosure burden. The description adds useful behavioral context beyond annotations by identifying the data source (PACER/RECAP) and the specific output components (party list and recent entries), which helps set expectations for the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the action, follows with the required inputs, and ends with the expected output. Every phrase contributes useful information, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only lookup, the description covers the essential inputs, the general source of data, and the type of content returned. It does not detail edge cases or result size limits, but given the annotations and schema richness, this is a minor gap rather than a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters already include type and example values in the schema. The description essentially restates 'court ID' and 'docket number' without adding substantive new meaning beyond what the schema provides, so it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') with a precise resource ('federal docket') and the exact identifying inputs ('court ID and docket number'). It also states the return content ('party list and recent entries from PACER/RECAP'), making the tool's function clear and distinct from sibling search-oriented court tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when the user has both a court ID and a docket number. However, it provides no exclusions or explicit guidance on when to prefer related sibling tools such as court_case_search or court_recent_filings, so the routing guidance is left mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_judge_lookupARead-onlyIdempotentInspect
Look up a judge profile by name or CourtListener person ID. Returns positions, education, and bench history.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Judge full or partial name, or numeric person ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, and non-destructive, lowering the bar. The description adds useful return-content context, but it does not disclose behavior around partial matches, multiple judges with the same name, or unavailable data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the action and lookup keys front-loaded. There is no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with strong annotations and clear schema coverage, the description provides the essential invocation contract and summarizes the return payload. It could mention match/disambiguation behavior, but nothing critical to calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single parameter as a full or partial name or numeric person ID, so the description adds little beyond that. The description does clarify that the person ID is a CourtListener ID, which provides helpful source context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') and identifies a clear resource ('judge profile'), along with the lookup keys and returned fields. It is easily distinguished from sibling court tools like court_case_search, court_docket_lookup, and court_opinion_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: whenever a judge's positions, education, or bench history is needed, and by name or CourtListener person ID. It does not explicitly name alternatives or exclusions, but no sibling tool covers judge profiles, so the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_opinion_searchBRead-onlyIdempotentInspect
Full-text search of court opinions. Returns opinion text snippets, authors, and citations.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court ID filter. | |
| limit | No | Max results (1-50, default 10). | |
| query | Yes | Search text required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive, so the description does not need to restate safety. It adds value by disclosing the return shape (text snippets, authors, citations) but not search behavior details such as required query, optional filtering, pagination, or limitations. This adds modest context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the core action and primary return fields are front-loaded. Every phrase adds information, and the description is appropriately sized for a simple search tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with complete schema coverage and read-only annotations, the description provides a workable overview of output. However, it omits any usage guidance or sibling differentiation, and with no output schema the return-shape sentence is the only behavioral detail. There are clear but non-fatal gaps for an agent selecting among many court/caselaw tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents query, court, and limit clearly. The description adds no parameter-level detail beyond the general full-text search notion, but the complete schema means it does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (court opinions) and the operation (full-text search), and states the return fields (snippets, authors, citations). It is clear and specific, but it does not explicitly differentiate itself from sibling search tools like caselaw_search or court_case_search, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to prefer this tool over siblings (e.g., caselaw_search, court_case_search, court_oral_argument_search) or when not to use it. The description only implies a search use case, with no exclusions or alternative routing. This leaves the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_oral_argument_searchARead-onlyIdempotentInspect
Search SCOTUS and federal appellate oral argument audio. Returns audio URLs and transcript snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court ID filter. | |
| limit | No | Max results (1-50, default 10). | |
| query | Yes | Search text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the return value context (audio URLs and transcript snippets), which is useful but does not disclose other behavioral traits such as pagination, court ID format, or result structure. This matches the baseline for a read-only tool with some added return info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Search SCOTUS and federal appellate oral argument audio. Returns audio URLs and transcript snippets.' Every word contributes to the purpose and output, with no filler or repetition. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 3 well-documented parameters, the description plus schema is largely complete. It names the scope and return content, and annotations cover the read-only behavior. The lack of an output schema means the agent does not know the exact result shape, but the basic response type is stated. This is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter (query, court, limit) already documented. The description adds no additional parameter-level detail beyond the schema. Baseline 3 is appropriate since the schema carries the full semantic burden for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb and resource: searching oral argument audio from SCOTUS and federal appellate courts. It also specifies the return type (audio URLs and transcript snippets), which distinguishes it from sibling tools like court_opinion_search and court_case_search. The resource scope is precise enough for an agent to identify when to use it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for finding oral argument audio and transcripts in federal appellate courts. It does not explicitly name alternatives or exclusions, but the scope is so specific that confusion with sibling tools is unlikely. A slight improvement would be mentioning that written opinions belong to court_opinion_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
court_recent_filingsARead-onlyIdempotentInspect
Recent docket entries filed in a specific court, ordered newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| court | Yes | Court ID, e.g. 'nysd', 'cand'. | |
| limit | No | Max results (1-50, default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds genuine behavioral context beyond annotations: newest-first ordering and that results are scoped to a single court's docket entries. Nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence with zero filler: the core resource ('recent docket entries'), scope ('specific court'), and ordering ('newest first') are all present, and the ordering detail is placed at the end as a qualifier. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter, read-only, idempotent tool with no nested objects, the description covers what, where, and ordering. No output schema exists, so return shape is unspecified, but for a recent-list tool this is a minor gap rather than a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (court with examples 'nysd'/'cand', limit with range and default). With full coverage the baseline is 3; the description's phrase 'in a specific court' only marginally reinforces the court parameter and adds nothing about limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (recent docket entries) and scope (a specific court), with a clear verb implied ('list/get'). It is semantically distinct from siblings like court_opinion_search and court_judge_lookup, but it does not explicitly differentiate from court_docket_lookup, which could plausibly overlap in an agent's mind.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied rather than stated: an agent can infer this is for browsing recent docket activity in a court, but the description never says when to prefer this over court_docket_lookup, court_case_search, or the caselaw tools. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpsc_recall_searchARead-onlyIdempotentInspect
Search U.S. Consumer Product Safety Commission (CPSC) product recalls via SaferProducts.gov (keyless). Filter by product name/keyword, title, manufacturer, hazard, recall number, and date range. Returns recall number, date, title, products, hazards, remedy, manufacturers, injuries, and the official CPSC recall URL. Data: CPSC/SaferProducts.gov.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max recalls to return (default 25). | |
| title | No | Recall title keyword filter. | |
| hazard | No | Hazard keyword filter (e.g. 'fire', 'choking', 'laceration'). | |
| product | No | Product name filter (e.g. 'stroller', 'space heater'). | |
| date_end | No | Recalls on/before this date (YYYY-MM-DD). | |
| date_start | No | Recalls on/after this date (YYYY-MM-DD). | |
| manufacturer | No | Manufacturer name filter. | |
| recall_number | No | Exact CPSC recall number (e.g. '26561'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add operational context. It does so by noting 'keyless' access, naming the data source, and listing the exact returned fields including the official recall URL. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and source. The only minor inefficiency is that 'Data: CPSC/SaferProducts.gov' repeats the source already named in the first sentence, so it's not perfectly zero-waste, but it is still appropriately sized and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating return fields, which is good. It covers nearly all parameter categories except pagination/limit behavior and date format examples, but the schema already documents date formats and the default limit. Overall this is sufficient for an 8-parameter read-only search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description summarizes the filters that map to schema parameters but adds no new meaning beyond what each parameter description already states. It doesn't mention the 'limit' parameter explicitly, though the schema covers it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), names the exact resource (U.S. Consumer Product Safety Commission product recalls via SaferProducts.gov), and enumerates the available filters. It clearly distinguishes itself from related tools like cpsc_recent_recalls by emphasizing filtering and search rather than just listing recent recalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('Filter by...', 'Returns...') but never explicitly states when to prefer this over siblings like cpsc_recent_recalls or vehicle_recalls. It gives clear context but no exclusions or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cpsc_recent_recallsARead-onlyIdempotentInspect
Return the most recent U.S. CPSC product recalls (date-sorted, newest first) via SaferProducts.gov (keyless). Looks back a configurable window (default 90 days). Each result links to the official CPSC recall page. Data: CPSC/SaferProducts.gov.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent recalls to return (default 10). | |
| lookback_days | No | How many days back to scan (default 90). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral context: keyless access via SaferProducts.gov, date sorting, configurable lookback window, and that each result links to the official CPSC recall page. It goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no fluff, with the core purpose and sort order front-loaded. The second sentence adds the configurable window and the third clarifies output behavior (links to official pages). Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity list tool with no required parameters and no output schema, the description is largely complete: it states source, access method, sorting, default window, and linkage. It does not enumerate the fields in each result or mention pagination, but the simple result shape and annotations make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit and lookback_days) are already documented in the schema. The description adds the default lookback window (90 days) and implies limit controls result count, but it does not significantly extend the schema's parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Return'), a specific resource ('most recent U.S. CPSC product recalls'), and adds distinctive scope details: date-sorted newest first, configurable lookback, and links to official CPSC pages. It also clearly distinguishes itself from the sibling cpsc_recall_search by emphasizing recency rather than search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when the caller wants the most recent recalls within a time window rather than a keyword-based search. However, it does not explicitly mention alternatives like cpsc_recall_search or state when not to use this tool, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_compareARead-onlyIdempotentInspect
Compare 2-5 cryptocurrencies side by side. Shows price, 24-hour change, market cap, volume, and rank for each coin in a comparison table. Use this for 'compare bitcoin and ethereum', 'BTC vs ETH vs SOL', 'which is bigger bitcoin or ethereum?', 'compare top cryptos', 'crypto head to head', or any multi-coin comparison question.
| Name | Required | Description | Default |
|---|---|---|---|
| coins | Yes | Coin names or tickers, 2-5 coins. Accept either CSV string ('bitcoin,ethereum,solana') or array (['bitcoin','ethereum','solana']). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds value by disclosing exactly what the output contains: price, 24-hour change, market cap, volume, and rank in a comparison table. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, quickly lists the output fields, and then provides concrete query examples. No filler or redundant statements; each sentence contributes to helping the agent recognize and invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only comparison tool with full schema coverage and rich annotations, the description is complete. It defines scope, input constraints, output contents, and usage examples, so an agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the 'coins' parameter, including accepted formats (CSV string or array) and the 2-5 limit. The description reinforces this with examples but does not add meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compare 2-5 cryptocurrencies side by side.' It is clearly a multi-coin comparison tool, distinguished from siblings like crypto_price, crypto_info, and crypto_trending by the explicit comparison-table framing and multi-coin examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage triggers with 'Use this for' followed by concrete query examples such as 'BTC vs ETH vs SOL' and 'which is bigger bitcoin or ethereum?' It clearly implies when to choose this tool, though it does not explicitly name sibling alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_infoARead-onlyIdempotentInspect
Get a detailed profile for any cryptocurrency including description, market data, supply info, all-time high/low, genesis date, blockchain, categories, and website links. Use this for 'tell me about bitcoin', 'what is ethereum?', 'solana info', 'describe cardano', 'crypto profile', 'coin details', or any question asking for background information about a specific cryptocurrency project.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Cryptocurrency name or ticker (e.g., 'bitcoin', 'BTC', 'ethereum') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the type of data returned (market data, supply info, all-time high/low, etc.) but does not disclose limitations such as data freshness, coverage gaps, or rate limits. It adds some value without being rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the core action front-loaded and a detailed but relevant list of output contents. The example queries are slightly repetitive but serve as useful usage triggers. No wasted sentences, though the example list could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup tool with no output schema, the description adequately conveys what the tool returns by enumerating the key data categories (description, market data, supply info, all-time high/low, genesis date, blockchain, categories, website links). It is complete enough for an agent to select and invoke correctly, though it does not cover error scenarios or data-source caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the input schema already describes the 'coin' parameter with examples ('bitcoin', 'BTC', 'ethereum'). The tool description reinforces 'any cryptocurrency' and provides example prompts, but it does not add additional parameter-level semantics beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a detailed profile for any cryptocurrency' and lists the contents (description, market data, supply info, all-time high/low, genesis date, blockchain, categories, website links). It is clear and distinguishes itself from price/compare/trending siblings implicitly through the profile focus, though it does not explicitly name a sibling to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance with example queries: 'Use this for “tell me about bitcoin”, “what is ethereum?”, “solana info”' and generalizes to 'any question asking for background information about a specific cryptocurrency project.' It does not state when not to use it or name alternative tools like crypto_price or crypto_compare, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_priceARead-onlyIdempotentInspect
Get the current price and market data for any cryptocurrency. Returns price in USD, 24-hour change, market cap, volume, and all-time high. Use this for 'what's the price of bitcoin?', 'how much is ethereum?', 'solana price', 'check dogecoin', 'BTC price', 'ETH value', 'crypto price check', or any question about a specific coin's current value. Supports all major cryptocurrencies: bitcoin, ethereum, solana, cardano, ripple/XRP, dogecoin, polkadot, avalanche, chainlink, polygon/MATIC, litecoin, uniswap, stellar, cosmos, NEAR, arbitrum, optimism, aptos, sui, toncoin, shiba inu, pepe, BNB, tether/USDT, USDC, and thousands more via CoinGecko ID.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | Yes | Cryptocurrency name or ticker (e.g., 'bitcoin', 'BTC', 'ethereum', 'ETH') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only, idempotent, non-destructive, and open-world. The description adds useful behavior beyond the schema: the exact data fields returned, the broad supported coin universe, and the CoinGecko ID compatibility. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core function and return values, then gives query examples and supported coins. The supported-coin list is long but serves a real disambiguation purpose for open-world crypto names, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only price lookup tool with no output schema, the description is complete: it states what is returned, how to phrase requests, and which coins are supported. Nothing essential is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful value by listing many accepted coin names/tickers and noting that CoinGecko IDs are supported. This helps agents know what values can be passed beyond the few schema examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's job: getting current price and market data for any cryptocurrency, with a concrete set of returned fields (USD price, 24h change, market cap, volume, all-time high). It is clearly about current price rather than comparison, history, or metadata, though it does not explicitly name or contrast sibling tools like crypto_compare or crypto_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit user-phrase examples ('what's the price of bitcoin?', 'solana price', 'BTC price') and states the general condition: any question about a specific coin's current value. It does not explicitly say when not to use it or mention alternatives, but the usage context is clear and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_trendingARead-onlyIdempotentInspect
See what's trending and hot in cryptocurrency right now. Returns the top trending coins on CoinGecko based on search activity and interest. Use this for 'what's trending in crypto?', 'hot cryptocurrencies', 'trending coins', 'what crypto is popular right now?', 'crypto buzz', 'what tokens are people looking at?', or any question about current crypto market interest and momentum.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: the data source (CoinGecko), the selection basis (search activity and interest), and the time-sensitive nature ('right now'). It doesn't describe output shape, but for a simple no-argument read tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence summary, followed by source detail and a set of example queries. The example list is somewhat long and repetitive, but it serves a useful purpose for matching varied user phrasings; no filler or irrelevant content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with no output schema, the description gives enough context: what it returns, where the data comes from, and what kind of user question it answers. It doesn't specify the exact number of coins or output fields, but those gaps are not critical for an agent deciding whether to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so there are no parameter semantics to clarify. The description reinforces that only current trending data is returned and no user inputs are needed to narrow the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('See what's trending') plus a specific resource: the top trending coins on CoinGecko based on search activity and interest. This distinguishes it from sibling tools like crypto_price, crypto_info, and crypto_compare, which target prices, metadata, and comparisons rather than current market buzz.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this for...' and gives many example user phrasings, making the intended invocation context clear. However, it does not mention alternatives or provide when-not-to-use guidance, such as pointing to crypto_price for price questions or crypto_compare for comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_lookupARead-onlyIdempotentInspect
Full detail for a single CVE by ID (format CVE-YYYY-NNNN). Returns CVSS scores, weakness IDs, references, and affected products from the NVD.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE identifier, e.g. CVE-2024-3094. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavioral context by enumerating what the response contains (CVSS scores, weakness IDs, references, affected products) and identifying NVD as the data source, which helps the agent anticipate the tool's output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tightly structured sentence that front-loads the operation, then supplies the ID format and the return fields. There is no filler, redundancy, or superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with no output schema, the description provides the essential contract: the input format and a clear list of what will be returned. It is well differentiated from the many sibling tools and contains everything an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already provides an example, so the baseline is 3. The description adds a precise format contract 'CVE-YYYY-NNNN' that goes slightly beyond the schema's single example, giving the agent a more general rule for constructing valid identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Full detail for a single CVE by ID.' It also distinguishes the tool from siblings like cve_search_by_keyword and cve_recent by requiring a concrete CVE identifier and promising full detail rather than search results or recent lists, reinforced by the explicit ID format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID (format CVE-YYYY-NNNN)' makes clear the intended use: this tool is for looking up a single CVE when the identifier is known. However, it does not explicitly name alternatives or state when not to use this tool, so it provides clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_recentARead-onlyIdempotentInspect
Recent CVEs published in the last N days (default 7, max 120). Optional vendor and severity filters (CRITICAL, HIGH, MEDIUM, LOW).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days (1-120). | |
| limit | No | Max results (default 50). | |
| vendor | No | Optional vendor filter. | |
| severity | No | Optional CVSS severity filter: CRITICAL, HIGH, MEDIUM, or LOW. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the lookback-window semantics ('published in the last N days'), the default of 7 days, the max of 120, and the available filter dimensions. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences that front-load the core purpose first and then enumerate the filters. There is no filler, no repetition of annotation content, and every clause contributes either scope, a default, or filter information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered-list tool this is nearly complete: annotations carry the safety profile, the schema documents all four optional parameters with 100% coverage, and the description covers purpose, defaults, and filters. Minor gaps are the absence of any note about the shape of returned CVE data (no output schema) and no routing to the sibling CVE tools when the agent needs historical or ID-based lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (days, limit, vendor, severity) is already documented in the schema. The description adds only the default-7-days detail for the lookback window (the schema only gives the 1-120 range); the severity enumeration duplicates the schema. Marginal value over the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource with a clear temporal scope: 'Recent CVEs published in the last N days (default 7, max 120)' plus optional vendor/severity filters. The time-window framing inherently differentiates it from sibling tools cve_lookup, cve_search_by_keyword, and cve_search_by_vendor without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is unambiguous: this tool is for time-bounded CVE discovery, and the optional filters are spelled out. However, it does not explicitly exclude alternatives or name when to prefer cve_search_by_vendor (which also accepts a vendor filter) or cve_lookup (for a known CVE ID); the temporal framing carries most of the differentiation weight.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_search_by_keywordARead-onlyIdempotentInspect
Free-text CVE search with optional date range. Matches keyword against CVE description text in the NVD.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-2000, default 20). | |
| keyword | Yes | Free-text search phrase. | |
| pub_end_date | No | Optional YYYY-MM-DD upper bound. | |
| pub_start_date | No | Optional YYYY-MM-DD lower bound. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly/openWorld/idempotent safety signals, and the description adds that matching occurs against CVE description text with an optional date range. It doesn't mention pagination, result format, or rate limits, but with annotations covering the safety profile this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the core operation and packs the optional date range and match target into one compact phrase. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool, the description plus schema gives an agent enough to call it correctly: keyword is required, optional dates and limit are documented, and the purpose is clear. No output schema exists, so a brief mention of the result shape would slightly improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with useful descriptions for keyword, limit, and date bounds, so the description doesn't need to repeat them. It adds minor clarification that keyword targets description text, but no syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation: free-text CVE search with optional date range, and clarifies the match target is CVE description text in NVD. This distinguishes it from sibling tools like cve_lookup, cve_recent, and cve_search_by_vendor without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for keyword-based description searches and mentions date-range filtering, but it does not explicitly state when to use this tool instead of cve_search_by_vendor or cve_lookup. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_search_by_vendorARead-onlyIdempotentInspect
Search CVEs by vendor with optional product and date range filters. Vendor is matched against the NVD CPE namespace, e.g. 'apache', 'microsoft'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-2000, default 20). | |
| vendor | Yes | Vendor name, lowercase preferred. | |
| product | No | Optional product name filter. | |
| pub_end_date | No | ISO date or YYYY-MM-DD upper bound on published date. | |
| pub_start_date | No | ISO date or YYYY-MM-DD lower bound on published date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the description carries less burden. It adds useful behavioral context by explaining that vendor matching is against the NVD CPE namespace, which affects how the query should be formed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the core purpose and filters, the second clarifies matching semantics with concrete examples. No filler and no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All invocation-critical details are present: required vendor, optional filters, and namespace matching behavior, with annotations covering safety. The lack of an output schema makes a brief return-shape note desirable, but the intent and usage are clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a meaningful description, so the baseline is 3. The description reinforces product and date-range filtering and gives vendor examples, but does not need to compensate for missing schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search CVEs by vendor' with optional product and date range filters. The CPE namespace detail distinguishes this from keyword-based CVE search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys this tool is for vendor-scoped CVE searches and that vendor must be an NVD CPE vendor name like 'apache' or 'microsoft'. It does not explicitly name sibling alternatives, but the context makes the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cwe_lookupARead-onlyIdempotentInspect
MITRE CWE detail by ID (format CWE-NNN or NNN). Returns name, abstraction, status, description, and parent/child CWE relationships.
| Name | Required | Description | Default |
|---|---|---|---|
| cwe_id | Yes | CWE identifier, e.g. CWE-79. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral detail by enumerating the response contents, which is valuable since no output schema is present. It does not cover error or not-found behavior, but for a simple lookup this is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and ID format, then efficiently lists return fields. Every part adds value, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool with no output schema, the description is complete: it states the source, the ID format, and the full set of returned information. No critical details are missing for an agent to correctly invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single cwe_id parameter with an example, and the description supplements this by explicitly defining the accepted formats: 'CWE-NNN or NNN'. This added format guidance goes beyond the schema's example value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a MITRE CWE detail lookup by ID and lists the specific fields returned (name, abstraction, status, description, parent/child relationships). It also distinguishes itself from CVE-related sibling tools by specifying CWE and the accepted ID format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is for retrieving CWE details when a CWE ID is available, and even specifies the accepted ID format. It does not explicitly mention alternatives or exclusions, but the 'by ID' framing makes the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disaster_declarationsARead-onlyIdempotentInspect
Recent FEMA disaster declarations filtered by state, county, incident type, or date range. Returns disaster number, title, dates, and incident category.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return (1-1000, default 50). | |
| state | No | Two-letter state code, e.g. 'TX'. | |
| county | No | Designated area / county name as FEMA records it. | |
| end_date | No | ISO date upper bound on declarationDate. | |
| start_date | No | ISO date lower bound on declarationDate. | |
| incident_type | No | Incident type filter, e.g. 'Hurricane', 'Flood', 'Severe Storm', 'Wildfire'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate safety. It adds some context by naming the return fields and filter dimensions, but it does not disclose behavior like whether filters combine as AND/OR, pagination semantics, or what 'Recent' means in terms of a default time window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the core purpose and then lists both filters and return fields. Every phrase contributes information, with no filler or repetition of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, together with a fully documented input schema, gives an agent enough to invoke the tool and know what to expect in the response. Minor gaps exist around filter combination semantics and the meaning of 'Recent', but these are not critical for basic correct usage of a read-only lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a meaningful description. The tool description adds little beyond naming the filter categories, which partially reinforces the schema but does not provide extra detail such as date format expectations or county name matching behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns recent FEMA disaster declarations and enumerates the filter dimensions (state, county, incident type, date range) and output fields. It is specific about resource and function, though it does not explicitly differentiate itself from sibling tools like disaster_history_summary or disaster_recovery_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'filtered by state, county, incident type, or date range' implies when to use the tool: when a caller needs recent disaster declarations matching those criteria. However, it gives no explicit guidance about when not to use it or which sibling tool to prefer, leaving alternatives unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disaster_history_summaryARead-onlyIdempotentInspect
Multi-year FEMA disaster summary for a location. Buckets declarations by incident type and year so insurance brokers and realtors can assess cumulative risk on the same address used in property_lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter state code. | |
| years | No | Lookback window in years (default 10). | |
| county | No | County name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds behavioral value beyond those hints by explaining the aggregation behavior: declarations are bucketed by incident type and year, and the output supports cumulative risk assessment. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose, then adds the differentiation value and audience context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema, complete parameter descriptions, and strong annotations, the description is largely complete for tool selection and invocation. It names the domain, outcome, and related workflow. It could improve by referencing the output shape or by contrasting with disaster_declarations, but it is not missing critical invocation information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents state, years, and county. The description adds only high-level location context and does not add parameter-level semantics such as formatting, defaults, or interactions between parameters. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: it provides a multi-year FEMA disaster summary for a location and specifies that it buckets declarations by incident type and year. It conveys the tool's analytical purpose and audience, but it does not explicitly distinguish itself from closely related siblings like disaster_declarations or disaster_recovery_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use context: insurance brokers and realtors assessing cumulative risk, and mentions property_lookup as a related workflow. However, it does not explicitly state when to use this tool instead of the other disaster-related siblings, nor does it mention any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disaster_recovery_profileARead-onlyIdempotentInspect
One-call disaster-history and recovery read for a US area (county or place), keyed by NAME + state - distinct from location_risk_report, which scores a single site by address/lat-lon. Joins FEMA's OpenFEMA disaster declarations (the area's federally-declared disaster history: incident types, frequency, most-recent event, and the federal-assistance signal - which programs, Individual Assistance / Individuals & Households / Public Assistance / Hazard Mitigation, were authorized) with optional US Census ACS county population for exposure context (keyed off the FIPS codes the FEMA records carry; needs a Census key and degrades gracefully) and an optional best-effort parcel record for property context when an address is given (Maryland statewide / Texas-Harris County only). Returns a readable profile with a headline banding the area's disaster exposure LOW / MODERATE / HIGH from the declaration record. The FEMA leg is keyless and is the core signal; a source that fails is noted, not fatal. INFORMATIONAL public-record synthesis, NOT an insurance rating, a property flood-risk score, or a professional risk assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | County or place name to profile (e.g. 'Harris', 'Orleans', 'New Orleans'). Use the name without the word 'County'. | |
| state | No | 2-letter US state code (or full state name) to scope the FEMA history (e.g. 'TX', 'LA'). Strongly recommended - required for an accurate county read. | |
| county | No | Alias for area; either may be supplied. | |
| address | No | Optional street address to attach a sample parcel/property record (Maryland statewide or Texas-Harris County only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral context beyond that: the FEMA leg is keyless, the Census leg 'needs a Census key and degrades gracefully,' the parcel leg is limited to Maryland statewide / Texas-Harris County, 'a source that fails is noted, not fatal,' and the output is explicitly an 'INFORMATIONAL public-record synthesis, NOT an insurance rating, a property flood-risk score, or a professional risk assessment.' These key requirements, coverage limitations, failure handling, and scope disclaimers give the agent a realistic model of how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph of roughly 170 words covering purpose, sibling distinction, three data sources, key requirements, coverage limits, failure behavior, output format, and a disclaimer — every clause carries information, so nothing is wasted. The purpose is front-loaded in the first sentence. However, the heavy use of parentheticals and one long joined sentence makes it harder to parse than a structured presentation (e.g., separating the data-leg bullets) would be, so it earns a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description carries the full burden of explaining return values, and it does: a readable profile with a headline exposure band (LOW/MODERATE/HIGH), incident types, frequency, most-recent event, and the federal-assistance program signal. It also discloses per-leg requirements and graceful degradation. The only gap is the absence of explicit differentiation from the sibling tools disaster_declarations and disaster_history_summary — the 'one-call profile' framing implies a distinction but never states when to choose this tool over those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters with examples and notes, establishing a baseline of 3. The description adds cross-parameter meaning beyond the schema: that the tool is keyed by NAME + state together, that state is 'Strongly recommended - required for an accurate county read' (reinforcing the schema nuance), and how the address parameter activates the parcel leg. It also explains the FIPS-code linkage between the FEMA and Census legs, which clarifies the relationship between the area/state inputs and the optional population context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'One-call disaster-history and recovery read for a US area (county or place), keyed by NAME + state.' It names the data sources (OpenFEMA declarations, optional Census ACS, optional parcel record) and the concrete output (readable profile with LOW/MODERATE/HIGH exposure banding). It explicitly distinguishes itself from the most confusable sibling, location_risk_report, by contrasting keying (name+state vs address/lat-lon) and scope (area history vs single-site score).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative tool location_risk_report and the condition that selects it ('scores a single site by address/lat-lon'), which resolves the highest-risk sibling confusion. It also states when the optional legs activate ('when an address is given' for the parcel leg). However, it does not address other nearby disaster siblings such as disaster_declarations or disaster_history_summary, leaving the agent to infer when the profile read is preferable to those raw-query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
earthquake_recentBRead-onlyIdempotentInspect
Recent earthquakes from USGS. Filter by region (lat/lon + radius), state name, magnitude threshold, or time window.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| limit | No | Max events (default 50). | |
| end_time | No | ISO datetime upper bound (default now). | |
| location | No | Address, zip, city, or 'lat,lon' to center the search. Optional. | |
| radius_km | No | Search radius around lat/lon (max ~20000). | |
| start_time | No | ISO datetime lower bound (default 30 days ago). | |
| min_magnitude | No | Minimum magnitude (default 2.5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior, so the bar is lower. The description adds source (USGS) and recency scope, but does not disclose output shape, ordering, or limits beyond what the schema's parameter descriptions already state. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that immediately names the source and then lists the filter dimensions in compact form. It is efficiently sized, though it packs the slightly ambiguous 'state name' phrase into an otherwise tight summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool, the description plus schema defaults and annotations provide a workable picture. However, without an output schema the description does not mention what a result contains or how events are ordered, and no guidance differentiates this from the USGS feed/search siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 6 of 8 parameters, and the description adds semantic grouping: lat/lon + radius_km, magnitude threshold = min_magnitude, time window = start/end_time. However, 'state name' is not a dedicated parameter and relies on the flexible 'location' parameter, which could mislead an agent looking for a state field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear resource (recent USGS earthquakes) and enumerates the main filtering dimensions (region, state, magnitude, time). It is not a tautology and gives enough to distinguish from generic search tools, though it does not explicitly contrast with sibling tools like usgs_earthquake_feed or usgs_earthquake_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by the word 'recent' and the listed filters, but the description gives no explicit when-to-use vs alternatives. An agent must infer from sibling names (feed/search/detail) which tool to pick, so there is clear context but no exclusion or routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_company_factsARead-onlyIdempotentInspect
Get structured XBRL financial facts for a company. Without 'concept', returns the top-level facts catalog (concepts the company has reported). With 'concept' (e.g. 'Revenues', 'Assets', 'EarningsPerShareBasic'), returns the time series of values for that concept.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | No | Optional XBRL concept name (e.g. 'Revenues', 'Assets', 'NetIncomeLoss'). If omitted, returns the catalog of available concepts. | |
| taxonomy | No | Optional XBRL taxonomy (default 'us-gaap'). | |
| identifier | Yes | Ticker symbol or CIK. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already communicate that the tool is read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by explaining the two different response shapes: a concept catalog versus a time series of values. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two well-structured sentences with no filler. The primary purpose is stated first, followed by a concise explanation of the two usage modes. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description does a good job of explaining the return behavior at a high level. It covers the catalog mode and the time-series mode, and the schema fully documents all parameters. A little more detail about the exact output structure would improve completeness, but it is not necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters, so the baseline is 3. The description adds value by clarifying how the optional 'concept' parameter changes the response and by providing concrete examples of valid concept values. The 'identifier' parameter semantics are also clearly described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: retrieving structured XBRL financial facts for a company. It also distinguishes two clear modes based on whether 'concept' is provided, making the tool's purpose and scope immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains when to use the tool with and without the 'concept' parameter, giving explicit invocation context. It does not explicitly name sibling tools or say when not to use it, but the structured data framing makes the intended use evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_company_lookupARead-onlyIdempotentInspect
Look up a public company's CIK (Central Index Key) by ticker symbol or company name. CIK is required for all other EDGAR tools. Returns matches ranked exact-ticker first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | Yes | Ticker (e.g. 'AAPL') or company-name fragment (e.g. 'Apple'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations: matches are ranked exact-ticker first, and the lookup supports both ticker and name fragments. This gives the agent a clearer expectation of results without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core lookup purpose and key ranking behavior stated directly. The most important context—that CIK is the prerequisite for other EDGAR tools—is included early and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup with no output schema, the description covers what the tool does, how queries are matched, and how results are ordered. It does not detail the exact result fields, but the purpose is clear enough that an agent can invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters in detail. The description reinforces the query semantics by mentioning ticker or company name, but adds limited additional parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action—look up a public company's CIK—by ticker symbol or company name. It also establishes how this tool relates to the other EDGAR tools, distinguishing it as the prerequisite lookup rather than a filings or facts tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'CIK is required for all other EDGAR tools' clearly communicates when this tool should be used: as the entry point for EDGAR workflows. It does not explicitly name sibling alternatives or state when not to use it, but the context is sufficient for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_filing_contentARead-onlyIdempotentInspect
Fetch the text content of a specific SEC filing. Returns the primary document (10-K, 10-Q, etc.) stripped of HTML, suitable for LLM consumption. Use edgar_recent_filings first to get the accession number.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | Filer CIK (with or without leading zeros). | |
| max_chars | No | Maximum characters of text to return (default 20000, max 200000). | |
| accession_number | Yes | Accession number (e.g. '0000320193-25-000006' or '000032019325000006'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful return behavior: it returns the primary document, strips HTML, and tailors output for LLM consumption. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what the tool does, what it returns, and the prerequisite step. The most important scoping detail is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately simple fetch tool with no output schema, the description conveys the input workflow, the output nature (plain text, HTML-stripped, primary document), and the consumption use case. Parameter constraints like max_chars and cik formatting are already fully documented in the input schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is met; the description adds value beyond the schema by explaining where the accession number comes from (edgar_recent_filings). It does not repeat parameter names or types, which is appropriate given the schema already documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch'), a precise resource ('text content of a specific SEC filing'), and the output format ('primary document ... stripped of HTML'), which clearly distinguishes it from sibling tools that list filings or search text. This is immediately actionable and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit workflow: call edgar_recent_filings first to obtain the accession number. It does not enumerate alternative tools or exclusion conditions, but the primary-document/content scope makes the appropriate context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_filings_by_form_typeARead-onlyIdempotentInspect
Pull all recent SEC filings of a specific form type across all companies. Useful for monitoring (e.g. 'all 8-Ks today', 'all S-1s this week'). Returns accession numbers, filers, and filing dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| form_type | Yes | SEC form type (e.g. '8-K', 'S-1', 'DEF 14A', '13F-HR'). | |
| start_date | No | ISO date lower bound (YYYY-MM-DD). Defaults to 30 days ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations: it stresses cross-company scope and discloses that results include accession numbers, filers, and filing dates, which helps an agent anticipate the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The core action and scope are front-loaded, followed by concrete use-case examples and return-value hints. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with only three parameters and full schema coverage, the description is largely sufficient. It explains the cross-company scope, the filtering concept, typical uses, and the main returned fields. It does not describe pagination or output details beyond those fields, but that is not critical given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents form_type, limit, and start_date. The description adds only modest semantic context ('recent', 'all companies') beyond the schema, which meets but does not exceed the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Pull all recent SEC filings of a specific form type across all companies.' It clearly distinguishes this from company-specific EDGAR tools by emphasizing cross-company scope, and the form-type focus separates it from generic recent-filings tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context with concrete monitoring examples: 'all 8-Ks today', 'all S-1s this week'. It does not explicitly name alternatives or state when not to use it, but the examples and scope make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_full_text_searchARead-onlyIdempotentInspect
Full-text search across all SEC filings via the EDGAR EFTS index. Filter by comma-separated form types and date range. Useful for finding filings that mention specific terms.
| Name | Required | Description | Default |
|---|---|---|---|
| forms | No | Comma-separated form types to filter (e.g. '10-K,10-Q'). Optional. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | Yes | Search query (e.g. 'cybersecurity incident', 'going concern'). | |
| end_date | No | Optional ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Optional ISO date lower bound (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the EFTS index context but discloses no additional behavioral traits beyond that — no rate limits, date coverage limitations, or result format expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The core operation and scope are front-loaded in the first sentence, and the second sentence earns its place by clarifying the typical use case. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with fully documented parameters and strong annotations, the definition is mostly adequate. The main gap is that with no output schema, the description offers no hint about what the agent will receive back (e.g., matching filing metadata or excerpts), leaving a moderate blind spot.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description's mention of 'comma-separated form types and date range' mirrors existing schema text and adds no new semantic meaning, keeping this at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Full-text search across all SEC filings via the EDGAR EFTS index'), which clearly identifies what the tool does. The 'full-text search' angle and 'all SEC filings' scope implicitly distinguish it from siblings like edgar_filings_by_form_type and edgar_recent_filings, but it does not explicitly name or contrast any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for finding filings that mention specific terms' provides clear, direct guidance on when to use this tool. However, it offers no exclusions or pointers to alternatives among the EDGAR siblings (e.g., when to reach for edgar_filing_content instead of this tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_insider_transactionsARead-onlyIdempotentInspect
List recent Form 4 insider transaction filings for a company. Returns accession numbers and filing dates; for detailed transaction data, use edgar_filing_content on each.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| identifier | Yes | Ticker symbol or CIK. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds value beyond those annotations by disclosing the return shape (accession numbers and filing dates) and the limitation that this tool does not provide detailed transaction data. This is meaningful behavioral context, though it does not mention ordering or recency windows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action and return content are front-loaded, and the pointer to edgar_filing_content is placed exactly where the agent needs it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the essential purposes: what it lists, what it returns, and where to go for more detail. It could add a bit more about recency or ordering, but it is sufficiently complete for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description does not add parameter-level meaning beyond clarifying that the tool targets a company's Form 4 filings, which is the baseline expectation given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List recent Form 4 insider transaction filings for a company.' It also states the return scope (accession numbers and filing dates) and explicitly differentiates itself from edgar_filing_content, which is the natural sibling for detailed transaction data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-not guidance: this tool lists filings, not transaction details, and directs the agent to 'use edgar_filing_content on each' when detailed data is needed. This explicitly routes the agent to the correct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edgar_recent_filingsARead-onlyIdempotentInspect
List recent SEC filings for a company. Filter by form type (10-K, 10-Q, 8-K, 4, DEF 14A, etc.) and start date. Use ticker or CIK as identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| form_type | No | Optional form type filter (e.g. '10-K', '10-Q', '8-K', '4'). | |
| identifier | Yes | Ticker symbol or CIK. Examples: 'AAPL', '0000320193'. | |
| start_date | No | Optional ISO date lower bound (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly, idempotent, open-world, and non-destructive behavior. The description adds minimal behavioral context beyond that, such as the concept of recency and filtering. It does not describe ordering, pagination, or result shape, but given the strong annotation coverage this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, with the main action first, then filtering options, then identifier instructions. Every sentence adds useful information and there is no redundant or promotional language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read-only list tool with fully documented parameters, the description is complete enough for correct invocation. It could be slightly improved by distinguishing itself from edgar_filings_by_form_type or noting what fields the returned filing list includes, but no critical invocation detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds a little natural-language clarification with additional form type examples and the ticker-or-CIK guidance, but it does not materially extend the schema's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'List recent SEC filings for a company.' It also gives useful details on filters and identifier formats. It does not explicitly distinguish itself from similar siblings like edgar_filings_by_form_type, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: use it to list recent SEC filings and optionally filter by form type or start date. It does not mention when not to use it or name alternatives, but the intended scenario is well implied by the opening sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_electricity_stateARead-onlyIdempotentInspect
Monthly state-level electricity data from EIA. Filter by state (two-letter code or 'US' for national), sector (residential / commercial / industrial / transportation / all), and metric (price / sales / revenue / customers / generation). Default: US, all sectors, price.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| state | No | Two-letter state code (e.g. 'TX', 'CA') or 'US' for national rollup. Default 'US'. | |
| metric | No | Metric: 'price', 'sales', 'revenue', 'customers', 'generation'. Default 'price'. | |
| sector | No | Sector: 'all', 'residential', 'commercial', 'industrial', 'transportation'. Default 'all'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile, so the description does not need to repeat that. It adds useful behavioral context such as monthly cadence, the three filtering axes, and the 'US / all sectors / price' default, but it does not describe output shape or date-range behavior beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two dense sentences with no filler. It front-loads the resource, immediately lists the three filtering dimensions, and closes with defaults, making it easy to scan and parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and read-only annotations, the description is sufficient for selecting the tool and making an initial call with the stated defaults. It does not describe the output format, and since there is no output schema, a little more detail about returned fields would improve completeness, though the metric names already hint at the result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description mostly restates the schema's allowed values and defaults (state codes, sectors, metrics) without adding new meaning for start, end, or limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('monthly state-level electricity data from EIA') and enumerates the filtering dimensions (state, sector, metric), with defaults. The stated scope distinguishes it from sibling EIA tools focused on gasoline, natural gas, oil, and renewables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the state-level electricity scope and the filter dimensions, but the description does not explicitly name alternative tools or provide when-to-use/when-not-to-use guidance. It leaves routing decisions to inference rather than stating exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_energy_consumptionARead-onlyIdempotentInspect
Monthly US energy consumption by sector from EIA. Sectors: residential, commercial, industrial, transportation, total. Returns total energy consumed in BTU equivalents.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| state | No | Two-letter state code or 'US' for national rollup. Default 'US'. | |
| sector | No | Sector: 'total', 'residential', 'commercial', 'industrial', 'transportation'. Default 'total'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context—monthly cadence, sector options, and BTU units—but doesn't disclose details like pagination, state-level behavior, or output structure. This is acceptable given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main purpose, and each sentence carries relevant information. The sector list repeats the schema enum, but in a natural-language summary it helps the agent quickly grasp the tool's scope without opening the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data query with fully documented parameters and no output schema, the description is adequately complete. It states the data cadence, sector options, and returned units, so an agent can reasonably select and invoke the tool without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds minimal semantic value beyond the schema, mostly reinforcing the sector list and the BTU unit of the returned data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: monthly US energy consumption by sector from EIA, and explains the returned quantity in BTU equivalents. It does not explicitly distinguish itself from sibling EIA tools, but the sector focus and energy-consumption framing make the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied: use this tool when you need monthly US energy consumption broken down by sector. However, there is no explicit guidance about when to prefer it over related EIA tools such as eia_electricity_state or eia_natural_gas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_gasoline_pricesARead-onlyIdempotentInspect
Weekly US retail gasoline prices from EIA. Filter by region (PADD1-PADD5 or national) and grade (regular, midgrade, premium, diesel, all). Useful for fuel-cost analysis, transportation logistics, and consumer price tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| grade | No | Fuel grade: 'all', 'regular', 'midgrade', 'premium', 'diesel'. Default 'all'. | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| region | No | PADD region code or 'national'. Examples: 'national', 'PADD1', 'PADD3'. Default 'national'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds useful context beyond them: data source (EIA), cadence (weekly), and retail market segment. It does not disclose units (¢/gal), the effective time window when start/end are omitted, or response shape, but for a read-only query tool with full annotation coverage this is acceptable value-add rather than a serious gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the first defines the resource and source, the second summarizes the key filters, the third states practical use cases. The core function is front-loaded and there is no filler, tautology, or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with five optional, fully documented parameters, the description covers source, frequency, filter dimensions, and use cases, and the schema covers all parameters. With no output schema present, the agent is left without return-format expectations, and units or default time-range behavior are unstated — not critical to invoking the tool, but enough to prevent a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — every parameter already carries defaults, allowed values, and examples (e.g., region's 'national'/'PADD1' examples, grade's enum list, limit's 50/5000 bounds). The description's mention of PADD1-PADD5 and the five grade values largely duplicates schema content rather than adding new semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource precisely — 'Weekly US retail gasoline prices from EIA' — and names the two filter dimensions (region PADD1-PADD5/national, grade with five values). The retail-gasoline focus distinguishes it from adjacent energy siblings like eia_oil_supply and eia_natural_gas, though no sibling is named explicitly. Clear and specific enough for an agent to grasp scope at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three concrete use contexts — fuel-cost analysis, transportation logistics, and consumer price tracking — which signal when an agent would plausibly need this data. However, it gives no exclusionary guidance or named alternatives despite a large suite of overlapping energy/price tools (eia_oil_supply, fred_observations, energy_market_snapshot), leaving routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_natural_gasARead-onlyIdempotentInspect
US natural gas data from EIA. Series options: 'spot' (Henry Hub daily), 'futures' (NYMEX front-month daily), 'residential' (monthly retail to households), 'storage' (weekly working gas in storage). Default 'spot'.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| series | No | Subset to query: 'spot', 'futures', 'residential', 'storage'. Default 'spot'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool read-only, idempotent, and non-destructive, so the description only needs to add context beyond that. It adds useful cadence and default-series behavior, but it does not disclose the output shape, ordering, date-bound interpretation, or potential quirks across different series cadences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the resource and packs the series options, cadences, and default without redundancy. Every clause contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only data retrieval tool with fully documented parameters and safe annotations, the description covers the important selection dimension and default behavior. It omits output format or units, but the schema and annotations carry enough weight that the missing output details are a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by expanding the series enum with concrete meanings and cadences ('spot' = Henry Hub daily, 'residential' = monthly retail) and reinforces the default value, which goes beyond the schema's bare parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as US natural gas data from EIA and enumerates the available series with their cadences, which distinguishes it from sibling EIA tools focused on electricity, gasoline, oil, or renewables. It stops short of a 5 because it uses the noun phrase 'data' rather than a specific verb like 'retrieve' or 'fetch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the commodity focus and series options, but the description does not explicitly state when to choose this tool over sibling EIA data tools or when to use an alternative. There is no exclusions or routing guidance, so the agent must infer usage from the domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_oil_supplyARead-onlyIdempotentInspect
Weekly US crude oil supply data from EIA. Metrics: 'production' (US field production), 'imports' (weekly oil imports), 'stocks' (commercial crude stocks), 'refinery_inputs' (gross refinery inputs). Filter by PADD region. Default: national production.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| metric | No | Metric: 'production', 'imports', 'stocks', 'refinery_inputs'. Default 'production'. | |
| region | No | PADD region or 'national'. Examples: 'national', 'PADD1', 'PADD3'. Default 'national'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, open-world, and non-destructive behavior. The description adds the weekly cadence and the national-production default, but doesn't disclose response format, pagination behavior, or any data availability limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: source and cadence first, then metrics, then filtering, then defaults. Every sentence contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data-retrieval tool with fully documented parameters, the description covers the core aspects: metrics, filtering, default behavior, and cadence. It does not describe the output schema or pagination, but annotations and the parameter schema carry much of the load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds useful semantic enrichment by defining each metric (e.g., 'production' as US field production and 'stocks' as commercial crude stocks) and explicitly stating defaults for metric and region.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource: weekly US crude oil supply data from EIA, and enumerates the available metrics. It distinguishes itself from other EIA tools by topic, though it lacks an explicit retrieval verb and does not name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to prefer this tool over related EIA tools such as eia_gasoline_prices, eia_natural_gas, or eia_series_lookup. It only mentions the PADD filter and default behavior, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_renewable_generationARead-onlyIdempotentInspect
Monthly US electricity generation by source from EIA. Sources: solar, wind, hydro, nuclear, geothermal, biomass, all. Optional state filter (default national). Returns generation in megawatt-hours.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| state | No | Two-letter state code or 'US' for national rollup. Default 'US'. | |
| source | No | Generation source: 'all', 'solar', 'wind', 'hydro', 'nuclear', 'geothermal', 'biomass'. Default 'all'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds useful scoping details like available sources, state filtering, and megawatt-hour units, but does not disclose behaviors such as pagination or response shape. This is moderate added context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The core scope is front-loaded, and the supporting details about sources, state filter, and units are compact and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data tool with complete schema coverage and no required parameters, the description provides the essential context: domain, cadence, source options, state filtering, and output units. It does not describe the response structure, but with no output schema, the given information is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description largely restates the source list and state default without adding new semantic meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource: monthly US electricity generation by source from EIA, and lists the available sources, optional state filter, and output unit. It is distinguishable from generic EIA siblings because it focuses on generation by source, though it does not explicitly name a sibling it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for use: retrieving monthly US electricity generation by source, with optional state filtering and national default. It does not explicitly state when not to use this tool or name alternative siblings, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eia_series_lookupARead-onlyIdempotentInspect
Flexible EIA series lookup. Pass any EIA series ID (e.g. 'PET.RWTC.D' for WTI crude daily, 'NG.RNGWHHD.D' for Henry Hub spot daily, 'ELEC.PRICE.US-ALL.M' for US average electricity retail price monthly). Returns time-series data for that series. Use this when no other tool covers your specific need.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound period (ISO date or YYYY-MM). | |
| limit | No | Maximum rows to return (default 50, max 5000). | |
| start | No | Inclusive lower-bound period (ISO date or YYYY-MM depending on series cadence). | |
| series_id | Yes | EIA series ID. See https://www.eia.gov/opendata/browser/ for the full catalog. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the description does not need to restate those. It adds useful scope information ('any EIA series ID' and 'returns time-series data') but does not disclose response structure, pagination, or error behavior — acceptable given the annotations, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences, front-loaded with the core purpose, followed by useful examples and a final routing note. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-required-parameter lookup with a fully described schema and strong safety annotations, this is nearly complete. The main gaps are the absence of an explicit return-value shape and not naming specialized sibling tools to reduce mis-selection risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all four parameters at 100%, so the baseline is 3. The description adds practical meaning for series_id by mapping example IDs to real-world commodities and prices, which helps an agent construct valid calls. It adds little beyond the schema for start, end, and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific operation ('EIA series lookup'), names the resource, and gives concrete example series IDs. It establishes itself as a general-purpose fallback relative to specialized EIA siblings, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when no other tool covers your specific need' provides an explicit selection heuristic and communicates that this is a fallback tool. However, it does not enumerate which specialized alternatives should be preferred or list specific exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
energy_market_snapshotARead-onlyIdempotentInspect
One-call US energy market snapshot from EIA (public domain): the WTI crude (Cushing), Brent crude, and Henry Hub natural-gas benchmark prices, each enriched with derived context - latest level and date, 1-year change, where the current level sits within its own recent history (percentile), and the recent trend direction (rising/falling/flat). Answers 'what is oil/gas doing right now, and is it historically high or low' in a single call. A source that fails is noted, not fatal. Derived synthesis over the EIA domain; informational market data, not trading advice.
| Name | Required | Description | Default |
|---|---|---|---|
| lookback_days | No | Trailing daily history to pull per benchmark for the derived context (default 400 ~ 1.3 years; min 60, max 2000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable behavioral context beyond annotations: derived synthesis over EIA data, per-benchmark enrichment, partial failure handling ('A source that fails is noted, not fatal'), and an informational-use disclaimer. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by useful details on derived context and failure behavior. It is slightly dense but every sentence contributes meaningful information for an agent deciding whether and how to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read-only tool with no output schema, the description adequately covers invocation scope, expected derived outputs, data source, failure resilience, and caveat. An agent has enough context to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the only parameter, lookback_days. The description reinforces context by mentioning 'recent history' and default behavior but does not add materially new parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'One-call US energy market snapshot from EIA' covering WTI crude, Brent, and Henry Hub natural-gas benchmarks. It clearly differentiates this from sibling EIA tools by emphasizing a synthesized multi-benchmark snapshot rather than a single series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states clear usage context: it answers 'what is oil/gas doing right now, and is it historically high or low' in a single call. It does not explicitly name alternatives or when-not-to-use conditions, but the intended use case is unambiguous and well scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_dossierARead-onlyIdempotentInspect
Build a consolidated cross-source dossier for a company in one call: SEC registration and identifiers (EDGAR), environmental footprint and regulated facilities (EPA ECHO), and sanctions/denied-party screening (OFAC/UN/EU/BIS) with a confidence score. Returns a per-source summary plus top records. This is a single AI-native lookup across data that otherwise lives in separate silos. Matches are name-based; verify identity before relying on any link.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company / organization name, e.g. 'Chevron Corporation', 'Acme Trucking LLC'. | |
| limit | No | Max records to surface per source (default 5, max 15). | |
| state | No | Optional 2-letter US state to disambiguate location-based sources (e.g. 'TX'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond that: matches are name-based, identity should be verified before relying on any link, and the result includes a confidence score plus per-source summaries. This meaningfully helps an agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose is in the first sentence, source coverage in the second, and a critical caveat in the last. Every sentence earns its place, and there is no redundant repetition of schema or annotation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description does well by enumerating sources, explaining the return shape (per-source summary plus top records), and flagging the name-matching caveat. It could have added a bit more about what happens on no matches or ambiguity, but the essential operational context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% description coverage for all three parameters, so the baseline is 3. The description doesn't add parameter-level detail, but it reinforces that the tool is company-focused and returns top records, which indirectly relates to the limit parameter. This is adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Build a consolidated cross-source dossier for a company in one call.' It then names the exact sources covered (SEC/EDGAR, EPA ECHO, OFAC/UN/EU/BIS), which clearly distinguishes this aggregation tool from single-source siblings like edgar_company_facts or epa_facility_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when a single cross-source consolidated dossier is needed, instead of querying separate data silos. It does not explicitly name alternative tools or say when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_resolveARead-onlyIdempotentInspect
Resolve a company across US government sources in one call. Searches SEC EDGAR, EPA ECHO, and the sanctions lists by name and returns the candidate match and strong identifiers (SEC CIK, ticker, EPA registry id) found in each. Use this to confirm WHO an entity is and gather its IDs before pulling detail. Matches are name-based candidates to verify, not certain identity links.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company / organization name, e.g. 'Chevron Corporation', 'Acme Trucking LLC'. | |
| state | No | Optional 2-letter US state to disambiguate location-based sources (e.g. 'TX'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds valuable behavioral nuance by explicitly warning that matches are name-based candidates to verify, not certain identity links, and by disclosing that the tool consolidates multiple sources in one call. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with every sentence earning its place: the core action, the specific data sources, the use case, and the critical caveat about candidate matches. There is no filler or redundant restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with no output schema, the description provides enough context to understand what will be returned (candidate match and strong identifiers from each source). It is slightly incomplete because it does not address the relationship to the similarly named sibling 'resolve_entity', nor what happens when no match is found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters thoroughly (100% coverage), including the optional state disambiguation. The description reinforces that searches are by name and that state helps with location-based sources, but it does not add substantial new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: resolving a company across US government sources (SEC EDGAR, EPA ECHO, sanctions lists) and returning identifiers. It is specific about verb, resource, and scope, but it does not explicitly differentiate from the sibling tool 'resolve_entity', which could confuse an agent deciding between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical guidance: use this to confirm an entity's identity and gather its IDs before pulling detail. This establishes clear context for when to invoke the tool, though it does not mention any exclusions or name alternative tools to consider instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environmental_site_riskARead-onlyIdempotentInspect
One-call environmental-compliance and contamination liability read for a SPECIFIC site or operator - the question a buyer, lender, or Phase-I ESA asks before a deal. Distinct from location_risk_report (which scores natural hazards plus a shallow count of nearby facilities): this drills DEEP into one named facility's EPA record via ECHO/FRS - overall compliance status, per-statute program standing (Clean Air/Water/RCRA/etc.), formal enforcement actions and penalty totals, significant-non-compliance and non-compliant-quarter flags - plus a best-effort parcel record for site context. Returns a verdict band (NO ADVERSE EPA RECORD / REVIEW RECOMMENDED / CONTAMINATION-COMPLIANCE CONCERN / NO FACILITY FOUND), the flags, and the evidence. A source that fails is noted, not fatal. This is an EPA public-record screen, not a Phase-I Environmental Site Assessment or a substitute for one. Cross-source synthesis.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Site, facility, or operator name to screen (e.g. 'Smith Manufacturing', 'Acme Plating Inc'). | |
| state | No | Optional 2-letter state to disambiguate the EPA facility and parcel search. | |
| address | No | Optional street address to pin the parcel record. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: it names the actual EPA data sources (ECHO/FRS), lists the kinds of records returned (per-statute program standing, enforcement actions, penalty totals, SNC and non-compliant-quarter flags, parcel record), and explicitly states that a failing source is 'noted, not fatal'. It also discloses the limitation that this is a public-record screen, not a Phase-I ESA. A small gap is the lack of detail on how 'best-effort parcel record' behaves when no parcel exists, but the disclosed behavior is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: scope, use-case, sibling distinction, source, return components, failure behavior, and disclaimer. It is front-loaded with the one-call purpose and the sibling distinction. It is slightly dense and could be tightened, but it is structured and information-dense rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, cross-source environmental screening tool with no output schema, the description covers the essential context: what question it answers, what sources it uses, what components it returns, the verdict bands, failure handling, and the disclaimer. It does not document the verdict-band semantics or how the parcel record is used when found, but the description is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents site, state, and address. The description adds meaning beyond the schema by explaining the unit of analysis ('SPECIFIC site or operator', 'one named facility') and by linking optional state/address to disambiguation of the EPA facility and parcel search. It doesn't provide formats or examples (beyond the schema's), but it adds interpretive context to what each parameter is for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('read'/'screen') on a specific resource ('environmental-compliance and contamination liability' for a 'SPECIFIC site or operator') and immediately distinguishes itself from location_risk_report. It also names the source (EPA ECHO/FRS) and the deliverable (verdict band plus flags), so an agent can tell exactly what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is explicit about when to use it: the buyer/lender/Phase-I ESA pre-deal context. It names the sibling alternative, location_risk_report, and states exactly how that sibling differs (natural hazards plus shallow facility count vs. deep dive into one named facility's EPA record). It also says what it is not ('not a Phase-I Environmental Site Assessment or a substitute for one'), which is a useful exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_enforcement_searchARead-onlyIdempotentInspect
List formal enforcement actions and penalties taken against a facility, plus a per-program summary of formal/informal actions, cases, and total penalties. Requires an EPA Registry ID (use epa_facility_search to find it).
| Name | Required | Description | Default |
|---|---|---|---|
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read profile (readOnlyHint, idempotentHint, destructiveHint false), and the description adds substantive return-content detail: formal actions, penalties, and a per-program summary of formal/informal actions, cases, and total penalties. It also discloses the required identifier dependency. No behavioral contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the first sentence states purpose and output composition, and the second handles the prerequisite and lookup routing. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool with no output schema, the description supplies the essential call context (required ID, how to obtain it) and the response shape (enforcement actions, penalties, per-program summary). There are no obvious gaps that would prevent an agent from correctly selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents registry_id with type, requirement, source tool, and an example, so schema coverage is 100%. The description reinforces the Registry ID requirement and lookup path but adds little semantic nuance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a concrete verb-resource pairing ('List formal enforcement actions and penalties taken against a facility') and specifies the additional per-program summary output. It clearly states the prerequisite and points to epa_facility_search, but it does not explicitly contrast with other EPA facility tools such as epa_facility_compliance or epa_water_or_air_violations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the required input condition ('Requires an EPA Registry ID') and routes users to epa_facility_search when one is not available. This is clear context for invocation, but it does not state when enforcement search should be preferred over sibling compliance/violation tools, so no exclusions or alternative comparisons are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_facility_complianceARead-onlyIdempotentInspect
Report a facility's current compliance status and recent non-compliance history by environmental program (Clean Air Act, Clean Water Act, RCRA hazardous waste, Safe Drinking Water Act). Shows quarters in non-compliance, quarters in significant non-compliance, and last inspection per statute. Requires an EPA Registry ID.
| Name | Required | Description | Default |
|---|---|---|---|
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, and non-destructive, covering the safety profile. The description adds useful behavioral context by specifying that output is organized by environmental program and includes quarters in non-compliance, significant non-compliance, and last inspection per statute. It does not discuss data freshness, error handling, or response format, but these are secondary given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with all information front-loaded: purpose first, then output specifics, then the prerequisite. There is no filler or vague language. The only minor redundancy is restating the registry ID requirement, but it is useful as an invocation prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description is nearly complete: it explains what is reported, the scope by statute, the specific output fields, and the required input. It does not explain how to obtain the registry ID, but that is covered in the schema parameter description, or how errors are surfaced, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter registry_id is well documented with type, format, example, and its source via epa_facility_search. The description simply restates that a Registry ID is required, which adds no new semantic information. The baseline of 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it reports a facility's current compliance status and recent non-compliance history by environmental program. It also lists the specific statutes and output fields, making the tool's function clear. However, it does not explicitly differentiate itself from sibling EPA tools like epa_facility_details or epa_enforcement_search, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a key prerequisite: 'Requires an EPA Registry ID.' This implies the tool should be used after obtaining an ID, and the schema parameter description points to epa_facility_search as the source. It does not explicitly state when to prefer this tool over related EPA tools or when not to use it, so usage guidance is present but implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_facility_detailsARead-onlyIdempotentInspect
Get a Detailed Facility Report for one facility by its EPA Registry ID: name, address, permits held, and per-statute (CAA/CWA/RCRA/SDWA) compliance and inspection summaries. Use epa_facility_search first to obtain the registry_id.
| Name | Required | Description | Default |
|---|---|---|---|
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the report contents, including the specific statutes covered (CAA/CWA/RCRA/SDWA), but does not disclose behaviors such as data freshness, authorization requirements, response size, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler. The first sentence leads with the action and resource, then lists contents; the second gives the prerequisite workflow. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, no output schema, and annotations covering the read-only/idempotent behavior, the description is largely complete: it identifies how to obtain the input and what the report contains. The only minor gap is the lack of a more precise return structure, but the listed categories are sufficient for an agent to decide to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with registry_id fully documented as the EPA Registry ID returned by epa_facility_search and an example provided. The description reinforces the same information but does not meaningfully add beyond what the input schema already states, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('Detailed Facility Report for one facility'), and the key input (EPA Registry ID), then enumerates the report contents: name, address, permits, and per-statute compliance summaries. It is clear and distinguishable from search-style siblings like epa_facility_search, though it does not explicitly contrast itself with epa_facility_compliance or other EPA detail tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is for one facility already identified by a registry_id, and it explicitly instructs the agent to obtain that ID via epa_facility_search first. It does not, however, explain when to choose this over closely related siblings such as epa_facility_compliance or epa_enforcement_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_facility_searchARead-onlyIdempotentInspect
Search EPA-regulated facilities by state, city, zip, and/or facility name. Returns each facility's Registry ID (needed for the other EPA tools), address, and a snapshot of its compliance status across Clean Air Act, Clean Water Act, RCRA (waste), and Safe Drinking Water programs. Provide at least one filter; broad queries (e.g. state only for a large state) may be rejected as too broad, so add a city, zip, or name.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit ZIP code (e.g. '20010'). | |
| city | No | City name (e.g. 'Washington'). | |
| name | No | Facility name or fragment (e.g. 'Pepco', 'refinery'). | |
| limit | No | Maximum facilities to return (default 25, max 100). | |
| state | No | Two-letter state or territory code (e.g. 'DC', 'TX', 'CA'). | |
| active_only | No | If true, only return facilities flagged with active enforcement/compliance activity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile. The description adds genuine behavioral context beyond annotations: broad queries may be rejected, at least one filter is required, and the return payload covers Registry ID, address, and a multi-program compliance snapshot. No contradiction with the readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the core action, the return value with downstream relevance, and the filter/query-construction constraint. Everything is front-loaded with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately carries the return-value burden by listing Registry ID, address, and the compliance programs covered. It also discloses rejection behavior and the filter requirement. Slightly shy of a 5 only because it omits minor details like result ordering or the behavior of name-fragment matching.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each of the six parameters is already documented in the input schema. The description adds a cross-parameter constraint not captured in the schema (at least one of state/city/zip/name must be provided) and warns against overly broad combinations, which is useful but modest on top of the schema's heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('EPA-regulated facilities'), enumerates the filter dimensions, and details the return payload. The mention that Registry ID is 'needed for the other EPA tools' positions this as the entry point to the EPA tool family, distinguishing it from detail/compliance-oriented siblings like epa_facility_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete, actionable usage conditions: 'Provide at least one filter' and warns that broad queries like state-only for a large state 'may be rejected as too broad.' This is clear context for constructing valid calls. However, it never names sibling alternatives or explicit when-not-to-use conditions (e.g., 'use epa_facility_details once you have a Registry ID'), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_water_or_air_violationsARead-onlyIdempotentInspect
Report a facility's air (Clean Air Act) or water (Clean Water Act / Safe Drinking Water Act) violations and the related compliance summaries. Set media to 'air', 'water', or 'all'. Requires an EPA Registry ID.
| Name | Required | Description | Default |
|---|---|---|---|
| media | No | Which media to report: 'air', 'water', or 'all' (default 'all'). | |
| registry_id | Yes | EPA Registry ID (FRS ID), the numeric facility identifier returned by epa_facility_search (e.g. '110001136271'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful context beyond annotations: the tool returns 'violations and related compliance summaries' and requires a Registry ID, which clarifies the input prerequisite. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It leads with the core purpose, then immediately gives the key parameter options and prerequisite. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with rich annotations, the description is largely complete: it states what the tool returns, the media choices, and the required input. It does not detail output structure or pagination, but with no output schema and openWorldHint true, this is a minor gap rather than a blocking omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description reinforces the media enum values and the Registry ID requirement but adds little new semantic detail beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and identifies the resource: a facility's air or water violations plus related compliance summaries, with explicit statute references (Clean Air Act, Clean Water Act, Safe Drinking Water Act). This clearly communicates the tool's domain, though it does not explicitly differentiate it from sibling tools like epa_facility_compliance or epa_enforcement_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: set media to 'air', 'water', or 'all' and provide an EPA Registry ID. However, it does not state when to prefer this tool over related EPA siblings or when not to use it, leaving the choice to inference from the topic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epss_scoreARead-onlyIdempotentInspect
FIRST EPSS exploit prediction score for a CVE. Returns probability (0-1) of exploitation in the next 30 days plus the percentile rank.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations by specifying the output semantics: a 0-1 probability, a 30-day lookahead window, and a percentile rank. It could add edge-case behavior (e.g., behavior for unknown/malformed CVE IDs), but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the first identifies the tool's unique function, the second enumerates exactly what is returned. The key scoping detail (EPSS prediction for a CVE) is front-loaded, and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool with openWorldHint and no output schema, the description covers the essential contract: input (CVE) and output (probability plus percentile). The main gap is error and edge-case behavior (invalid or nonexistent CVE IDs, data availability for recent CVEs), but given the tool's simplicity and the annotations, the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter cve_id, whose schema description is 'CVE identifier.' The description echoes the concept of a CVE without adding format details (e.g., CVE-YYYY-NNNNN pattern) or input constraints. The schema carries the parameter documentation, so baseline 3 with no additional description value is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (a CVE) and a specific, well-known score (FIRST EPSS exploit prediction score), then clarifies the exact return semantics: probability (0-1) of exploitation in the next 30 days plus percentile rank. This clearly distinguishes it from sibling tools like cve_lookup or kev_status_check, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—you call this when you need an EPSS score—but it never explicitly states when to prefer this over related siblings such as kev_status_check, cve_lookup, or cve_search_by_keyword. No exclusions or alternative routing is provided, so the agent must infer the distinction from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
facility_care_qualityARead-onlyIdempotentInspect
One-call care-quality + provider-identity read for a named US healthcare FACILITY (hospital, nursing home, home-health agency, or hospice). Joins two keyless federal sources: CMS Care Compare (data.cms.gov) for the facility's quality signal - the CMS star rating and, for a hospital, the measure-group highlights (mortality, safety of care, readmission, timely-and-effective care measured better / no different / worse vs national), plus ownership, type, and for a nursing home the health-inspection / staffing / quality-measure star breakdown, certified beds, abuse flag, and fines - and the NPPES NPI Registry for the facility's legal identity (organizational NPI, taxonomy, city/state, active status). Provide a facility name (e.g. 'Cleveland Clinic', 'Mayo Clinic Hospital'); optionally add a 2-letter state to disambiguate and a type (hospital / nursing_home / home_health / hospice) to pin the CMS dataset. When no type is given the tool infers the provider category from the NPPES taxonomy and probes the CMS datasets in order. A leg that fails is noted, not fatal. This is an INFORMATIONAL public-record read, NOT medical advice, a substitute for CMS Care Compare, or an endorsement of any facility.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional provider category to pin the CMS dataset: 'hospital', 'nursing_home', 'home_health', or 'hospice'. Omit to auto-detect. | |
| state | No | Optional 2-letter state to disambiguate the facility (e.g. 'OH', 'AZ'). | |
| facility | Yes | Facility name to look up (e.g. 'Cleveland Clinic', 'Mayo Clinic Hospital', 'Burns Nursing Home'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/destructive annotations, it discloses source-joining behavior, category inference via NPPES taxonomy, probing order, and that a failed leg is non-fatal. It also flags itself as informational rather than advice or endorsement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded summary followed by necessary source and data details; all sentences add information. It is slightly long due to enumerating returned fields, but this compensates for having no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description covers inputs, optional disambiguation, auto-inference, partial failure behavior, and enumerates the expected returned data fields. No critical operational gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of parameters, and the description adds value by explaining why state/type matter (disambiguation and CMS dataset pinning) and what happens when type is omitted. That is meaningful guidance, though not exhaustive on formats or return types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation: a one-call care-quality plus provider-identity read for a named US healthcare facility. It clearly identifies the two federal sources being joined, which separates it from single-source siblings like cms_hospital_search or npi_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit input pattern with optional state/type for disambiguation and pinning, plus auto-detection behavior when type is omitted. It also states exclusions (not medical advice, not a substitute for CMS Care Compare), but does not name alternative sibling tools directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fbi_wantedARead-onlyIdempotentInspect
Search the FBI's public Wanted/fugitive list by name or keyword. Returns matching subjects with aliases, the responsible field offices, and a link. Complements sanctions screening for person due diligence. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-25, default 10). | |
| query | No | Name or keyword to search (optional; omit for the current featured list). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral detail: it returns matching subjects with aliases, responsible field offices, and a link, and notes that no API key is required. This adds value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core action and resource appear first, return information is front-loaded, and the complementary use case is stated efficiently. 'Keyless' is a useful one-word clarification of access requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only search tool, the description is largely complete: it states the data source, search behavior, key return fields, and authentication posture. There is no output schema, but the listed return fields give the agent a reasonable expectation. Minor gaps like pagination or result count are acceptable for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'limit'). The description restates that search is by name or keyword but does not add new meaning beyond the schema. Baseline 3 is appropriate because the schema carries the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: searching the FBI's public Wanted/fugitive list. It also clarifies that matching is by name or keyword, which makes the tool's scope unambiguous. It stands apart from neighboring sanctions and screening tools by naming its exact public data source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear context: it complements sanctions screening for person due diligence. This tells the agent when to reach for this tool. It does not explicitly list when not to use it or name alternative tools, but the intended placement relative to sanctions workflows is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_device_510kARead-onlyIdempotentInspect
FDA 510(k) clearances for medical devices. The 510(k) pathway is how most non-high-risk devices come to market in the US. Filter by manufacturer (applicant), device name, product code, or decision date range. Used for competitive intel, device R&D scouting, M&A research.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Manufacturer (applicant) name or device name search term. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| product_code | No | Optional product code (e.g. 'DXJ' for ECG). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile: readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds helpful domain context about the 510(k) pathway and what the dataset represents, but it does not disclose deeper behavioral details such as output shape, pagination, or whether a filter is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and uses three sentences that each add value: defining the resource, explaining the regulatory context, and noting practical applications. It is appropriately sized without being padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with fully documented parameters and strong annotations, the description covers the domain, filters, and likely use cases. It does not describe the return value shape, but the absence of an output schema and the simplicity of the tool make this an acceptable gap rather than a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description reiterates the main filter dimensions (manufacturer/applicant, device name, product code, decision date range) but does not add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as FDA 510(k) clearances for medical devices and states the main filtering dimensions. It differentiates from many FDA siblings like fda_device_recalls by focusing on 'clearances' rather than recalls, but it does not explicitly name or contrast sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical use cases—competitive intel, device R&D scouting, M&A research—which help an agent decide when the tool is relevant. It does not explicitly state when not to use it or point to alternative FDA tools, though the domain context makes the intended scope fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_device_recallsARead-onlyIdempotentInspect
FDA medical device recalls. Filter by device name or recalling manufacturer, classification (Class 1 most severe), or date range. Used for medical device supply chain monitoring and hospital biomed compliance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Optional device name or recalling firm search term. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| classification | No | Recall classification: 1 (Class I, most severe), 2, 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds mild behavioral context by explaining that classification Class 1 is most severe and that results can be filtered by date range, but it does not disclose return shape, pagination behavior, or data source limitations beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loads the core resource before giving filters and use cases. Every clause earns its place: it identifies the domain, lists the main query dimensions, and states practical applications.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with five optional, fully documented parameters, the description covers the essential purpose, filters, and use cases. It does not explain the return format, but given the read-only annotations and the schema completeness, the absence is a minor gap rather than a blocking issue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description's mention of 'device name or recalling manufacturer, classification, or date range' mirrors the schema fields without adding new parameter-level detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as FDA medical device recalls and specifies the available filters (device name/manufacturer, classification, date range). It distinguishes this tool from sibling recall tools like fda_drug_recalls and fda_food_recalls by the explicit 'medical device' scope, though it does not use a strong action verb such as 'search' or 'list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an intended context ('medical device supply chain monitoring and hospital biomed compliance'), which implies the tool is for medical-device-specific recall queries. It does not explicitly mention alternatives such as fda_drug_recalls or cpsc_recall_search, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_drug_adverse_eventsARead-onlyIdempotentInspect
FDA Adverse Event Reporting System (FAERS) reports for a specific drug. Each result describes a reported adverse reaction including patient demographics, reactions, outcome, and seriousness. Used for pharmacovigilance and post-market safety analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| drug | Yes | Drug name (brand or generic) to query FAERS for. Example: 'Lipitor' or 'atorvastatin'. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| reaction | No | Optional MedDRA-preferred-term reaction filter (e.g. 'headache', 'nausea', 'liver injury'). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| serious_only | No | If true, only return serious adverse events (death, hospitalization, life-threatening, disability). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict them. It adds useful context that the data comes from spontaneous FAERS reports and that each result represents a reported adverse reaction, which helps the agent interpret the returned data correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, leading with the resource and scope before describing result contents and use case. The third sentence about pharmacovigilance is slightly generic but still earns its place as selection context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, read-only annotations, and no output schema, this description is reasonably complete: it states the domain, the query scope, and the key result fields. It could be stronger by explicitly differentiating from the nearest FDA sibling tools, but it is not missing essential information for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all six parameters, so the description does not need to repeat parameter details. It reinforces the core 'specific drug' concept and mentions reactions, which overlaps with the reaction parameter, but adds no substantive semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource as FAERS adverse event reports and explicitly says they are 'for a specific drug.' It also lists what each result contains (demographics, reactions, outcome, seriousness), which clearly distinguishes this tool from siblings like fda_drug_lookup and fda_drug_recalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Used for pharmacovigilance and post-market safety analysis' gives a clear intended use context, but it does not state when to prefer this tool over related FDA tools such as fda_drug_lookup, fda_drug_recalls, or fda_food_recalls, nor does it provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_drug_lookupARead-onlyIdempotentInspect
Look up FDA drug label info by NDC code, brand name, or generic name. Returns indications, dosage, warnings, contraindications, mechanism, manufacturer, and DEA scheduling. Used for clinical decision support, pharmacy automation, drug-info chatbots.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | Yes | NDC code (e.g. '0002-1407'), brand name (e.g. 'Lipitor'), or generic name (e.g. 'atorvastatin'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful context by enumerating the exact data sections returned, which is especially valuable since there is no output schema. It does not mention pagination or no-results behavior, but annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The action and resource are front-loaded, the return fields are useful, and the final use-case clause earns its place by helping an agent understand applicability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with full parameter schema and strong annotations, the description adequately covers purpose, return content, and context. Minor gaps include no explicit pointer to sibling tools for adverse events or recalls and no statement about multiple matches, but these are not critical for this tool shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters fully documented, including concrete examples for query. The description only restates the identifier types already in the schema and adds no new parameter-level detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Look up FDA drug label info' by NDC code, brand name, or generic name. The listed return fields (indications, dosage, warnings, contraindications, mechanism, manufacturer, DEA scheduling) clearly differentiate it from sibling tools like fda_drug_adverse_events and fda_drug_recalls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the phrase 'drug label info' and names use cases like clinical decision support and drug-info chatbots, but it never explicitly says when to prefer this tool over sibling FDA tools. There are no exclusions or alternative-tool routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_drug_recallsARead-onlyIdempotentInspect
FDA drug enforcement actions (recalls). Filter by product name, recall classification (I=most severe, II, III), state, or date range. Useful for pharmacy compliance, supply chain monitoring, pharmacovigilance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Optional product description / generic name / brand name search term. | |
| state | No | Optional 2-letter state filter. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| classification | No | Recall severity: I (most severe), II, III. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, so the description does not need to restate safety. It adds domain context about enforcement actions and recall classification, but discloses no additional behavioral traits such as data coverage, ordering, pagination, or exclusions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the resource identity, followed by a clear summary of filters and use cases. Every sentence contributes useful information without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with six fully documented parameters and no output schema, the description covers the domain, filter options, and practical applications. It omits explicit sibling routing and return-format details, but the schema and annotations carry most of the operational burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented. The description summarizes the main filter dimensions and explains the severity scale, but adds little meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as FDA drug enforcement actions/recalls and enumerates concrete filter dimensions (product, classification, state, date range). The 'drug' scope distinguishes it from device and food recall siblings, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names use cases: pharmacy compliance, supply chain monitoring, and pharmacovigilance, which gives an agent clear context for when to invoke this tool. However, it does not mention alternatives or state when not to use this tool versus other FDA/recall tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fda_food_recallsARead-onlyIdempotentInspect
FDA food enforcement actions (food recalls). Filter by product description, recall classification, state, or date range. Used for retail food safety monitoring, supply chain compliance, restaurant management.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Optional product description search term. | |
| state | No | Optional 2-letter state filter. | |
| end_date | No | Inclusive ISO date upper bound (YYYY-MM-DD). | |
| start_date | No | Inclusive ISO date lower bound (YYYY-MM-DD). | |
| classification | No | Recall severity: I (most severe), II, III. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds domain context (public FDA enforcement data) but does not disclose return-shape, pagination behavior, or data limitations. This is acceptable given the strong annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the key subject and filter capabilities, followed by practical use cases. No wasted words or redundant restatement of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The combination of a fully documented parameter schema, clear annotations, and a description covering data source, filters, and use cases is sufficient for an agent to select and call the tool. No output schema exists, but for a read-only filtered listing tool the expected return behavior is fairly predictable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented. The description reinforces which filters matter (product description, classification, state, date range) but adds no syntax or value beyond the schema, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies FDA food recalls as the resource and states the available filtering actions (product description, classification, state, date range). This differentiates it from closely related siblings like fda_drug_recalls and fda_device_recalls without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use contexts: retail food safety monitoring, supply chain compliance, and restaurant management. It does not name exclusions or alternative tools, but the intended scenarios are clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_depositsARead-onlyIdempotentInspect
Branch-office deposit data from the FDIC Summary of Deposits (annual snapshot). Returns deposits per branch sorted by deposit volume, useful for measuring local-market banking concentration.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name | |
| limit | No | Max branches (default 25) | |
| state | No | Two-letter state code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the bar is lower. The description adds meaningful behavioral context beyond the annotations: the source is an annual FDIC Summary of Deposits snapshot, and results are sorted by deposit volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The data source and primary behavior are front-loaded, followed by sorting behavior and use case, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description conveys source, granularity, and ordering, which is adequate for a simple read-only lookup. However, with no output schema and all parameters optional, it does not clarify whether city/state are required or what the returned branch records contain beyond deposit volume, leaving minor gaps for an agent making the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters, so the baseline is 3. The description clarifies that the limit applies to branches ordered by deposit volume, but it does not add significant meaning to the city or state parameters beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb/resource: returns branch-office deposit data from the FDIC Summary of Deposits, with explicit output behavior (deposits per branch sorted by deposit volume). This clearly distinguishes it from institution-level FDIC siblings like fdic_search_institutions and fdic_financials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'useful for measuring local-market banking concentration' provides a clear use case. It does not explicitly name alternatives or exclusions, but the context is sufficient to route an agent toward this tool for branch-level deposit data rather than other FDIC tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_failuresARead-onlyIdempotentInspect
List FDIC bank failures. Filter by state and/or date range. Returns failure date, institution name, location, estimated cost, and resolution type. Sorted most-recent first. Use this for systemic-risk research, historical bank-stability analysis, or compliance work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code | |
| offset | No | Pagination offset | |
| end_date | No | End date YYYY-MM-DD | |
| start_date | No | Start date YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is already known. The description adds behavioral value by disclosing that results are 'Sorted most-recent first' and enumerating the output fields, which matters because no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and every sentence adds value: what it lists, how to filter, what is returned, sort order, and intended use cases. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description covers the essential invocation context: filters, return fields, sort order, and use cases. It could go further by noting historical date coverage or behavior when no filters are supplied, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already individually documented. The description adds useful conceptual grouping ('Filter by state and/or date range') and notes sort order, but does not substantially extend parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List FDIC bank failures.' It names the exact data returned (failure date, institution name, location, estimated cost, resolution type), which makes the tool's scope unmistakable and clearly distinguishes it from sibling FDIC tools like fdic_deposits, fdic_financials, and fdic_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives use cases: 'systemic-risk research, historical bank-stability analysis, or compliance work.' It clearly conveys when this list tool is relevant, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_financialsARead-onlyIdempotentInspect
Get quarterly financial data for a specific bank by CERT number (FDIC Certificate Number). Returns recent quarters of assets, deposits, loans, capital ratios, income, and asset quality metrics. Most recent quarters first.
| Name | Required | Description | Default |
|---|---|---|---|
| cert | Yes | FDIC Certificate Number (get this from fdic_search_institutions) | |
| limit | No | Number of recent quarters (default 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish safety (readOnly, idempotent, non-destructive), and the description adds behavioral detail beyond them: output is ordered with most recent quarters first and covers specific metric families. No contradictions or hidden side effects are disclosed or suggested.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with action and object, then a tight list of return fields. Every sentence carries useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema and read-only annotations, the description supplies the critical missing pieces: the certification identifier context, time-series nature, field coverage, and ordering. With no output schema, listing the metric families is sufficient for an agent to set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters 100%, so the baseline of 3 applies. The tool description reinforces that cert selects a bank and that 'recent quarters' relates to the limit parameter, but it doesn't add substantial new semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Get') and resource ('quarterly financial data for a specific bank by CERT number'), then enumerates the returned metric categories. This is enough to distinguish it from sibling FDIC tools such as fdic_summary or fdic_deposits by scope and content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: retrieve financials for one bank when a CERT is known. It doesn't list exclusions or point to alternatives, but the 'specific bank' and 'most recent quarters' wording gives a clear contextual trigger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_historyARead-onlyIdempotentInspect
Institution history events for a specific bank by CERT: mergers, acquisitions, name changes, charter conversions, failures. Returns most-recent first.
| Name | Required | Description | Default |
|---|---|---|---|
| cert | Yes | FDIC Certificate Number | |
| limit | No | Max events (default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable non-annotation behavior: results are returned most-recent first, and the event-type scope is made explicit. It could disclose pagination or how the default limit is applied, but for a read-only timeline lookup the disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the first delivers resource, scope, and event types; the second delivers ordering. The most important constraint (by CERT) is front-loaded. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup with one required parameter, no output schema, and annotations covering safety, the description is nearly complete: an agent knows the key, the optional limit (via schema), the event types, and the ordering. Minor gaps remain, such as the return shape or behavior when a CERT has no events, but nothing that would block a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both cert and limit, establishing a baseline of 3. The description adds marginal context by highlighting cert as the key and noting the event types that limit caps, but doesn't contribute meaningful parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('institution history events for a specific bank by CERT') and enumerates the exact event types included (mergers, acquisitions, name changes, charter conversions, failures), plus the result ordering. This clearly differentiates it from FDIC siblings like fdic_failures (failure lists) or fdic_search_institutions (institution lookup), even though the verb is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a specific bank by CERT' implies the tool is for when an agent already knows a bank's certificate number and needs its event timeline. However, it never names alternatives such as fdic_failures or fdic_search_institutions, nor states when not to use this tool, leaving routing among the many FDIC siblings to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_search_institutionsARead-onlyIdempotentInspect
Search FDIC-insured banks and savings institutions by name, state, or city. Returns CERT number, name, location, total assets, deposits, net income, ROA, ROE, charter class. Use the CERT number for follow-up queries to fdic_financials or fdic_history.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name (exact) | |
| name | No | Institution name (partial match) | |
| limit | No | Max results (default 25) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| offset | No | Pagination offset (default 0) | |
| active_only | No | Only currently-active banks (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as read-only, idempotent, and non-destructive. The description adds value by naming the returned metrics and the CERT-as-key behavioral pattern for downstream queries. It does not discuss pagination or the active_only default, but those are covered by the input schema, so the added behavioral context is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences: the first states the search scope and returned fields, and the second gives a direct follow-up instruction. There is no wasted wording or redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description enumerates the main returned fields and explains how to chain into deeper FDIC tools. Combined with the fully documented input schema and safety annotations, an agent has enough context to call this tool correctly and use its result effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the schema fully documents all six parameters. The description highlights name, state, and city as the primary search keys, which is helpful, but it does not add syntax, format, or relationship details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific action ('Search'), a defined resource ('FDIC-insured banks and savings institutions'), and the search dimensions ('by name, state, or city'). It also lists concrete return fields and explicitly points to follow-up tools, making it easy to distinguish from the other FDIC sibling tools even without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical usage context by telling the agent to use the returned CERT number for fdic_financials or fdic_history follow-ups. It does not explicitly state when not to use sibling tools like fdic_summary, fdic_deposits, or fdic_failures, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fdic_summaryARead-onlyIdempotentInspect
Industry-level summary financials. Returns year-by-year aggregates across all FDIC-insured institutions, optionally filtered to a single state. Useful for macro banking-sector analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of years (default 20) | |
| state | No | Two-letter state code (omit for national) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond that: it returns year-by-year aggregates and supports optional state-level filtering. It does not detail exact metrics returned or ordering, but the annotations lower the bar for additional safety-related disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads the core purpose and scope, the second gives the primary use case. There is no redundant wording or filler, and every clause contributes to tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no required parameters and full schema coverage, the description gives enough context to select and call it correctly: what it returns, at what aggregation level, and how state filtering works. The absence of an output schema means the actual financial fields are not enumerated, but 'summary financials' is a reasonable high-level contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'limit' and 'state' are both documented with defaults and meaning. The description only echoes the aggregation and state-filter idea at a higher level, adding little parameter nuance beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('Industry-level summary financials') and a clear behavior: returning year-by-year aggregates across all FDIC-insured institutions, optionally by state. This differentiates it from institution-level sibling tools like fdic_financials and fdic_search_institutions by emphasizing aggregate, sector-wide scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames the tool as 'useful for macro banking-sector analysis,' providing a clear context for when to use it. It does not name alternatives or state when not to use it, so it stops short of full routing guidance, but the context is clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_candidate_detailsARead-onlyIdempotentInspect
Get full detail for a single federal candidate by FEC candidate_id (e.g. 'P80001571'). Includes office, party, status, election years, and mailing address. Use fec_candidate_search to find the candidate_id.
| Name | Required | Description | Default |
|---|---|---|---|
| candidate_id | Yes | FEC candidate ID (e.g. 'P80001571', 'S2MA00170'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds value beyond that by disclosing the response scope ('full detail... includes office, party, status, election years, and mailing address'), giving the agent a concrete expectation of what comes back. It doesn't mention behavior for invalid IDs, but that's a minor gap for a simple lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first establishes purpose with an example; the second routes to the sibling tool. Both sentences earn their place and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup, everything needed to invoke it correctly is present: the parameter is fully documented, the return content is described (field list compensates for the absent output schema), annotations cover safety, and the prerequisite relationship to fec_candidate_search is stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the schema already documents candidate_id with two examples ('P80001571', 'S2MA00170'). The description repeats one example but adds no meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Get full detail for a single federal candidate') and identifies the lookup key (candidate_id) with a concrete example. It also enumerates the included fields (office, party, status, election years, mailing address), which distinguishes this from the financial-oriented sibling fec_candidate_financials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes to fec_candidate_search when the ID is unknown ('Use fec_candidate_search to find the candidate_id'), which is clear when-not-to-use guidance. However, it doesn't explicitly address the other FEC siblings (fec_candidate_financials, fec_committee_search); the field list implies the boundary, but an explicit exclusion would make it fully complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_candidate_financialsARead-onlyIdempotentInspect
Get aggregate campaign finance totals for a candidate by FEC candidate_id, broken down by election cycle. Includes total receipts, disbursements, individual contributions, cash on hand, and debts. Filter to one cycle with the cycle parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum cycles to return (default 10, max 50). | |
| candidate_id | Yes | FEC candidate ID (e.g. 'S2MA00170'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior, so the description's main value is adding what the tool returns: aggregate totals by election cycle, including receipts, disbursements, contributions, cash on hand, and debts. It also implies that multiple cycles are returned by default and that the cycle parameter narrows to one, which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary action is front-loaded, the resource and ID requirement are clear, the return fields are summarized, and the key optional filter is stated efficiently. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with three well-documented parameters and no output schema, the description covers the essential semantics: what is returned, how it is grouped, and how to narrow it. Minor gaps include not stating the default number of cycles returned or whether the results include a summary/aggregate row, but these are not critical given the schema covers limit and cycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are already fully described in the schema, so the baseline is 3. The description adds value by clarifying that the cycle parameter filters to a single election cycle and frames the data as cycle-level aggregates, but it does not meaningfully add semantics beyond what the schema already provides for candidate_id or limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a specific resource (aggregate campaign finance totals by FEC candidate_id), and a distinctive dimension (election cycle breakdown). It also enumerates the included fields, making the tool's purpose immediately recognizable and easily distinguishable from siblings like fec_candidate_search or fec_candidate_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over fec_candidate_details, fec_committee_search, or other FEC-related siblings. It also does not state that a user would first need to resolve a candidate to an FEC candidate_id via a search sibling, nor mention any exclusions or preferred alternatives. The only usage hint is the cycle parameter, which is a parameter instruction rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_candidate_searchARead-onlyIdempotentInspect
Search federal candidates (President, House, Senate) by name, state, office, or party using FEC data. Returns candidate IDs needed for the other FEC tools.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum candidates to return (default 20, max 100). | |
| party | No | Party code (e.g. 'DEM', 'REP', 'IND', 'LIB'). Optional. | |
| query | No | Candidate name fragment (e.g. 'Warren', 'Smith'). Optional. | |
| state | No | Two-letter state code to filter by (e.g. 'MA', 'TX'). Optional. | |
| office | No | Office: 'P' (President), 'S' (Senate), or 'H' (House). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior, and the description adds the important behavioral outcome that the tool returns candidate IDs, including their role as input to other FEC tools. It does not discuss pagination or rate limits, but those are secondary for this simple search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler: the first states the action and filters, the second states the output and contextual purpose. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter search tool, this description is complete: schema documents all parameters, annotations cover safety, and the description explains what the tool returns and why it matters. No critical information is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters are already documented in the input schema with descriptions (100% coverage), so the schema carries the parameter-semantics burden. The description only repeats the filter categories without adding syntax, defaults, or relationships beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('search') with a concrete resource ('federal candidates') and enumerates the filter dimensions (name, state, office, party). It also states the key output (candidate IDs) and positions the tool as a prerequisite for other FEC tools, which separates it from sibling FEC lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this tool is for finding candidate IDs needed before using the other FEC tools, which gives an agent a concrete reason to choose it. It does not explicitly name alternative tools or state when not to use it, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_committee_searchARead-onlyIdempotentInspect
Search FEC-registered political committees (campaign committees, PACs, party committees, Super PACs) by name, state, or committee type. Returns committee IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum committees to return (default 20, max 100). | |
| query | No | Committee name fragment. Optional. | |
| state | No | Two-letter state code to filter by. Optional. | |
| committee_type | No | Committee type code: 'P' (President), 'S' (Senate), 'H' (House), 'N'/'Q' (PAC), 'O' (Super PAC), 'X'/'Y' (party). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: it clarifies that the search covers multiple committee categories and that the result is committee IDs. This is adequate for a safe lookup tool, though pagination and no-results behavior are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence covers the resource, scope, filter options, and return value with no filler. The most important information is front-loaded, and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter search tool with a fully documented schema and rich annotations, the description is largely complete. It explicitly states the return value ('Returns committee IDs'), compensating for the lack of an output schema, though the exact result shape and edge-case behavior are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all five parameters, so the description does not need to restate parameter details. However, it does add the high-level search dimensions ('by name, state, or committee type') that map to query, state, and committee_type, providing mild complementary value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('FEC-registered political committees'), enumerates the covered committee categories, and states the searchable dimensions (name, state, committee type). It also distinguishes itself from sibling tools by scoping to committees rather than candidates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for finding FEC committees by name, state, or type, but it does not explicitly name alternatives or state when not to use it. An agent must infer routing from the tool name and sibling names like fec_candidate_search rather than being told directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_independent_expendituresARead-onlyIdempotentInspect
List independent expenditures (FEC Schedule E) supporting or opposing a candidate or made by a committee. Shows spender committee, amount, date, support/oppose, and description. Provide candidate_id or committee_id.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Two-year election cycle (even year, e.g. 2024). Optional. | |
| limit | No | Maximum expenditures to return (default 20, max 100). | |
| candidate_id | No | FEC candidate ID the spending targets (e.g. 'P80001571'). Provide this or committee_id. | |
| committee_id | No | FEC committee ID of the spender (e.g. 'C00804856'). Provide this or candidate_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds context beyond annotations by disclosing the result contents and the two query modes (by candidate or by spender committee). It does not mention pagination behavior or what happens when neither ID is supplied, but these are minor for a read-only list tool with a limit parameter in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler: purpose first, then return contents, then the critical input requirement. Every sentence earns its place, and the most important operational instruction is kept to a short imperative. Efficiently sized for a 4-parameter read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with read-only annotations and no output schema, the description covers the essentials: what is listed, what fields are shown, and which identifiers are needed. The main gap is not specifying behavior when neither candidate_id nor committee_id is provided (both are optional in the schema), plus no mention of the cycle dimension's effect on results. Otherwise nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 — the schema already documents all four parameters. The description's 'Provide candidate_id or committee_id' reinforces the mutual-exclusivity relationship already stated in the schema property descriptions, adding emphasis but no genuinely new semantic information beyond what the structured data provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a precise resource ('independent expenditures (FEC Schedule E)') and enumerates the returned fields (spender committee, amount, date, support/oppose, description). It clearly distinguishes this tool from sibling FEC tools like fec_candidate_financials or fec_committee_search by focusing on expenditures rather than profiles or totals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear precondition — 'Provide candidate_id or committee_id' — which tells the agent the tool requires a known identifier. However, it gives no explicit when-to-use versus when-not-to-use guidance relative to sibling FEC tools (e.g., when to prefer fec_candidate_financials instead), and no exclusion criteria. The usage context is implied rather than explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flood_zone_lookupBRead-onlyIdempotentInspect
FEMA flood zone designation for an address or coordinate. Returns the zone code, plain-English risk, BFE if applicable, FIRM panel reference, and whether NFIP insurance is mandated for federally-backed mortgages.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| location | No | Address or zip to geocode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful context by naming the exact return fields and noting that BFE is included 'if applicable,' but it does not disclose other behavioral traits like geocoding failure handling, data vintage, or coverage limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently communicates the core purpose and enumerates the key return fields without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the outputs well, which matters because there is no output schema. However, it leaves the input model underspecified: an agent must infer that location is for addresses and lat/lon are for coordinates, and there is no guidance about required vs optional inputs or mutual exclusivity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description needed to explain the parameters, but it does not clarify how lat, lon, and location relate to each other, whether they are alternatives, or what coordinate format is expected. It only loosely maps to 'address or coordinate' without giving enough detail for an agent to confidently choose the right inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: looking up FEMA flood zone designations for an address or coordinate, and it lists specific outputs. It is distinct enough in subject matter from siblings like nfip_flood_claims or geocode_address, but it does not explicitly name or differentiate itself from any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when flood zone information is needed, but gives no explicit guidance on when to prefer this tool over related alternatives such as nfip_flood_claims, property_lookup, or location_risk_report. No exclusions, prerequisites, or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_authorityARead-onlyIdempotentInspect
Check if a trucking company is legally authorized to operate and has valid insurance. Returns operating authority status (common, contract, broker - active/inactive/revoked), BIPD insurance, cargo insurance, bond/surety status, and whether they're allowed to haul freight. Use this for questions like 'can this carrier legally operate?', 'do they have insurance?', 'is this broker licensed?', 'verify carrier authority', 'check trucking company credentials', 'is this freight company legit?', or any carrier compliance check.
| Name | Required | Description | Default |
|---|---|---|---|
| dot_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint false, the description adds useful behavioral context by specifying exactly what statuses and insurance categories the tool returns. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by useful return-value detail and example queries. It is slightly long, but each sentence contributes functional guidance and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read-only lookup with no output schema, and the description explains both the input context and the main return categories. It doesn't cover not-found or error behavior, but for this tool complexity that is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines dot_number as a positive integer with no property description. The description adds some context by indicating the tool operates on trucking companies/carriers, but it never explicitly says the dot_number is a USDOT number or how to obtain it, leaving a small semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Check') against a specific resource ('trucking company') and enumerates concrete outputs: operating authority status, insurance types, bond/surety, and freight eligibility. It doesn't explicitly differentiate from sibling FMCSA tools like fmcsa_carrier_lookup or fmcsa_safety_scores, but the stated scope is specific enough to identify the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides example questions and a 'use this for' directive, so the intended usage context is fairly clear. However, it doesn't mention alternatives or exclusions, and the closing phrase 'or any carrier compliance check' is overbroad since safety-score checks are handled by fmcsa_safety_scores.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_compareARead-onlyIdempotentInspect
Compare 2 to 5 trucking companies side by side on safety, fleet size, insurance, and authority. Returns a comparison table: fleet size, driver count, safety rating, crash history, BASIC safety scores, authority status, insurance, and out-of-service rates. Use this for questions like 'which carrier is safer?', 'compare these trucking companies', 'which freight company should I use?', 'evaluate these carriers against each other', 'help me pick between these haulers', or any carrier vetting decision.
| Name | Required | Description | Default |
|---|---|---|---|
| dot_numbers | Yes | 2-5 USDOT numbers, as an array or comma-separated string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral detail by stating that it returns a comparison table and enumerating the exact data dimensions: fleet size, driver count, safety rating, crash history, BASIC safety scores, authority status, insurance, and out-of-service rates. This is helpful since no output schema is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and output are front-loaded in the first sentence, and the second sentence follows with the return format and then example queries. It is efficiently written, though the five example phrasings are somewhat redundant and could be trimmed without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with full schema coverage and safety annotations, the description is largely complete: it states the input scope, the decision use case, and the returned comparison dimensions. It does not cover data freshness or how incomplete records are handled, but that is a minor gap given how much is already explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents dot_numbers thoroughly, including the 2-5 range and accepted formats (array or comma-separated string), so schema coverage is 100%. The description reinforces the 2-5 carrier range but adds no new parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compare 2 to 5 trucking companies side by side on safety, fleet size, insurance, and authority.' This clearly distinguishes it from sibling tools like fmcsa_carrier_lookup, fmcsa_carrier_search, and fmcsa_safety_scores, which are single-carrier or score-specific operations. The tool's purpose as a multi-carrier comparison is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context with concrete question examples such as 'which carrier is safer?' and 'compare these trucking companies,' and closes with 'or any carrier vetting decision.' It does not explicitly name alternative tools or state when not to use it, but the 'use for questions like...' framing gives an agent solid selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_lookupARead-onlyIdempotentInspect
Look up a trucking company, freight carrier, or motor carrier by DOT number or MC number. Returns company name, address, phone, fleet size, number of drivers, safety rating, operating authority, insurance status (BIPD, cargo, bond), crash history, inspection rates, and out-of-service percentages. Use this for questions like 'is this carrier safe?', 'look up this trucking company', 'check this DOT number', 'verify this carrier', 'what's their safety rating?', or any freight carrier lookup. Covers all US carriers registered with FMCSA.
| Name | Required | Description | Default |
|---|---|---|---|
| mc_number | No | ||
| dot_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive behavior, so the description mainly adds scope ('Covers all US carriers registered with FMCSA') and return categories. It does not clarify that calling with neither dot_number nor mc_number is likely invalid, even though the schema marks both optional. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Information-dense and front-loaded with the core lookup, followed by a useful field inventory, usage examples, and scope. The examples are slightly redundant, but the description remains focused and earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter lookup with no output schema, the description is mostly complete: it lists return fields, identifiers, and coverage. The main gaps are the lack of an explicit at-least-one-parameter constraint and route to sibling FMCSA tools, which prevents a top score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides property names and integer types but no descriptions; the description supplies the domain meaning (DOT/MC are carrier identifiers) and says the lookup is by one or the other. It stops short of documenting exact accepted formats or explicitly stating that at least one parameter is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('look up') on a defined resource class (trucking/freight/motor carrier) keyed by DOT or MC number, and enumerates returned fields. It does not explicitly name or exclude nearby siblings like fmcsa_carrier_search, fmcsa_carrier_authority, or fmcsa_carrier_compare, so differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit query-phrase examples ('is this carrier safe?', 'check this DOT number') that tell an agent when to invoke it. However, it never says when not to use it or mentions alternatives for narrower or comparative carrier lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_carrier_searchARead-onlyIdempotentInspect
Search for trucking companies, freight carriers, or motor carriers by company name. Find any carrier's DOT number, MC number, location, fleet size, and operating status. Supports partial name matching. Use this for questions like 'find this trucking company', 'what's the DOT number for Werner?', 'search for freight carriers in Texas', 'look up this logistics company', or any carrier name search. Returns up to 50 matching carriers from the FMCSA national database.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context beyond annotations: partial-name matching, a 50-result cap, the FMCSA national database source, and the fields returned. It does not discuss zero-result or ambiguous-match behavior, but this is a minor gap for a read-only search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: core operation first, return fields second, then matching behavior and examples. The example list is mostly helpful, though 'or any carrier name search' is a slightly redundant catch-all and the 'freight carriers in Texas' example is a bit loose because the tool only searches by company name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately lists the key return fields and the result limit, giving an agent enough information to invoke and interpret the tool. The main gap is that it does not warn that searches are name-only and cannot filter by location, despite one example mentioning Texas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameter. It does: the 'name' parameter is a company name, partial matches are supported, and examples clarify expected input. It stops short of specifying case sensitivity or formatting, but the schema constraints and examples suffice for this simple one-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search for trucking companies... by company name,' then lists concrete returned fields (DOT number, MC number, location, fleet size, operating status). It also notes partial name matching, which helps distinguish it from exact-lookup siblings like fmcsa_carrier_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit example questions and states 'or any carrier name search,' so an agent knows when to invoke it. It does not explicitly mention when to prefer sibling tools such as exact DOT/MC lookup or safety-score tools, though the name-search framing implies the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fmcsa_safety_scoresARead-onlyIdempotentInspect
Get safety information for a trucking company by DOT number. Returns either CSA BASIC percentile scores (where FMCSA publishes them, rare per FAST Act 2015 restrictions) OR a public safety summary built from crash counts, fatal/injury crashes, driver/vehicle/hazmat out-of-service rates, and inspection volumes (always available). Use this for questions like 'is this carrier safe?', 'what's their safety record?', 'how many crashes?', 'should I hire this carrier?', 'check their inspection history', or any trucking safety evaluation. Higher BASIC percentiles = worse record. For OOS rates, lower is better; national averages provided for comparison.
| Name | Required | Description | Default |
|---|---|---|---|
| dot_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond that: it explains the conditional return of CSA BASIC percentiles versus the always-available public safety summary, specifies the metrics included, and clarifies interpretation ('Higher BASIC percentiles = worse record'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then efficiently covers return modes, example use cases, and interpretation guidance. The example-question list is slightly long but each item is decision-relevant, and no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the two possible return forms, the data contained in the safety summary, and how to interpret the metrics. It does not cover error cases or mention alternative fmcsa tools, but for a single-parameter read-only lookup the essential information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate, but it only repeats that the tool works 'by DOT number.' This adds little beyond the parameter name and the schema's integer/exclusiveMinimum constraints. It does not explain how to obtain or format a DOT number or any additional semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get safety information for a trucking company by DOT number.' The description further clarifies the two possible return types, which helps differentiate it from generic carrier lookups. However, it does not explicitly distinguish itself from sibling tools like fmcsa_carrier_lookup or fmcsa_carrier_authority.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context through example questions like 'is this carrier safe?' and 'how many crashes?' and explicitly says 'or any trucking safety evaluation.' It does not state when not to use it or mention alternative tools, so it lacks explicit exclusions and sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_category_seriesARead-onlyIdempotentInspect
List the most popular FRED series in a category. Category IDs are numeric (e.g. 32991 = Interest Rates, 32263 = Money Stock, 9 = National Accounts). Use this to browse FRED structurally rather than via search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| category_id | Yes | FRED category ID. See https://fred.stlouisfed.org/categories/ for the hierarchy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint true, idempotentHint true, destructiveHint false). The description adds context by saying results are the most popular series in a category, which implies ordering and selection behavior. However, it does not disclose pagination behavior, response shape, or rate limits; with no output schema, more detail would have been useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and each sentence earns its place: the first states the core purpose, the second gives parameter context, and the third provides usage direction. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only listing tool, the description is mostly complete: purpose, category ID semantics, and structural browsing intent are all covered. It could be more complete by connecting to fred_observations for actual data retrieval or noting whether output is metadata-only, but the annotations and schema make the tool safely callable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters well, so the baseline is 3. The description actively enriches category_id by providing concrete numeric examples and their meanings (32991 = Interest Rates, 32263 = Money Stock, 9 = National Accounts), which helps an agent select a valid category ID without further research.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (FRED series), and the scoping dimension (category with numeric IDs). It distinguishes itself from search by saying 'browse FRED structurally rather than via search,' though it does not explicitly name sibling tools like fred_observations or fred_series_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: browse FRED by category instead of searching. The example category IDs help an agent know what input is expected. It does not spell out when not to use this tool versus related siblings such as fred_observations or fred_series_info, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_compareARead-onlyIdempotentInspect
Compare 2 to 5 FRED series side-by-side over the same date range. Returns observations for each series. Useful for ratio analysis (e.g. compare 10Y vs 2Y yield) or cross-series correlation.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound ISO date (YYYY-MM-DD). | |
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| start | No | Inclusive lower-bound ISO date (YYYY-MM-DD). | |
| series_ids | Yes | 2 to 5 FRED series IDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavior beyond the annotations: it compares series side-by-side over the same date range and returns observations for each series. With readOnlyHint and idempotentHint already covering safety, this extra detail about output shape is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the core action and scope, the second states the output, the third gives practical use cases. Everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with the fully-covered schema and annotations, gives an agent enough to invoke the tool correctly: required series_ids, optional start/end/limit, output type, and use cases. Minor gaps like non-overlapping date-range behavior are not necessary for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add parameter-specific details, which is acceptable at baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Compare'), the resource ('FRED series'), and the scope (2 to 5 series, same date range). It also specifies what is returned ('observations for each series'), which distinguishes it from single-series FRED tools like fred_observations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear use cases ('ratio analysis', 'cross-series correlation') that signal when to choose this tool. It does not explicitly name alternatives or exclusions, but the context is strong enough for an agent to select this over single-series or search-focused FRED tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_observationsARead-onlyIdempotentInspect
Get time-series observations for a FRED series ID. Workhorse query for any economic indicator. Optional date range, units transformation (lin, chg, pch, log, etc.), and frequency aggregation (m, q, a).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound ISO date (YYYY-MM-DD). | |
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| start | No | Inclusive lower-bound ISO date (YYYY-MM-DD). | |
| units | No | Units transformation: 'lin' (default), 'chg' (change), 'ch1' (change YoY), 'pch' (% change), 'pc1' (% change YoY), 'log', etc. | |
| frequency | No | Aggregate to a different frequency: 'd', 'w', 'bw', 'm', 'q', 'sa', 'a'. | |
| series_id | Yes | FRED series ID (e.g. 'GDP', 'UNRATE'). See https://fred.stlouisfed.org/ for the catalog. | |
| aggregation_method | No | Aggregation method when changing frequency: 'avg', 'sum', or 'eop' (end of period). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds optional date range, units transformation, and frequency aggregation, but does not disclose pagination, default limits, or error behavior beyond what the schema already lists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core purpose is front-loaded and the optional parameters are summarized compactly. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only observations query, the description plus fully documented schema and safety annotations are nearly complete. The only minor gap is the lack of explicit comparison to sibling FRED tools, but the tool call itself is fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description paraphrases units and frequency options with examples such as 'lin, chg, pch, log' and 'm, q, a', but adds no meaning beyond the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get time-series observations for a FRED series ID.' This is clear and distinguishable from fred_search and fred_series_info, but it does not explicitly differentiate from fred_quick_indicator or fred_compare, which also retrieve FRED indicator data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Workhorse query for any economic indicator' implies this is the default tool for FRED data retrieval, offering clear context. However, it gives no explicit when-not-to-use guidance or alternatives, leaving the agent to infer boundaries versus similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_quick_indicatorBRead-onlyIdempotentInspect
Quick-access wrapper for the most-queried FRED indicators by friendly name. Avoids needing to memorize FRED series IDs. Valid indicators: unemployment_rate, fed_funds, fed_funds_target, cpi, core_cpi, gdp, real_gdp, ten_year_yield, two_year_yield, thirty_year_yield, thirty_year_mortgage, m2, industrial_production, retail_sales, nonfarm_payrolls, housing_starts, case_shiller, vix, wti, brent, natural_gas_henry_hub, dollar_index, consumer_sentiment, initial_claims, pce_inflation, recession_indicator.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive upper-bound ISO date (YYYY-MM-DD). | |
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| start | No | Inclusive lower-bound ISO date (YYYY-MM-DD). | |
| indicator | Yes | Friendly indicator name. See description for valid options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds that this is a curated wrapper restricted to a fixed set of friendly names, which is useful and consistent. It does not describe the exact response format, but with annotations covering the safety profile, the additional behavioral disclosure is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence immediately states the purpose, the second gives the rationale, and the remainder is an exhaustive list of valid values. The list is long but necessary given the closed set, and there is no filler prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description never explicitly states what is returned (presumably FRED observations) or how to interpret the result. The parameter schema covers start/end/limit, but the return shape is a notable omission. The tool is simple enough that an agent can likely call it, but the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions and the indicator enum lists exactly the same values as the description, so the description's list is redundant. The main added semantic is the friendly-name-to-series-ID mapping, but the schema's indicator description already calls it a 'friendly indicator name.' Thus the description does not move meaningfully beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific convenience wrapper over frequently used FRED indicators, selected by friendly names, and explains that it removes the need to memorize FRED series IDs. It is clear about the resource and access pattern, but it does not explicitly frame itself against siblings like fred_observations, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates a use case: users who want one of the 26 listed common indicators without knowing the series ID. It does not explicitly state when to prefer fred_observations, fred_search, or other siblings, nor provide any exclusions. Usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_releasesARead-onlyIdempotentInspect
Browse FRED economic releases (e.g. Employment Situation, CPI, GDP). With upcoming_dates=true, returns the upcoming release calendar instead. Useful for knowing when fresh data is expected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| release_id | No | Optional. If provided, return only that release's metadata. | |
| upcoming_dates | No | If true, return upcoming release date schedule instead of release metadata. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds behavioral context beyond annotations by explaining that upcoming_dates=true switches the response from release metadata to the upcoming release calendar, which is meaningful for agent expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loaded with the main purpose and examples, and then the mode switch. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only catalog tool with zero required parameters and full schema documentation, the description is largely complete: it states the resource, gives examples, and explains the alternate mode. It could explicitly route to fred_observations or fred_series_info for actual data values, but that is not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (limit, release_id, upcoming_dates) are already fully documented in the schema. The description's mention of upcoming_dates=true aligns with the schema but adds no new semantic detail beyond it, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource combination — 'Browse FRED economic releases' — and reinforces it with concrete examples (Employment Situation, CPI, GDP). It also clearly distinguishes the two modes of operation (release metadata vs. upcoming calendar), making its purpose unambiguous and distinct from sibling tools that focus on series, observations, or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('Useful for knowing when fresh data is expected') and explains when the upcoming_dates parameter changes behavior. It does not explicitly name sibling alternatives like fred_observations or fred_series_info or state when not to use this tool, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_searchARead-onlyIdempotentInspect
Full-text search across FRED's 800,000+ economic series. Returns matching series IDs and titles ranked by popularity. Use when you don't know the exact series ID.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 50 for observations, 25 for catalog queries). | |
| tag_names | No | Optional semicolon-delimited tag filter (e.g. 'usa;monthly'). | |
| search_text | Yes | Free-text search query (e.g. 'unemployment Texas', 'natural gas price', 'corporate profit'). | |
| search_type | No | 'full_text' (default) or 'series_id'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so safety is well covered. The description adds useful behavioral context: it searches a corpus of 800,000+ series, returns IDs and titles, and ranks by popularity. It doesn't disclose pagination or the result shape, but the annotations and moderate complexity make this a solid score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states what the tool does, the second explains when to use it. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With schema covering 100% of parameters and annotations covering mutability/idempotence/read-only safety, the description is nearly complete. The only gaps are the resulting payload structure and behavior when no results are found, but since there is no output schema and this is a search/discovery tool with known caveats, a 4 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 4 parameters already described in the schema (search_text, search_type, tag_names, limit). The description adds the ranking-by-popularity context and the example use case, but doesn't significantly expand on parameter semantics beyond the schema. Baseline 3 applies because the schema carries the documentation load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs full-text search across FRED's 800,000+ economic series and returns matching series IDs and titles ranked by popularity. It also explicitly identifies the use case: when you don't know the exact series ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to use this tool when you don't know the exact series ID, which gives clear selection guidance. Among FRED siblings, fred_series_info, fred_observations, fred_category_series, and fred_quick_indicator serve different purposes; this description explicitly frames its use case for discovery rather than retrieval of a known series.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fred_series_infoARead-onlyIdempotentInspect
Get metadata for a FRED economic data series by ID. Returns title, units, frequency, seasonal adjustment, observation range, and notes. Useful for verifying a series exists and understanding its measurement before pulling observations.
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | FRED series ID (e.g. 'GDP', 'UNRATE', 'CPIAUCSL', 'DGS10'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds that the tool returns metadata and can verify existence, but it does not disclose error behavior for nonexistent series, rate limits, or other operational quirks. With strong annotation coverage, a mid score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The first sentence states the action and the return payload; the second provides the use case. Everything earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only lookup tool with rich annotations, the description is complete: it tells the agent what it does, what it returns, and when to use it. No output schema exists, but the description lists the return fields, so an agent can judge whether this tool satisfies the user's request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage: the only parameter, series_id, is described with helpful examples ('GDP', 'UNRATE', 'CPIAUCSL', 'DGS10'). The description adds little beyond confirming the ID identifies a FRED series, which the schema already conveys. Baseline 3 is correct because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get metadata') with a specific resource ('FRED economic data series by ID') and enumerates precisely what is returned: title, units, frequency, seasonal adjustment, observation range, and notes. It clearly distinguishes this from pulling observations or searching for series, and the sibling context reinforces that fred_series_info is for metadata, not observations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says it is useful 'for verifying a series exists and understanding its measurement before pulling observations,' which gives clear usage context relative to fred_observations. It does not explicitly name alternative tools or state when not to use it, but the 'by ID' phrasing implies the series ID should already be known, and the connection to pulling observations is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocode_addressARead-onlyIdempotentInspect
Geocode a US street address with the Census Geocoder (keyless). Accepts a one-line address OR structured street/city/state/zip parts. Returns the normalized matched address, longitude/latitude, and Census geographies (state, county, tract, block, congressional district) with GEOIDs. No match returns an explicit not-found message.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ZIP code for a structured query. | |
| city | No | City for a structured query. | |
| state | No | Two-letter state code for a structured query (e.g. 'DC'). | |
| street | No | Street line for a structured query (e.g. '4600 Silver Hill Rd'). | |
| address | No | One-line address, e.g. '4600 Silver Hill Rd, Washington, DC 20233'. Provide this OR the structured parts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior. The description adds valuable behavioral context beyond annotations: it is keyless, returns the normalized matched address, coordinates, Census geographies with GEOIDs, and explicitly reports an unmatched address with a not-found message.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences front-load the core purpose, then cover input modes and outputs. Every sentence adds necessary selection or invocation information with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the key return components including normalized address, coordinates, Census geographies, GEOIDs, and not-found behavior. For a five-parameter tool with zero required fields and no output schema, this is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% parameter coverage with clear examples. The description adds useful relational semantics by stating that callers can pass either a one-line address OR structured street/city/state/zip parts, clarifying the intended parameter grouping beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Geocode a US street address with the Census Geocoder (keyless).' It clearly distinguishes this tool from sibling tools like geocode_coordinates and geocode_batch by scope (street address) and single-address mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: US-only addresses, keyless Census Geocoder, and two accepted input modes (one-line vs. structured parts). It does not explicitly name alternatives or state when not to use the tool, but the 'street address' framing implies the boundary versus coordinate/batch geocoding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocode_batchARead-onlyIdempotentInspect
Geocode up to 10 one-line US addresses in a single call. Returns one block per input address (matched address, coordinates, and county/tract GEOIDs). For large jobs the Census batch file API supports up to 10k rows; this tool covers small ad-hoc batches.
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | Yes | Array of one-line address strings. Max 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral detail beyond annotations by specifying the return shape (one block per input address with matched address, coordinates, and county/tract GEOIDs) and the batch limit of 10. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The core action and batch limit are front-loaded, return shape is stated second, and the alternative API guidance is a compact final sentence. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with a single parameter and 100% schema coverage, the description covers the key operational constraints: max 10 addresses, US-only addresses, one output block per input, and the boundary against the larger Census API. It lacks details like error behavior or address normalization, but those are not critical for a simple geocoding call with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'addresses' parameter, so the schema already defines an array of one-line address strings with max 10. The description adds value by clarifying what each returned block contains, which indirectly explains how the input addresses map to outputs. Some format expectations (e.g., address formatting guidelines) are not detailed, but the schema plus description are largely sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool geocodes up to 10 one-line US addresses in a single call, with a specific verb (geocode), resource (addresses), and explicit constraints. It also distinguishes itself from the larger Census batch file API, helping an agent differentiate it from similar geocoding tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames when to use this tool ('small ad-hoc batches') versus when to use the Census batch file API ('up to 10k rows'). It doesn't name a sibling tool, but the guidance is sufficient for an agent to select it appropriately against the broader sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocode_coordinatesARead-onlyIdempotentInspect
Reverse-geocode a longitude/latitude pair with the Census Geocoder (keyless). Returns the Census geographies (state, county, tract, block, congressional district) containing the point, with GEOIDs.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude (y), e.g. 38.84 | |
| longitude | Yes | Longitude (x), e.g. -76.92 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds meaningful context: calls are keyless, uses the Census Geocoder, and returns a specific set of geographies. It does not detail rate limits or error behavior, but the annotations carry the safety profile and the description adds useful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that front-loads the operation and includes only high-value details: reverse geocoding, coordinate inputs, source, keyless access, and return values. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only tool, this description is complete: it explains the inputs, source, authentication requirement (none), and expected output. The absence of an output schema is mitigated by the explicit statement that Census geographies and GEOIDs are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions fully cover both parameters with examples (latitude and longitude). The description reinforces that the tool expects a coordinate pair but adds no further meaning beyond the schema, which already names and explains both fields. A baseline of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Reverse-geocode'), a specific resource ('a longitude/latitude pair'), and the data source ('Census Geocoder'). It also names the return values (Census geographies with GEOIDs), distinguishing it from forward-geocoding tools like geocode_address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this when you have coordinates and need the containing Census geographies. It does not explicitly name alternatives or state when not to use it, but the 'Reverse-geocode' phrasing and coordinate input provide enough context to differentiate it from address-based or batch geocoding siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_repoARead-onlyIdempotentInspect
Public GitHub repository stats: description, stars, forks, open issues, primary language, license, last push date, and archived status. Useful for assessing the health and maintenance of an open-source dependency. Keyless (60 req/hr unauthenticated).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository as 'owner/repo', e.g. 'facebook/react'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a useful behavioral constraint beyond annotations: 'Keyless (60 req/hr unauthenticated)', which helps agents plan around rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the return fields are listed first, then the use case, then the rate limit. Every clause adds information needed for selecting and invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only stats tool, the description is complete: it lists the output fields, states the intended use case, and discloses the rate limit. The annotation profile covers safety, and the schema covers parameter syntax.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single 'repo' parameter is clearly documented with format and example. The description reinforces that the tool operates on a GitHub repository but does not need to add more because the schema already carries the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (public GitHub repository) and the exact type of data returned: description, stars, forks, open issues, primary language, license, last push date, and archived status. This is specific enough to distinguish it from sibling package and repository tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: 'useful for assessing the health and maintenance of an open-source dependency.' This tells an agent when to select it, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grants_get_opportunityARead-onlyIdempotentInspect
Fetch full detail for a Grants.gov opportunity by its numeric opportunity id (the 'id' field from grants_search, e.g. '334326'). Returns description, eligibility, funding (ceiling/floor/estimated), key dates, CFDA numbers and the agency contact.
| Name | Required | Description | Default |
|---|---|---|---|
| opportunityId | Yes | Numeric opportunity id from a grants_search result (e.g. '334326'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds meaningful return-value context by listing the kinds of data returned (description, eligibility, funding, dates, CFDA numbers, agency contact), which is useful absent an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core action, identifier source, and return contents are all front-loaded, making it quick for an agent to parse and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, the description covers the input provenance and the expected return fields. It is sufficient for correct invocation; a minor gap is that it does not describe behavior when the id is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the input schema already explains that opportunityId is a numeric opportunity id from grants_search with an example. The tool description reinforces this but does not add substantial new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch full detail'), a specific resource ('Grants.gov opportunity'), and a precise identifier ('numeric opportunity id'). It also ties the id to grants_search, which distinguishes it from the main sibling tool in this domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates that this tool is for fetching details after obtaining an opportunity id from grants_search. It does not explicitly say 'use grants_search when you lack an id', but the dependency is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grants_searchARead-onlyIdempotentInspect
Search federal funding opportunities on Grants.gov (keyless). Filter by keyword, opportunity status (forecasted/posted/closed/archived), agency, funding category and eligibility. Returns opportunity number, title, agency, status, open/close dates and CFDA numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | Max results (default 25, max 100). | |
| keyword | No | Free-text keyword (e.g. 'clean energy', 'rural health'). | |
| agencies | No | Agency code filter (e.g. 'NSF', 'HHS'). Pipe-separate multiples. | |
| oppStatuses | No | Pipe-separated statuses. Default 'forecasted|posted'. Options: forecasted, posted, closed, archived. | |
| eligibilities | No | Applicant-eligibility code filter (e.g. '25' state governments, '99' unrestricted). Pipe-separate multiples. | |
| fundingCategories | No | Funding category code filter (e.g. 'ENV', 'ED'). Pipe-separate multiples. | |
| fundingInstruments | No | Funding-instrument code filter (e.g. 'G' grant, 'CA' cooperative agreement). Pipe-separate multiples. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), so the bar is lower. The description adds genuine value beyond annotations by disclosing that the API is keyless and by enumerating the return fields (opportunity number, title, agency, status, open/close dates, CFDA numbers), which orients the agent on what results look like. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first sentence states purpose and keyless access, second sentence enumerates filters and return fields. Everything earns its place, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with 7 optional parameters, the description covers the domain origin, filter capabilities, and return fields (partially compensating for the missing output schema). The only notable gap is the lack of an explicit pointer to grants_get_opportunity for fetching full opportunity details, which would complete the navigation story.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all 7 parameters have meaningful schema descriptions including default values and pipe-separated syntax. The description summarizes these filters but adds no genuinely new semantics beyond what the schema already documents, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search federal funding opportunities on Grants.gov') plus the keyless qualifier, and lists concrete filter dimensions and return fields. This clearly positions it as the discovery tool and distinguishes it from the sibling grants_get_opportunity, which presumably retrieves a single opportunity's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear usage context — searching for funding opportunities with filters, and the keyless note signals no auth setup is needed. However, it never explicitly names the alternative (grants_get_opportunity) or states when not to use it, so the agent must infer the search-vs-detail split from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hurricane_trackerARead-onlyIdempotentInspect
Currently-active hurricanes and tropical systems from NOAA NHC, with category, wind/pressure, current position, movement, and forecast cone link.
| Name | Required | Description | Default |
|---|---|---|---|
| basin | No | Optional basin filter: 'AL' (Atlantic), 'EP' (Eastern Pacific), 'CP' (Central Pacific). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this read-only, idempotent, and non-destructive, so the description only needs to add context beyond safety. It adds the authoritative source (NOAA NHC), the active-storm scope, and a useful summary of returned fields. It does not mention update frequency or empty-result behavior, but those are secondary given the simple read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence front-loads the key scope ('Currently-active') and packs source, data fields, and forecast link with no wasted words. It is easy to scan and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter read-only tool, the description covers the essential calling context: source, temporal scope, and return content. Since there is no output schema, the field list is valuable. It is slightly incomplete in not saying what happens when no storms are active, but annotations and schema make the tool straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional basin parameter is fully documented in the input schema, so the description does not need to repeat it. The description adds no basin-specific semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource — currently active hurricanes and tropical systems from NOAA NHC — and enumerates the included data: category, wind/pressure, position, movement, and forecast cone link. It is clearly distinguishable from generic weather tools, though it lacks an explicit action verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'currently-active' implies a temporal use case: this tool is for live storms rather than historical data. However, the description does not name alternatives such as nws_active_alerts or weather_current, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
influence_network_mapARead-onlyIdempotentInspect
One-call 'follow the money and influence' map for an organization, joined across three federal public-record streams: FEC (the org's connected political committees / PACs - its political-spending vehicles), the U.S. Senate Lobbying Disclosure Act (filings where the org is the client, the reported lobbying spend, the firms it hired, and the issue areas lobbied), and USAspending (federal contracts + grants the org RECEIVES, with award counts and top agencies). Returns a readable map of money flowing OUT to influence (lobbying + political committees) vs. money flowing IN from federal awards. Built for investigative journalism, govcon, and due-diligence research. Informational public-record synthesis, NOT a risk score (distinct from counterparty_risk_score). The FEC leg needs an api.data.gov key and is noted as skipped if unavailable; a source that fails is noted, not fatal.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Optional 4-digit lobbying filing year (e.g. '2024'); defaults to the most recent year with filings. | |
| state | No | Optional 2-letter state to scope the FEC committee search. | |
| company | No | Alias for organization. | |
| organization | Yes | Organization / company name (e.g. 'Lockheed Martin', 'Boeing'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive behavior. The description adds meaningful behavioral context beyond that: the FEC leg requires an api.data.gov key, unavailable sources are reported as skipped rather than fatal, and the result is a synthesized readable map rather than a raw dataset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: purpose, sources, output shape, use cases, differentiation from a sibling, and operational caveat. Every sentence earns its place and the most important scoping information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description does a good job explaining what is joined, what the map compares, and what happens when a source is unavailable. It could be slightly more explicit about the output field structure and how the optional year/state parameters affect each data leg, but it is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for all four parameters. The description reinforces the organization-level focus but does not add substantive parameter-level detail beyond what the schema documents, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: a one-call 'follow the money and influence' map for an organization. It names the three data streams, the outbound vs. inbound money distinction, and explicitly separates itself from counterparty_risk_score, making it easy to distinguish from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states intended use cases (investigative journalism, govcon, due-diligence research) and explicitly says it is not a risk score, naming counterparty_risk_score as the distinct alternative. It could be stronger with more explicit 'use this instead of raw FEC/lobbying/spending searches' guidance, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_reputationARead-onlyIdempotentInspect
Risk profile for an IP address: geolocation and network (ASN/ISP/org) plus two abuse signals - whether it is a known Tor exit node, and whether it appears on the abuse.ch Feodo botnet command-and-control blocklist. For fraud, abuse, and security screening. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 or IPv6 address to screen. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only, idempotent operation. The description adds meaningful behavioral context beyond that: exact data sources/signals included and the fact that no API key is required. This is more than minimal and helps the agent anticipate what the response will cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense, well-structured sentence that lists the key outputs and finishes with the supported use case and keyless note. Every clause earns its place with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with no output schema, the description is complete enough: it specifies the input, the returned data categories, the intended use, and authentication expectations. An agent can confidently select and invoke this tool with no missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'ip' is already described as 'IPv4 or IPv6 address to screen.' The description adds context about how the IP is used (risk screening) but does not add new parameter-level semantics beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as producing a risk profile for an IP address, enumerating the exact data categories: geolocation, network info, Tor exit node status, and Feodo botnet blocklist status. This distinguishes it from sibling lookup tools like rdap_ip by focusing on abuse-risk signals rather than raw registration data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the intended use case: 'For fraud, abuse, and security screening.' This gives clear context for when to select the tool, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issuer_diligence_dossierARead-onlyIdempotentInspect
One-call NARRATIVE public-record diligence dossier for a public company / SEC issuer. Joins SEC EDGAR (registrant identity, CIK/ticker, recent filings and their form mix), federal courts via CourtListener (RECAP dockets whose name references the issuer), USAspending (federal contract awards, name-matched), and CPSC product-safety recalls into a readable brief with a short headline and four sections: Identity & SEC, Litigation, Federal business, and Product-safety. Every source degrades gracefully - a failing leg is noted, not fatal. This is a narrative synthesis, deliberately distinct from counterparty_risk_score (a 0-100 score) and entity_dossier (SEC+EPA+sanctions only). Informational public-record synthesis, not a background check or legal/financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state hint for disambiguation (currently informational). | |
| ticker | No | Optional stock ticker hint to pin the SEC EDGAR match (e.g. 'LMT'). | |
| company | Yes | Public company / SEC issuer name (e.g. 'Lockheed Martin', 'Pfizer'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly, openWorld, and idempotent annotations, the description discloses that every source degrades gracefully and a failing leg is noted but not fatal. It also clarifies that the output is a narrative synthesis with a headline and four named sections, which is useful behavioral context that the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and audience, then uses compact clauses to list sources, output structure, degradation behavior, and sibling distinctions. Every clause earns its place; the length is justified by the tool's multi-source complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description still explains what the agent will receive: a readable brief with a headline and four named sections, plus graceful handling of source failures. The single required parameter is semantically complete, and the relationship to the closest sibling tools is explicit. Nothing critical for selecting or invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters already have schema descriptions, so the baseline is 3. The description adds meaningful matching semantics: RECAP dockets are matched by name reference and USAspending awards are name-matched, while the ticker/state hints act as disambiguation aids. This goes slightly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific deliverable — a 'one-call NARRATIVE public-record diligence dossier' — and scopes it to public companies / SEC issuers. It enumerates the joined sources and output sections, and explicitly distinguishes itself from counterparty_risk_score and entity_dossier, so an agent can tell it apart from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: public-record diligence for an SEC issuer. It explicitly contrasts the tool with counterparty_risk_score (a 0-100 score) and entity_dossier (SEC+EPA+sanctions only), which routes agents to the right alternative. It also adds an exclusion: it is not a background check or legal/financial advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iv_analyticsARead-onlyIdempotentInspect
Compute derived options-volatility analytics for a US ticker from LiveDataLink's historical volatility series (2019-2024): IV Rank (where current implied vol sits in its own range over the lookback window), IV Percentile (share of days with lower IV), Variance Risk Premium (implied minus realized vol), 52-week IV high/low, and 1-week/1-month IV momentum. Derived synthesis over the options-history store. Analytical aid, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Optional as-of date (YYYY-MM-DD); defaults to the latest available day. | |
| ticker | Yes | US stock ticker with listed options (e.g. 'AAPL', 'SPY'). | |
| lookback_days | No | Trailing window for rank/percentile (default 252 ~ 1 trading year). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful context beyond annotations: the data source (LiveDataLink historical volatility series 2019-2024), the derivation nature of the results, and the specific computed metrics. It does not contradict annotations, and the 'not investment advice' caveat adds appropriate framing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact given the analytical complexity, front-loading the verb and resource before enumerating outputs. The list of metrics is long but each item earns its place by clarifying exactly what the tool returns. The final disclaimers are short and non-redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of indicating what results to expect; its metric list largely covers that. It also identifies the data source, ticker scope, and lookback behavior. It is not fully exhaustive regarding return shape or edge-case coverage, but it is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description does not need to compensate. The description references the lookback window indirectly through the metric definitions but does not repeat or extend the schema-level documentation for ticker, as_of, or lookback_days. It adds no param detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Compute'), a clear resource ('derived options-volatility analytics'), and a target scope ('US ticker'). It enumerates concrete outputs (IV Rank, IV Percentile, Variance Risk Premium, 52-week IV high/low, IV momentum), which sharply distinguishes it from raw-history siblings like options_history_volhist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when derived volatility analytics rather than raw historical series are needed, framing itself as 'Derived synthesis over the options-history store.' However, it does not explicitly name alternative tools or state conditions under which a caller should prefer a sibling such as options_history_volhist or options_chain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kev_status_checkARead-onlyIdempotentInspect
Check whether a CVE is in the CISA Known Exploited Vulnerabilities catalog. Returns date added, due date, ransomware association, and required action.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by disclosing the returned fields (date added, due date, ransomware association, required action), which goes beyond what annotations provide. It does not discuss edge cases like CVEs not found in the catalog, but this is acceptable given the simpler tool scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that starts with the tool's purpose and immediately lists the useful output fields. There is no filler, redundancy, or unnecessary repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup tool, the description covers the action, the target catalog, and the return value fields. It does not specify the response when a CVE is not in the catalog, but the absence of an output schema is partially compensated by listing return fields. Overall it is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes cve_id as a 'CVE identifier' with 100% coverage. The description does not add format guidance (e.g., CVE-YYYY-NNNNN), but the schema description is sufficient for the single parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check whether') and a specific resource ('CISA Known Exploited Vulnerabilities catalog'), and enumerates the exact output fields. This clearly distinguishes it from generic CVE tools like cve_lookup or cve_search_by_keyword even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: determining whether a CVE is in the CISA KEV catalog. It does not explicitly name alternatives or state when not to use the tool, but the narrowly scoped catalog reference makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyb_aml_evidence_case_fileARead-onlyIdempotentInspect
Assemble a reusable KYB/AML evidence case file for one company. Combines canonical identity and join keys, GLEIF ownership-chain screening, and public-record standing across sanctions, SEC, EPA, and federal awards, with explicit unavailable-source notes and a reviewer checklist. Informational evidence organization, not legal advice or sanctions clearance.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | No | Optional EIN hint for nonprofit identity. | |
| lei | No | Optional 20-character LEI to anchor the ownership chain. | |
| state | No | Optional 2-letter state. | |
| format | No | Case-file format. Defaults to markdown. | |
| ticker | No | Optional SEC ticker hint. | |
| company | Yes | Company or organization name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, so the bar is lower and the safety profile is covered. The description adds real behavioral value beyond that: it discloses what the output contains (sources screened, unavailable-source notes, reviewer checklist) and the epistemic limit ('informational evidence organization, not legal advice or sanctions clearance'). No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: the main action is front-loaded, the composition details follow in the second sentence, and the caveat lands last. Each sentence earns its place and the ordering moves from what → contents → limitation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description carries the burden of explaining the result and largely succeeds: it lists the covered source domains, the output components (unavailable-source notes, reviewer checklist), and the scope limitation. It could go further on how a caller should interpret or act on the checklist, but for a read-only, idempotent aggregator the description is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so per the baseline the schema already documents all six parameters. The description adds modest context by framing ein/lei/ticker as 'canonical identity and join keys' (i.e., optional resolution hints) and by tying 'one company' to the required company param, but it does not deepen parameter semantics meaningfully beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Assemble a reusable KYB/AML evidence case file for one company,' with a concrete scope boundary (single company). It enumerates the constituent parts (identity/join keys, GLEIF ownership-chain screening, sanctions/SEC/EPA/federal-awards standing) and explicitly distinguishes itself from related outputs via the 'not legal advice or sanctions clearance' caveat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: this is the consolidated case-file assembler rather than a point screen, which implicitly routes an agent away from siblings like beneficial_owner_screen or corporate_ownership_tree. It offers a when-not exclusion ('not legal advice or sanctions clearance') but never names alternative tools or the conditions that would select them, so it stops short of full explicitness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lane_location_risk_packARead-onlyIdempotentInspect
Compare origin and destination risk for a logistics lane. Runs site-bound hazard/environmental profiles for both addresses and optionally adds FEMA disaster history for each area. Returns source coverage, point-in-time risk evidence, and an operational review checklist. This is informational public-record synthesis, not an insurance rating or route guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report format. Defaults to markdown. | |
| origin_area | No | Optional origin county/place for FEMA history. | |
| origin_state | No | Optional origin 2-letter state, required with origin_area. | |
| origin_address | Yes | Full US origin street address. | |
| destination_area | No | Optional destination county/place for FEMA history. | |
| destination_state | No | Optional destination 2-letter state, required with destination_area. | |
| destination_address | Yes | Full US destination street address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses what the tool runs, what it returns, and its limitations. The disclaimer that this is informational public-record synthesis and not an insurance rating or route guarantee is valuable behavioral context that annotations cannot provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what the tool does, what it runs/returns, and what it is not. Key comparison intent is front-loaded, and no content is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately describes the return types: source coverage, point-in-time risk evidence, and an operational review checklist. It also mentions the optional FEMA extension and the limitations, making it complete enough for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantic linkage by explaining that the optional area/state parameters feed FEMA disaster history, which helps an agent understand how optional parameters relate to the tool's behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: compare origin and destination risk for a logistics lane. It clearly distinguishes itself from single-location tools like location_risk_report by emphasizing the two-address comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary use case clear: when you need to compare risk along a logistics lane between two addresses. It does not explicitly name alternatives or exclusions, but the two-address framing provides sufficient contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lei_hierarchyARead-onlyIdempotentInspect
Map a company's corporate family tree from the GLEIF relationship register (keyless, CC0 open data): given a company name or LEI, returns its direct parent, ultimate (top-of-tree) parent, and a list of its direct children/subsidiaries with the total subsidiary count. Answers 'who ultimately owns this company?' and 'what does this company own?' — core due-diligence and beneficial-ownership questions. Each node includes the LEI, legal name, and jurisdiction so you can drill further. Relationships GLEIF has no filing for are reported as 'none reported' (not an error).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A company legal name (e.g. 'Apple Inc') or a 20-character LEI code. Names resolve to the top-ranked match. | |
| children_limit | No | Max direct children to list (default 15, max 50). The total count is always reported. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: relationships with no GLEIF filing are reported as 'none reported' rather than errors, and the data source is open and keyless. This helps set expectations for missing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized: it opens with the core action, names the data source, lists outputs, gives canonical questions, describes node contents, and closes with a critical missing-data behavior. Every clause earns its place without redundant restatement of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description sufficiently explains returned data: parent, ultimate parent, direct children, total count, and node fields (LEI, legal name, jurisdiction). It also covers input modes, the limit behavior, and the meaning of missing relationships. Combined with the annotations, the tool is fully callable by an agent without lurking ambiguities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description reinforces that the query can be a name or LEI and notes the total count is always reported, but it does not materially expand on the schema for children_limit. Baseline 3 is appropriate because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Map a company's corporate family tree from the GLEIF relationship register.' It clearly enumerates the outputs (direct parent, ultimate parent, direct children, subsidiary count) and distinguishes itself from simple entity lookups like lei_lookup by focusing on hierarchy relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool: for 'who ultimately owns this company?' and 'what does this company own?' questions, and for due-diligence work. It provides input guidance (company name or LEI) but does not explicitly contrast it with similar sibling tools such as corporate_ownership_tree or beneficial_owner_screen, leaving some alternative-selection inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lei_lookupARead-onlyIdempotentInspect
Resolve a company name to its Legal Entity Identifier (LEI), or look up an LEI code directly, using the GLEIF public register (keyless, CC0 open data). Returns each matching entity's 20-character LEI, exact legal name, operating status (ACTIVE/INACTIVE), jurisdiction (ISO 3166-2), legal-form code, legal address (city/region/country), LEI registration status (ISSUED/LAPSED/RETIRED), and last-update date. The LEI is the global standard join key for entity resolution — use it to disambiguate a company and cross-reference it against sanctions, SEC EDGAR, federal spending, and due-diligence tools. Pass a name (fuzzy match, returns ranked candidates) or a 20-char LEI (exact).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max candidate records for a name search (default 10, max 25). Ignored for an exact LEI. | |
| query | Yes | A company legal name (e.g. 'Apple Inc') or a 20-character LEI code (e.g. 'HWUPKR0MPOU8FGXBT394'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds substantial behavioral context: keyless access to public CC0 data, fuzzy matching with ranked candidates for names, exact matching for LEIs, and the full list of returned fields including status and jurisdiction. This goes well beyond the annotation signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately detailed but well structured: purpose first, then return fields, then use-case context, then input modes. Every sentence earns its place, though the sanctions/EDGAR list is slightly expansive and could be trimmed without losing core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining return values, and it does: it enumerates LEI, legal name, operating status, jurisdiction, legal-form code, address, registration status, and last-update date. It also covers both invocation modes and the data source, making the tool fully understandable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query as a company name or 20-character LEI and limit as max candidates. The description reinforces this with 'fuzzy match, returns ranked candidates' and 'Ignored for an exact LEI', but adds only marginal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: resolve a company name to an LEI or look up an LEI directly. It clearly distinguishes the tool's scope by naming the GLEIF public register and emphasizing the LEI as a global join key, which separates it from generic company-lookup siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete use cases: disambiguating a company and cross-referencing against sanctions, SEC EDGAR, federal spending, and due-diligence tools. It also explains the two valid input modes. It does not explicitly name alternatives or state when not to use this tool, so it stops just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tool_groupsARead-onlyIdempotentInspect
List every tool group (category) available on LiveDataLink with its domain count and tool count. Use this to discover which groups exist, then connect to https://livedatalink.ai/mcp?groups=<comma,separated> (or send the header X-Tool-Groups: <comma,separated>) to load ONLY those groups. Filtering keeps the tool list small so an agent selects tools accurately and uses less context. Free to call, no credits consumed. Optional 'query' filters group names.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional substring to filter group names (case-insensitive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond the annotations: it is 'Free to call, no credits consumed,' and it returns domain counts and tool counts for every group. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then gives a concise usage workflow, the context-efficiency rationale, the cost note, and the optional parameter. Every sentence serves a clear purpose with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description fully covers what the tool returns, how to use the result, when to call it, the cost, and the filtering behavior. Nothing essential is missing for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the 'query' parameter. The description adds the clarifying detail that the query is an 'Optional substring' and, combined with the schema, that filtering is case-insensitive. This is enough for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List every tool group (category) available on LiveDataLink with its domain count and tool count.' It clearly identifies the output and distinguishes this discovery/metadata tool from the many domain-specific sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use the tool: 'Use this to discover which groups exist,' followed by concrete next steps for loading only the desired groups via URL or header. It also explains the benefit of filtering for context efficiency, though it does not explicitly contrast with an alternative discovery tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_tender_fraud_shieldARead-onlyIdempotentInspect
Screen a carrier before accepting or dispatching a load. Resolves the carrier and combines FMCSA authority, insurance, safety, sanctions, court, and federal-award evidence with the supplied tender context. Flags inactive authority, missing liability evidence, sanctions or litigation findings, broker-only records, and mismatches between the carrier's reported location and the tender contact address. Returns CLEAR, REVIEW, or BLOCK with reasons, source coverage, primary links, and a dispatcher verification checklist. This is an analytical fraud-screening aid, not a substitute for direct FMCSA or insurance verification.
| Name | Required | Description | Default |
|---|---|---|---|
| mc | No | MC/MX number. Accepts 123456 or MC-123456. | |
| dot | No | USDOT number (preferred). Accepts 3405079 or USDOT 3405079. | |
| name | No | Carrier legal name when DOT/MC is unavailable. | |
| format | No | Report format. Defaults to markdown. | |
| load_id | No | Optional internal load/tender identifier to echo in the report. | |
| carrier_address | No | Address supplied with the tender or onboarding packet, used for a coarse location consistency check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a read-only, non-destructive, idempotent operation. The description adds substantial behavioral context: carrier resolution, multi-source evidence combination, specific flag categories, a CLEAR/REVIEW/BLOCK verdict, and an explicit caveat that it is an analytical aid, not a substitute for direct verification. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause earns its place: purpose, mechanism, flags, output, and safety caveat are packed into a compact paragraph. It is front-loaded with the primary decision an agent needs to make before calling the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description specifies the return format (CLEAR/REVIEW/BLOCK plus reasons, source coverage, primary links, and a checklist) and identifies input alternatives (mc, dot, name). The optional parameters are covered by the schema, and the described behavior is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the individual parameters are already well documented. The description adds interaction-level meaning by explaining that the supplied tender context and carrier_address feed into the location mismatch check and overall screening decision, which is not apparent from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Screen a carrier') and identifies the exact resource and decision context. It enumerates the evidence sources, flags, and output categories, making the tool's purpose unmistakable and distinct from generic carrier lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool: before accepting or dispatching a load. However, it does not explicitly name sibling alternatives such as carrier_vetting_score or fmcsa_carrier_authority, nor does it provide when-not-to-use guidance, so it stops short of full routing clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_contributionsARead-onlyIdempotentInspect
Search LDA contribution reports (political contributions disclosed by lobbyists/registrants). Filter by year, registrant, or lobbyist name.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Results per page (default 20). | |
| filing_year | No | Filing year, e.g. 2025. | |
| lobbyist_name | No | Lobbyist name, partial match. | |
| registrant_name | No | Registrant (firm) name, partial match. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful domain context (LDA source, contribution reports) but does not disclose pagination behavior, output format, or matching semantics beyond what the schema already states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no redundant filler. It front-loads the core resource and action, then lists the available filters. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with strong annotations and fully documented parameters, the description is adequate but not complete. It does not describe the return value shape, pagination behavior, or how this tool differs from several similarly named lobbying siblings, all of which an agent might need to choose correctly among the available tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including defaults and partial-match behavior. The description only restates the year/registrant/lobbyist filters and adds no extra meaning about page_size or parameter relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search'), a specific resource ('LDA contribution reports'), and clarifies the domain ('political contributions disclosed by lobbyists/registrants'). It is clear on its own, but it does not explicitly differentiate itself from the closely named sibling tools like lobbying_search, lobbying_lobbyists, or lobbying_registrants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this to find political contribution reports and filter by year, registrant, or lobbyist name. However, it provides no explicit when-to-use versus alternatives like lobbying_search or lobbying_detail, and no exclusion criteria or guidance on when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_detailARead-onlyIdempotentInspect
Get the full detail of one lobbying filing by its UUID (from lobbying_search results), including all lobbying activities, issues, covered officials contacted, and the lobbyists involved.
| Name | Required | Description | Default |
|---|---|---|---|
| filing_uuid | Yes | Filing UUID from lobbying_search results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful detail about what the response includes: lobbying activities, issues, covered officials contacted, and lobbyists. It does not describe response structure or error behavior, but the annotations lower the burden and the content list is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the core purpose and includes the source and expected contents. No wasted words; every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description covers the purpose, the input origin, and the expected content categories. It is complete enough for an agent to know when to call it and what it will receive, though it could mention edge cases like invalid UUIDs or missing filings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with filing_uuid already documented as 'Filing UUID from lobbying_search results.' The description mostly restates this, reinforcing that the parameter is the identifier from search results, but it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('one lobbying filing'), and identifies the UUID as the identifier from lobbying_search results. It names the exact contents included, distinguishing it from sibling tools like lobbying_search, lobbying_lobbyists, and lobbying_contributions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly ties usage to lobbying_search results, providing clear context for when this tool should be invoked. It does not explicitly discuss alternatives or when not to use it, but the 'one filing by UUID' scoping makes the appropriate use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_lobbyistsARead-onlyIdempotentInspect
Search individual lobbyists by name (and optionally by their registrant firm). Returns lobbyist records with their associated firm.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination. | |
| page_size | No | Results per page (default 20). | |
| lobbyist_name | No | Lobbyist name, partial match. | |
| registrant_name | No | Optional registrant (firm) name to scope the search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that results include the associated firm, which is useful, but does not disclose pagination behavior or other operational details beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words, with the core purpose front-loaded. Every sentence adds value and the description is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with fully documented parameters, the description is nearly complete. It states the input dimensions and the output contents, though it does not elaborate on pagination defaults or result ordering, which would be useful but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description reinforces the meaning of lobbyist_name and registrant_name but adds little beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and a clear resource ('individual lobbyists'), and specifies the key search dimensions (name, optional registrant firm). This distinguishes it from sibling tools like lobbying_registrants, which target firms rather than individuals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is the tool for finding individual lobbyists by name, optionally scoped by firm. It does not explicitly name alternatives or exclusion criteria, but the focused scope provides sufficient usage context for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_registrantsBRead-onlyIdempotentInspect
Search registered lobbying firms (registrants) by name. Returns registrant profile records.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Results per page (default 20). | |
| registrant_name | No | Registrant (firm) name, partial match. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the tool returns 'registrant profile records,' which is useful since no output schema exists, but it does not disclose additional behaviors such as pagination behavior or field-level output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that names the action, target, search field, and return type with no wasted words. It is appropriately sized for a simple lookup tool and every phrase contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, optional-parameter search tool with strong annotations and full schema coverage, the description is mostly adequate: it identifies the resource, the search field, and the return type. It loses a point because it does not clarify how this tool relates to nearby lobbying tools or describe the structure of the returned profile records, which would be helpful without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both registrant_name and page_size are already documented. The description reinforces the meaning of registrant_name by saying 'by name' but adds nothing about page_size or result control beyond what the schema provides, which keeps this at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Search registered lobbying firms (registrants) by name.' It also indicates the return type ('registrant profile records'), making the core purpose unambiguous. However, it does not explicitly differentiate this tool from closely related siblings like lobbying_search or lobbying_lobbyists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by name' implies a usage context, but the description offers no guidance on when to choose this tool over alternatives, no exclusions, and no mention of related lobbying tools. An agent would have to infer selection criteria from the tool name and sibling list rather than from explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lobbying_searchARead-onlyIdempotentInspect
Search U.S. federal lobbying disclosure filings (Senate LDA). Filter by year, filing type, registrant (lobbying firm), client (who hired them), or general issue code. Returns filings with the client, registrant, period, income/expenses, and lobbying issues. Pair with FEC and Congress tools to follow the money.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination. | |
| page_size | No | Results per page (default 20, max 25). | |
| issue_code | No | General issue area code, e.g. 'ENG' (energy), 'TAX', 'HCR' (health). | |
| client_name | No | Client name (the entity that hired the lobbyist), partial match. | |
| filing_type | No | Filing type code, e.g. 'RR' (registration), 'Q1'-'Q4' (quarterly reports). | |
| filing_year | No | Filing year, e.g. 2025. | |
| registrant_name | No | Lobbying firm / registrant name (partial match). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful behavioral context by naming the Senate LDA source and specifying that results include client, registrant, period, income/expenses, and lobbying issues, going beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and resource, followed by filter options and return contents. The closing sentence about pairing with FEC and Congress tools is useful context, though slightly tangential, so it is not perfectly minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does a good job of telling the agent what results look like, and the schema documents all seven optional parameters. It is not fully complete because it does not mention pagination behavior, response size, or how this relates to the other lobbying_* sibling tools, but it is adequate for a read-only search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented in the schema. The description essentially restates the filter dimensions from the schema without adding new semantic detail such as matching behavior, defaults, or special values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Search') and resource ('U.S. federal lobbying disclosure filings (Senate LDA)'), and it lists the key filters and returned fields, so an agent can understand the tool's function. It does not explicitly differentiate itself from sibling tools like lobbying_detail, lobbying_lobbyists, or lobbying_registrants, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is useful by describing filters and return fields, and it suggests pairing with FEC and Congress tools. However, it does not explicitly state when to use this tool versus the lobbying_* siblings, and it offers no exclusions or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_searchARead-onlyIdempotentInspect
Find local businesses, restaurants, services, and places near any location. Returns name, type, address, phone, website, hours, cuisine, and distance. Use this for 'find restaurants near me', 'coffee shops in downtown Houston', 'gas stations near 60601', 'best pizza in Chicago', 'pharmacies nearby', 'hotels in Austin', 'find a mechanic', 'gyms near me', or any local business or place discovery question. Supports: restaurants, cafes, bars, gas stations, pharmacies, hospitals, doctors, dentists, gyms, hotels, grocery stores, banks, schools, parks, libraries, auto repair, salons, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to find (e.g., 'restaurants', 'coffee', 'gas station') | |
| radius | No | Search radius in miles (default: 1.5) | |
| location | Yes | Where to search (city, zip, or address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful context about the supported categories and default-radius behavior through schema. It does not disclose response pagination, unavailability of certain categories, or cutoff ranges, so it adds some but not rich behavioral context. With annotations covering the core traits, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is focused and front-loaded with the core action, followed by the return fields, then usage examples, then supported categories. Every sentence contributes something useful, with no redundant restatement of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover safety and idempotence, the schema covers all three parameters, and the description covers scope, return fields, examples, and category list. The main gap is lack of explicit mention of result limits or fallback behavior for unknown locations, but for a read-only local discovery tool this is adequate and nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented. The description adds practical value by listing the output fields and many example query strings, but it does not deepen the meaning of the parameters beyond the schema. Baseline 3 is appropriate since the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') plus a clear resource ('local businesses, restaurants, services, and places near any location') and enumerates return fields. It distinguishes itself from the large sibling set by naming the exact query patterns it serves, so an agent can immediately recognize what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives many concrete example queries and explicitly says 'Use this for... or any local business or place discovery question.' It does not name sibling alternatives like recreation_nearby or realestate_search to exclude, but the examples plus 'any local discovery' provide strong practical guidance for when to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
location_risk_reportARead-onlyIdempotentInspect
One-call, site-bound hazard + environmental profile with an explainable 0-100 risk score. Geocodes an address (or takes lat/lon) then fans out to FEMA flood zone, recent FEMA disaster declarations (county), active NWS alerts, USGS earthquakes within 50km, EPA ECHO regulated facilities (by ZIP/state), and parcel records (Maryland statewide / Texas-Harris County only). The score starts at 100 and subtracts itemized deductions (flood SFHA, active alerts, declarations, EPA non-compliance, strong quakes). A failing source is noted, not fatal. Cross-source synthesis; not a substitute for a professional site assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude (use with lon instead of address). | |
| lon | No | Longitude (use with lat instead of address). | |
| state | No | Optional 2-letter state override (helps EPA/parcel/declaration scoping). | |
| address | No | Full US street address to geocode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses meaningful behavioral traits: the scoring mechanism (starts at 100 and subtracts deductions), partial geographic coverage for parcel records (Maryland/Harris County only), and failure tolerance ('A failing source is noted, not fatal'). This is rich, useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but well-organized: headline output, data sources, scoring logic, failure behavior, and caveat. Every clause earns its place, though it is slightly long and could be parsed more easily with sentence breaks or lists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-source tool with no output schema, the description is complete: it covers input alternatives (address vs lat/lon), source coverage, geospatial scope, scoring, partial-failure behavior, and the professional-assessment disclaimer. An agent has enough to invoke it correctly and set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some context by noting geocoding accepts an address or lat/lon, and that state can override EPA/parcel/declaration scoping, but this mostly mirrors the schema descriptions rather than adding substantial new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces a composite site-bound hazard and environmental profile with an explainable 0-100 risk score, and enumerates the exact data sources it fans out to. This distinguishes it from single-source siblings like flood_zone_lookup or earthquake_recent and similar aggregate tools by emphasizing 'one-call' cross-source synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this when you need a consolidated multi-source location risk profile, since it 'fans out' to many datasets. However, it never explicitly says when to choose this tool over environmental_site_risk or lane_location_risk_pack, nor does it state 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.
market_size_estimatorARead-onlyIdempotentInspect
One-call TAM / market-size read for an industry (NAICS) in a US geography. Joins two independent federal sources that both count business activity by NAICS + area so each corroborates the other: US Census County Business Patterns (establishments, employment, annual payroll - needs a Census API key) and BLS QCEW (keyless: private establishment count, total wages, average annual pay, with employment implied from wages / avg pay). Returns the establishment count, employment, and a wage/payroll-based market-size anchor with the per-source evidence. Pass an 'industry' (e.g. 'restaurants', 'software publishers') or an explicit 'naics' code, and an optional 'state' or 'metro' (defaults to national). Market size here is the total annual wages/payroll paid in the industry+area - a concrete lower bound, NOT total revenue/receipts. A source that fails is noted, not fatal. Informational, not a guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| metro | No | Optional 5-digit CBSA/metro code (e.g. '12420' Austin, TX). Census leg only; requires the Census key. | |
| naics | No | Explicit 2 to 6 digit NAICS industry code (e.g. '722' food services, '5112' software publishers). Overrides 'industry'. | |
| state | No | Optional 2-letter state code or 2-digit FIPS (e.g. 'TX', '48'). Omit for a national estimate. | |
| industry | No | Free-text industry to map to a NAICS code (e.g. 'restaurants', 'software publishers', 'construction'). Provide this or 'naics'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld/idempotent annotations, the description discloses that the Census leg requires an API key while the BLS leg is keyless, that sources corroborate each other, and that a failing source is noted rather than fatal. It also clarifies that the returned value is a wage/payroll lower bound, not revenue. This substantially exceeds what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose, data sources, inputs, output semantics, and caveats are each addressed without redundancy. The core value proposition is front-loaded, and the caveats are placed at the end without burying the actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter optional-input tool with no output schema, the description covers inputs, defaults, override behavior, return categories, source-specific requirements, failure handling, and interpretation caveats. An agent has enough information to select the tool, construct valid parameters, and understand what the result means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents all four parameters at 100% coverage, the description adds meaningful semantic context: 'naics' overrides 'industry', state/metro are optional with national default, and metro requires the Census key. This helps an agent correctly construct calls beyond the raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it provides a TAM/market-size read for an industry in a US geography by joining Census CBP and BLS QCEW data. It distinguishes itself by describing the unique output (establishment count, employment, wage/payroll-based anchor, per-source evidence), which separates it from raw-data siblings like census_business or bls_series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use this tool: when a one-call market-size/TAM estimate is needed, and clarifies that it is informational, not a guarantee. It doesn't explicitly name sibling alternatives or state when NOT to use it, but the 'one-call' framing and market-size definition make the intended use unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nfip_flood_claimsARead-onlyIdempotentInspect
National Flood Insurance Program claim history aggregated by zip, county, or state. Useful for insurance brokers and homebuyers assessing prior loss patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Five-digit zip code. | |
| limit | No | Max rows (default 200). | |
| state | No | Two-letter state code. | |
| county | No | FEMA county code. | |
| end_year | No | Latest year of loss. | |
| start_year | No | Earliest year of loss. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, and open-world behavior, lowering the burden on the description. The description adds that results are aggregated by geography rather than individual claims, which is useful context. It does not describe output structure or pagination, keeping this at a moderate score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences: the first states the resource and aggregation dimensions, and the second gives the audience. There is no wasted wording, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter query with no output schema, the description gives purpose and granularity but omits what the returned rows contain, such as claim counts or payout amounts, and whether at least one geographic parameter is required. The schema covers parameter formats, but the overall query contract remains partially implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with meaningful descriptions, so the description needs to add little. It maps zip, county, and state to aggregation levels but adds no meaning to limit, start_year, or end_year beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly identifies the tool as National Flood Insurance Program claim history aggregated by zip, county, or state, which is a specific, recognizable data resource. It lacks an explicit verb but the noun-phrase description is unambiguous. It does not name sibling tools, but the scope is distinct enough among the large sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States a target audience and use case (insurance brokers and homebuyers assessing prior loss patterns), which implies when the tool is relevant. However, it never contrasts with related FEMA/risk siblings like flood_zone_lookup or disaster_declarations, so an agent must infer when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_detailsARead-onlyIdempotentInspect
Full IRS EO BMF record for one organization by EIN, with the coded fields (subsection, foundation status, deductibility, EO status, ruling date) decoded to human-readable labels. Includes address, NTEE code, and the most recent reported asset/income/revenue figures.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | Employer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond that: coded fields are decoded to human-readable labels, and figures are the most recent reported values, which informs how the agent should interpret the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first defines scope and lookup method, the second summarizes contents. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the major returned categories (address, NTEE code, recent financial figures, decoded fields). It does not describe not-found behavior or exact response shape, but for a single-record lookup tool the description is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, EIN, and the schema already documents its format and examples at 100% coverage. The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('Full IRS EO BMF record') and a precise lookup key (EIN), and clarifies it is for one organization. It also lists the decoded coded fields, which distinguishes it from status-only or location/name search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this when you need the full BMF record for a specific EIN, as opposed to a status check or search. It does not explicitly name sibling tools or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_lookup_einARead-onlyIdempotentInspect
Look up a US tax-exempt organization by exact EIN from the IRS Exempt Organizations Business Master File (~1.27M orgs). Returns name, address, IRC subsection, and current EO status. Use nonprofit_details for the fully decoded record.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | Employer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond those: the data source and corpus size (~1.27M orgs), the specific fields returned, and the hint that this returns a less-decoded record than nonprofit_details. Nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the first packs verb, resource, scope, data source, corpus size, and return fields; the second routes to the decoded alternative. Information is front-loaded and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with rich annotations and no output schema, the description covers the data source, the matching scope, returned fields, and the relationship to nonprofit_details. A minor gap is not stating behavior when the EIN is not found or when to prefer nonprofit_status, but these are small against an otherwise complete definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the ein parameter already documents the 9-digit format with or without dash and gives examples. The description's 'exact EIN' adds a mild semantic of exact-match behavior, but the schema carries the format burden. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Look up'), a precise resource (US tax-exempt org by exact EIN from the IRS EOBMF), and names the return fields (name, address, IRC subsection, EO status). The 'exact EIN' qualifier distinguishes it from the nonprofit_search_name and nonprofit_search_location siblings without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'exact EIN' phrasing implies this tool is for precision lookups rather than fuzzy search, and the explicit pointer 'Use nonprofit_details for the fully decoded record' names a concrete alternative. However, it does not explicitly tell an agent to use nonprofit_search_name or nonprofit_search_location when only a name/location is known, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_search_locationARead-onlyIdempotentInspect
Find tax-exempt organizations by location: city, state, and/or 5-digit ZIP. At least one filter is required. Useful for discovering charities, churches, and foundations in an area. Returns up to 100 organizations.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit ZIP code. | |
| city | No | City name (combine with state for best results). | |
| limit | No | Max results to return (default 20, max 100). | |
| state | No | 2-letter US state/territory code, e.g. "TX". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only, idempotent, and non-destructive hints. The description adds useful behavioral detail beyond those hints: a required-filter constraint despite schema-optional parameters, and a hard cap of 100 returned organizations. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action and filter options, and every sentence earns its place: required-filter condition, use case, and result cap. There is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered lookup with strong annotations, the description covers the essential constraints: required filters, location dimensions, purpose, and maximum result count. It is not fully complete because it does not name sibling alternatives or describe the returned organization fields, but neither is critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description only restates the location filter types and the requirement for at least one filter; it does not add new parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Find'), a resource ('tax-exempt organizations'), and a specific dimension ('by location: city, state, and/or 5-digit ZIP'). It is clearly different from siblings like nonprofit_search_name, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the key usage condition ('At least one filter is required') and gives a concrete use case ('discovering charities, churches, and foundations in an area'). It does not reference alternative tools such as nonprofit_search_name or nonprofit_lookup_ein, so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_search_nameARead-onlyIdempotentInspect
Fuzzy-search tax-exempt organizations by name, optionally filtered to a US state. Tolerant of word reordering and minor spelling differences. Returns ranked matches with EIN, location, and IRC subsection. Use the returned EIN with nonprofit_details or nonprofit_lookup_ein.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Organization name or partial name to search for. | |
| limit | No | Max matches to return (default 10, max 50). | |
| state | No | Optional 2-letter US state/territory code to narrow results, e.g. "NY", "TX", "CA". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable behavioral detail beyond annotations: fuzzy matching tolerates word reordering and minor spelling differences, returns ranked results, and includes EIN, location, and IRC subsection. This gives the agent a clear model of what the tool does without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears in the first sentence, followed by matching behavior, return contents, and downstream tool guidance. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with three fully schema-documented parameters and no output schema, the description provides sufficient completeness. It explains matching behavior, result contents, ranking, and how to proceed with the returned EIN, so an agent can invoke it correctly and understand the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full parameter descriptions for name, limit, and state (100% coverage). The description adds only minimal semantic context beyond the schema, such as the fuzzy-search nature and optional state filtering, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fuzzy-search') and resource ('tax-exempt organizations by name'), and distinguishes this tool from sibling tools like nonprofit_lookup_ein and nonprofit_search_location by anchoring it to name-based fuzzy matching. It also mentions optional state filtering, making the tool's purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: when searching by organization name, especially with uncertainty about exact spelling or word order, and optionally narrowing by state. It also tells the agent to use the returned EIN with nonprofit_details or nonprofit_lookup_ein, but it does not explicitly state when not to use this tool in favor of those exact-lookup tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nonprofit_statusARead-onlyIdempotentInspect
Current exempt-organization status for one organization by EIN: whether the IRS recognition is active, revoked, or terminated, plus the decoded status label, contribution deductibility, and the ruling (recognition) date. Tells donors and grantmakers if an org is still in good standing.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | Employer Identification Number (EIN). Accepts 9 digits with or without a dash, e.g. "13-1837418" or "131837418". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds useful operational context by naming the exact status categories (active, revoked, terminated) and derived fields (deductibility, ruling date), so the agent knows what the response means without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry a complete definition: what the tool returns, the exact status semantics, and the intended audience. There is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup with no output schema, the description explains the core return fields well. It does not specify behavior for unknown EINs or explicitly acknowledge the openWorldHint possibility of missing data, but the practical use case is sufficiently covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single EIN parameter completely, including accepted formats with and without dashes. The description adds no new parameter-level semantics beyond reinforcing that the lookup is for one organization.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (look up current exempt-organization status) with a concrete resource (one organization by EIN) and enumerates the returned fields. It is clearly more specific than broad sibling searches, but it does not explicitly differentiate itself from sibling nonprofit detail/lookup tools by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: check an organization's IRS standing before donating or granting money. However, the description never states when to choose this over sibling tools such as nonprofit_details or nonprofit_lookup_ein, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_lookupARead-onlyIdempotentInspect
Look up a single US healthcare provider by their 10-digit NPI (National Provider Identifier). Returns name, type, credential, primary specialty (taxonomy), practice location, and status. Keyless CMS data.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | Yes | 10-digit NPI number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: it is 'Keyless CMS data' and it specifies the output fields returned. It does not cover rate limits or error behavior, but for a simple lookup this is a strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences front-load the action and resource, then list the return fields and the keyless aspect. Every sentence earns its place with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup with no output schema, the description is complete: it states the input requirement, the scope, the returned data, and the authentication context. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the only parameter, 'npi', as a 10-digit NPI number, so parameter semantics are covered. The description reinforces the 10-digit requirement but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up'), a specific resource ('single US healthcare provider'), and a precise identifier ('10-digit NPI'). It also enumerates the returned fields, making the tool's purpose immediately distinguishable from the many search siblings like npi_search_provider or npi_search_specialty.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for looking up one provider when the NPI is already known, rather than searching by name or specialty. However, it does not explicitly name sibling alternatives or state when to use them instead, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_search_organizationARead-onlyIdempotentInspect
Search healthcare organizations (hospitals, clinics, group practices, labs) by name. Requires organization_name; state and city optional.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City to narrow results (optional). | |
| limit | No | Max results (1-50, default 10). | |
| state | No | Two-letter state code to narrow results (optional). | |
| organization_name | Yes | Organization name (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds some scoping context by specifying organization types and name-based search, but it does not disclose additional runtime behaviors such as result format, pagination, or whether matching is exact or partial. The description does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the main action and resource, then immediately states required and optional parameters. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with one required parameter, the combination of description, schema, and annotations is largely sufficient for an agent to call it correctly. It could be strengthened by naming the data source or clarifying result behavior, and there is no output schema, but these are not critical gaps for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for organization_name, city, state, and limit. The description mostly restates what the schema already defines (organization_name required; state and city optional) without adding new semantic details or edge-case guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('healthcare organizations'), and helpful examples ('hospitals, clinics, group practices, labs'). It clearly indicates a name-based lookup for organizations, which implicitly differentiates it from provider-focused siblings like npi_search_provider, but it does not explicitly name or contrast those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the required parameter (organization_name) and the optional filters (state, city), which gives the agent a clear precondition for calling the tool. However, it provides no explicit guidance on when not to use this tool or which sibling tool should be used instead, so the routing guidance is mostly implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_search_providerARead-onlyIdempotentInspect
Search individual US healthcare providers by name. Requires a last_name (first_name, state, city optional). Returns NPI, specialty, location for each match.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City to narrow results (optional). | |
| limit | No | Max results (1-50, default 10). | |
| state | No | Two-letter state code to narrow results (optional). | |
| last_name | Yes | Provider last name (required). | |
| first_name | No | Provider first name (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent read operation. The description adds a return contract ('Returns NPI, specialty, location for each match') and the required-input constraint, both useful beyond the schema. It doesn't detail empty-result behavior, but that is minor given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences convey the action, scope, required input, optional refinements, and return contents with no filler. Critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool, the description covers the search scope, required parameter, and return content; the schema covers limit/city/state formats. It could be more explicit about when to use sibling NPI tools, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all five parameters. The description only restates the required/optional nature already visible in the schema, adding no new parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Search'), a precise resource ('individual US healthcare providers'), and the lookup method ('by name'). This sets it apart from siblings like npi_search_organization and npi_lookup, which handle different resources or lookup styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the exact use case: locate individual providers when you have a last name, with optional narrowing by first name/state/city. It gives clear context but does not explicitly list exclusions or point to alternative tools such as npi_search_organization for organizations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npi_search_specialtyARead-onlyIdempotentInspect
Find healthcare providers by specialty (taxonomy description) in a location. Requires taxonomy (e.g. 'Cardiology', 'Pediatrics', 'Nurse Practitioner'); state and city optional but recommended.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City to narrow results (optional). | |
| limit | No | Max results (1-50, default 10). | |
| state | No | Two-letter state code to narrow results (optional). | |
| taxonomy | Yes | Specialty / taxonomy description, e.g. 'Cardiology'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, openWorld, and non-destructive behavior, so the description does not need to repeat those. It adds the useful hint that state/city narrow the search and are recommended, but it does not disclose behavioral details such as what happens without location filters, pagination behavior, or result limit interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the main action and scope, and contains no filler. Each clause adds a useful decision-relevant detail: what is searched, what is required, and how to narrow results.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with four fully documented parameters and strong annotations, the description is largely sufficient for correct invocation. It provides the required parameter, optional narrowing fields, and examples. It does not describe the return shape, but there is no output schema and the purpose makes the expected result reasonably clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by giving multiple concrete examples of taxonomy values ('Cardiology', 'Pediatrics', 'Nurse Practitioner') and by framing state/city as 'recommended' rather than merely optional, which helps the agent choose effective inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is specific: it names the verb 'Find', the resource 'healthcare providers', and the selection logic 'by specialty (taxonomy description) in a location'. It is clear and maps to the tool name, but it does not explicitly contrast with sibling tools like npi_search_provider or npi_search_organization, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly says taxonomy is required and that state/city are optional but recommended, which gives practical usage context. However, it never mentions when to prefer this tool over the sibling NPI search tools or when not to use it, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npm_packageARead-onlyIdempotentInspect
Look up an npm (Node.js) package: latest version, description, license, repository, last publish date, deprecation status, and last-month download count. Pair with cve_search_by_keyword to check for known vulnerabilities. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | npm package name, e.g. 'express' or '@scope/pkg'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds value by naming the returned fields, noting 'Keyless' access, and advising a companion vulnerability search—context not present in the schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the core action and deliverables, then add a pairing tip and auth note. No filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with rich annotations and no output schema, the description is complete: it enumerates the return fields, specifies that no key is needed, and points to the relevant vulnerability companion. An agent has sufficient information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already has a clear description with examples ('express' or '@scope/pkg'). The tool description does not add parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') and a specific resource ('npm (Node.js) package'), then enumerates the exact data fields returned. This immediately distinguishes it from sibling package/registry tools like pypi_package and cargo_crate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to call this tool—any time an npm package's metadata or download stats are needed—and explicitly recommends pairing with cve_search_by_keyword for vulnerability checking. It does not spell out exclusions such as 'use pypi_package for Python packages,' but the npm scoping makes the boundary obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_alt_fuel_station_detailARead-onlyIdempotentInspect
Detailed info for a single alternative fuel station by station ID. Get the ID from nrel_alt_fuel_stations results.
| Name | Required | Description | Default |
|---|---|---|---|
| station_id | Yes | Station ID from the alt-fuel stations dataset. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the tool returns detail for a single station and requires an ID from nrel_alt_fuel_stations, but it does not describe output structure or any other behavior beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant wording. It front-loads what the tool does and then provides the key prerequisite for obtaining the station_id.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only detail lookup, the description is mostly sufficient: it explains the resource, the parameter source, and the tool's role relative to nrel_alt_fuel_stations. However, 'detailed info' is somewhat vague and does not indicate what fields the result will contain, especially since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds operational meaning by telling the agent to source the station_id from nrel_alt_fuel_stations results, going slightly beyond the schema's generic 'Station ID from the alt-fuel stations dataset' phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns 'detailed info for a single alternative fuel station by station ID.' It also names the related nrel_alt_fuel_stations tool, which clearly distinguishes this detail lookup from the broader station search/list tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear workflow context: 'Get the ID from nrel_alt_fuel_stations results.' This tells an agent when and how to use the tool, but it does not explicitly state when not to use it or list alternative detail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_alt_fuel_stationsARead-onlyIdempotentInspect
Find alternative fuel stations near a location: electric (EV) charging, CNG, LNG, E85, hydrogen, propane, biodiesel. Used by route planning agents, fleet operators, and EV/clean-fuel tech.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude. Use with lon as alternative to location. | |
| lon | No | Longitude. Use with lat as alternative to location. | |
| limit | No | Max stations to return (default 25, max 200). | |
| state | No | Optional 2-letter state code filter. | |
| radius | No | Search radius in miles (default 5, max 500). | |
| status | No | Optional status filter: E (available, default), P (planned), T (temporarily unavailable). | |
| location | No | Address or city/state. Either location OR lat+lon required. | |
| fuel_type | No | Comma-separated fuel types: ELEC (default), CNG, LNG, E85, HY, LPG, BD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the description does not need to restate those. It adds useful scoping language ('near a location') and a fuel-type list, but it does not disclose output format, data source limitations, or behavior around defaults beyond what the schema already specifies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loads the core action with the resource and fuel types. The second sentence about target users adds useful context but is slightly auxiliary, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema and annotations, the description provides enough context for an agent to identify and invoke the tool. It could be more complete by noting the US-centric scope and the explicit requirement to provide either location or lat/lon, but those details are recoverable from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters clearly. The description adds user-friendly fuel-type labels but does not meaningfully expand on parameter semantics such as the location-or-lat/lon requirement, radius defaults, or status values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') with a clear resource ('alternative fuel stations near a location') and enumerates supported fuel types, making the tool's purpose immediate. It also implicitly distinguishes itself from sibling NREL tools like solar or utility-rate lookups and from station-detail tools by focusing on location-based searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context on who would use this tool ('route planning agents, fleet operators, EV/clean-fuel tech') and makes the primary use case clear. However, it does not explicitly say when to choose this tool over related alternatives such as nrel_alt_fuel_station_detail, nor does it mention exclusions or prerequisites like needing a location or lat/lon pair.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_pvwattsARead-onlyIdempotentInspect
Estimate solar PV system production using NREL's PVWatts v8 model. Returns annual and monthly AC energy output (kWh), solar resource (kWh/m²/day), and capacity factor. Used by solar developers, homeowners, and ESG analysts to size and estimate solar arrays.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Use with lon as alternative to address. | |
| lon | No | Longitude in decimal degrees. Use with lat as alternative to address. | |
| tilt | No | Array tilt angle in degrees (default 20). | |
| losses | No | Total system losses percent (default 14). | |
| address | No | Street address, city/state, or place name. Either address OR lat+lon required. | |
| azimuth | No | Array azimuth in degrees (default 180 = south for northern hemisphere). | |
| array_type | No | 0=fixed open rack, 1=fixed roof (default), 2=1-axis tracking, 3=1-axis backtracking, 4=2-axis tracking. | |
| module_type | No | 0=standard (default), 1=premium, 2=thin film. | |
| system_capacity | Yes | System size in kilowatts DC (e.g. 5 for a 5 kW residential system). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable context by naming the model version, specifying the returned metrics and units, and framing the operation as an estimate, which clarifies the computational nature beyond the annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences: purpose/model, outputs with units, and audience/use case. Every sentence contributes distinct value, and the core action is front-loaded. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description covers the essential selection and invocation context: what it does, what it returns, and who it serves. Parameter mechanics are fully documented in the schema, so the description need not repeat them. A minor gap is the absence of any note about location-input requirements, though the schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description does not need to restate parameter meanings. The description does reinforce the relevance of system_capacity through 'size and estimate solar arrays', but it adds no parameter-specific detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific operation: estimating solar PV production using NREL's PVWatts v8 model, and enumerates the outputs (annual/monthly AC energy, solar resource, capacity factor). This distinguishes it from sibling tools like nrel_solar_resource and nrel_utility_rates by naming the model and the full production-estimation scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies target users and a broad use case ('size and estimate solar arrays'), which implies when the tool is appropriate. However, it does not explicitly cite alternative tools or conditions for choosing this tool over siblings such as nrel_solar_resource, leaving some selection ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_solar_resourceARead-onlyIdempotentInspect
Annual and monthly solar resource data (Direct Normal Irradiance, Global Horizontal Irradiance, Latitude-Tilt Irradiance) for a location. Useful for site evaluation before sizing a solar system.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Use with lon as alternative to address. | |
| lon | No | Longitude in decimal degrees. Use with lat as alternative to address. | |
| address | No | Street address, city/state, or place name. Either address OR lat+lon required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only, idempotent, and non-destructive. The description adds useful behavioral detail by specifying the time granularity (annual and monthly) and the three irradiance output types, which goes beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first delivers the resource and data content, and the second adds the intended use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only data lookup, the description covers what is returned, the granularity, and the practical context. It could be more complete by naming units or response shape, but none of the selection-critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with lat, lon, and address each already documented, including the either address OR lat+lon requirement. The description itself adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource: solar resource data for a location, and enumerates the exact irradiance metrics (DNI, GHI, latitude-tilt). It stops short of a 5 because it does not explicitly distinguish itself from the closely related nrel_pvwatts sibling or state a verb like 'retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case: 'site evaluation before sizing a solar system.' This tells an agent when the tool is relevant, but it doesn't explicitly discuss when to prefer nrel_pvwatts or another solar-related sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrel_utility_ratesARead-onlyIdempotentInspect
Average residential, commercial, and industrial electric utility rates (cents per kWh) for a location, plus the utility name. Used for ROI analysis on solar, EV charging, building electrification.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Use with lon as alternative to address. | |
| lon | No | Longitude in decimal degrees. Use with lat as alternative to address. | |
| address | No | Street address, city/state, or place name. Either address OR lat+lon required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful output context: rate units, sector breakdown, and utility name. It does not mention data vintage or geographic limitations, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The first sentence defines the output precisely, and the second gives the intended use cases. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with no output schema, the description communicates the returned data, units, and use cases. It could be more explicit about geographic coverage, but the NREL name and context make the tool reasonably complete for an agent to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents lat, lon, and address including the either address OR lat+lon requirement. The description adds no parameter-level meaning beyond 'for a location,' so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool returns: average residential, commercial, and industrial electric utility rates in cents per kWh, plus the utility name. It identifies the resource and function well, though it does not explicitly distinguish itself from related energy/eia sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by saying it is 'Used for ROI analysis on solar, EV charging, building electrification.' This helps an agent know when to select it, though it provides no exclusions or explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nws_active_alertsARead-onlyIdempotentInspect
Currently-active National Weather Service alerts (tornado, flood, severe thunderstorm, winter, heat, fire) for a point, state, or NWS zone.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| zone | No | NWS zone id, e.g. 'TXZ123'. | |
| state | No | Two-letter state code (e.g. 'TX'). | |
| location | No | Address, zip, or city. Will be geocoded to a point. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that the tool is read-only, idempotent, and non-destructive, so the description does not need to re-state safety behavior. It adds useful context by specifying 'currently-active' and listing alert categories, but it does not disclose details like result limits, geocoding behavior, or alert priority semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one tightly packed sentence with no filler. It front-loads the core purpose and then efficiently lists alert types and input modes, which is exactly the information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with five optional parameters and no output schema, the description gives enough context to understand what the tool returns and how to scope it. It could be slightly more explicit about whether parameters can be combined, but the 'point, state, or NWS zone' phrasing makes the likely options clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 60% schema description coverage, the description partially compensates by mapping query modes to parameters: 'point' implies lat/lon, 'state' maps to the state code, and 'NWS zone' maps to the zone id. The schema already describes zone, state, and location, so the description's added value is mainly clarifying that these are alternative ways to scope the request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a concrete resource ('National Weather Service alerts') and a clear scope ('Currently-active'), then enumerates alert types and the three supported query modes. This makes the tool easy to distinguish from nearby siblings like weather_current, weather_forecast, and disaster_declarations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual guidance by stating that the tool covers active alerts for a point, state, or NWS zone. It does not explicitly name alternatives or state when not to use it, but the active-alert framing strongly implies its niche relative to forecast/current-condition tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ok_wells_searchARead-onlyIdempotentInspect
Search Oklahoma oil & gas wells by county, operator, API number, and/or well type using the Oklahoma Corporation Commission (OCC) RBDMS well database (keyless public record). Unlike a pure map layer, this returns the OPERATOR, well status, well type (OIL/GAS/DRY/etc.), well name, county, and location for each match, plus the total matching count and a by-operator/by-type breakdown. Use it for 'who operates wells in county X', 'how many wells does operator Y have', or an operator's well portfolio. Oklahoma covers the Anadarko Basin / SCOOP / STACK plays. At least one of county, operator, or api is recommended to narrow the search.
| Name | Required | Description | Default |
|---|---|---|---|
| api | No | API well number (digits; non-digits are ignored). | |
| limit | No | Max well records to return (default 25, max 100). The total matching count is always reported. | |
| county | No | Oklahoma county name (e.g. 'Canadian', 'Kingfisher', 'Grady'). Matched case-insensitively. | |
| operator | No | Operator name or fragment (e.g. 'Chesapeake', 'Devon'). Substring, case-insensitive. | |
| well_type | No | Filter by well type: OIL, GAS, DRY, SWD (saltwater disposal), etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, so the bar for additional disclosure is lower. The description usefully adds that this is a keyless public record, names the return payload fields including the total count and breakdowns, and clarifies the basin coverage. It does not discuss rate limits or response size limits beyond the schema's limit parameter, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than the minimum but every sentence carries information: resource, differentiator, return fields, use cases, geography, and filtering guidance. The basin mention (Anadarko/SCOOP/STACK) is slightly tangential to invocation but still helps the agent understand scope. It is efficiently structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values, and it does so thoroughly: operator, status, well type, well name, county, location, total count, and breakdowns. It also covers authentication (keyless), filter recommendations, and geographic scope. Nothing critical is missing for an agent to decide whether and how to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics baseline is 3. The description repeats the filter names and recommends using at least one of them, which is mildly useful, but it does not add meaningful meaning beyond what the schema already documents for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search Oklahoma oil & gas wells', then names the exact filters (county, operator, API, well type) and the data source (OCC RBDMS). It also differentiates itself from a pure map layer by enumerating the returned fields, making its purpose unmistakable even among many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases ('who operates wells in county X', 'how many wells does operator Y have') and recommends at least one of county, operator, or API to narrow results. It implicitly excludes map-layer use cases, but it does not name a specific sibling alternative or state an explicit when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_by_companyARead-onlyIdempotentInspect
Pre-aggregated payment summary grouped by reporting company across all years. Returns total dollars and payment count per manufacturer/GPO. Use this to rank companies by their pharma-influence spend.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of companies (default 20, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior. The description adds useful behavioral context by stating the data is pre-aggregated across all years and specifying the return contents: total dollars and payment count per manufacturer/GPO. This goes beyond what the annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states what the tool returns, the second gives the output structure, and the third gives the intended use case. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the necessary ground: what is aggregated, how it is grouped, what is returned, and when to use it. The schema handles the limit parameter, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the limit parameter is already fully documented. The description does not add parameter-specific semantics, but with full schema coverage a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it returns a pre-aggregated payment summary grouped by reporting company, with total dollars and payment count per manufacturer/GPO. The grouping dimension clearly distinguishes it from siblings like open_payments_by_specialty and open_payments_state_totals. The stated use case of ranking companies by pharma-influence spend adds further clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: to rank companies by pharma-influence spend. It does not mention alternatives or provide when-not-to-use guidance, so it stops short of a 5, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_by_specialtyARead-onlyIdempotentInspect
Payment totals grouped by medical specialty. Reveals which specialties receive the most pharma money: orthopedic surgeons, cardiologists, psychiatrists, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max specialties (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description does not need to re-state safety. It adds semantic context about grouping and ranking by payment amount, but it does not disclose additional behavioral traits such as ordering direction, time period covered, or response shape. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, purposeful sentences. The core action is front-loaded, and the second sentence provides useful illustrative examples rather than filler or schema repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description conveys the output concept and intended use well. Minor gaps remain, such as whether results are sorted descending by total and what time period is covered, but these are not critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, limit, is fully described in the input schema with its default value, so schema coverage is 100%. The description adds no additional parameter-level guidance, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (Open Payments payment totals) and a specific grouping dimension (medical specialty), with concrete examples. It clearly differentiates from sibling tools like open_payments_by_company and open_payments_state_totals by the grouping variable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when an agent needs specialty-level payment totals or wants to compare which medical specialties receive the most pharma money. It does not explicitly name sibling alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_national_summaryARead-onlyIdempotentInspect
National-level Open Payments totals and averages across all years. Shows how much money flows from pharma to doctors nationally, broken down by payment-nature category.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description only needs to add value beyond that. It does so by disclosing what the output contains: national totals and averages, all years, and categorization by payment-nature type. This gives the agent a concrete expectation of the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the most important qualifier ('National-level') and immediately specifies the core value and breakdown. Every word contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only summary tool, the description is complete: it states the level of aggregation, the time coverage, the metric types (totals and averages), and the dimension (payment-nature category). No output schema exists, but the description sufficiently sets expectations for what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there are no parameter details to explain. Per the baseline for zero-parameter tools, this is handled well; the description focuses on the data scope instead of unnecessary parameter commentary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Open Payments national totals and averages), the scope (national-level, across all years), and the breakdown (by payment-nature category). It distinguishes itself from sibling tools like open_payments_by_company and open_payments_state_totals by its explicit national focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the context for use: a national-level overview of Open Payments data across all years. It does not explicitly name alternatives or state when not to use it, but the scope is clear enough for an agent to select it over more granular open_payments siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_ownershipARead-onlyIdempotentInspect
Search Open Payments OWNERSHIP / investment-interest data -- doctors with equity stakes in pharma/device companies. The deepest disclosure category and the strongest conflict-of-interest signal.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds context about the data category and its significance but does not disclose operational behavior such as response shape, pagination, or auto-discovery of the latest year (the latter is covered in the schema instead).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the tool's scope and adds a useful qualitative signal ('strongest conflict-of-interest signal'). There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six optional parameters fully documented in the schema, read-only annotations, and a clear domain statement, an agent has enough to select and invoke the tool correctly. The main gaps are the lack of return-value/output-shape guidance and no explicit routing among the many open_payments_* siblings, but these are partially mitigated by the ownership-specific naming and description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented with meaningful descriptions. The tool description adds no parameter-level detail beyond the schema; it only reframes the domain as ownership/investment-interest, which the schema's 'doctor' and 'company' fields already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Search') and a specific resource ('Open Payments OWNERSHIP / investment-interest data'), and it clarifies the target population: doctors with equity stakes in pharma/device companies. This distinguishes it from the many other open_payments_* siblings by focusing on ownership/investment interest rather than general payments or aggregated statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: when the agent needs ownership/investment-interest data or the strongest conflict-of-interest signal from Open Payments. It does not explicitly name sibling alternatives or exclusion conditions, so it stops short of a 5, but the use case is explicit rather than merely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_researchARead-onlyIdempotentInspect
Search Open Payments RESEARCH payments -- clinical research grants and study funding from pharma/device companies to doctors. Separate dataset from general payments.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the useful context that this dataset is separate from general payments, but it doesn't disclose return shape, pagination, or default behavior beyond what the schema already communicates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact, front-loaded sentence conveys the resource, a brief definition, and the critical dataset distinction. There is no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with six optional, fully documented filters and strong annotations, the description is nearly sufficient. It lacks an explicit statement about return format, but 'Search' plus the record-level filter fields make the output shape inferable, and no output schema exists to bear that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the input schema. The description adds no parameter-level detail, which matches the baseline of 3; it doesn't need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Search Open Payments RESEARCH payments' and immediately defines the resource as clinical research grants and study funding. It also says 'Separate dataset from general payments,' which differentiates it from sibling tools like open_payments_search/open_payments_by_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear selection context: use this when the request concerns research/study payments, not general Open Payments data. It states what makes the dataset distinct, though it doesn't explicitly name an alternative sibling or spell out a when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_searchBRead-onlyIdempotentInspect
Search CMS Open Payments general payments (Sunshine Act) -- pharmaceutical/device company payments to doctors and teaching hospitals. Filter by company, doctor surname, state, specialty, and year. Returns payment amount, type (food/travel/consulting/gift/royalty), drug/device name, and recipient details. 15M+ records per year.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered and the description does not contradict it. The description adds useful context like the 15M+ records per year and the type of data returned, but it does not disclose matching behavior, pagination, sorting, or rate limits. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no filler. It front-loads the core action and resource, then lists filters, return fields, and scale. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description's summary of return fields is valuable. Annotations cover the safety profile. However, in a large sibling set with many open_payments_* tools, the description does not clarify how this general search relates to the aggregate or specialized variants, leaving a meaningful selection gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented in the schema. The description restates the main filters (company, doctor surname, state, specialty, year) and adds a little semantic grouping, but it does not add significant meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (Search), a specific resource (CMS Open Payments general payments under the Sunshine Act), and the domain (pharma/device payments to doctors and teaching hospitals). It also narrows scope to 'general payments,' which helps distinguish it from research/ownership variants, though it does not explicitly name or contrast sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the numerous open_payments_* siblings, such as open_payments_by_company, open_payments_state_totals, or open_payments_research. The filtering language implies a general-purpose record search, but the agent must infer when this is the right choice and when an aggregate or specialty-specific sibling is better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_state_totalsARead-onlyIdempotentInspect
State-level Open Payments totals. Returns payment totals and average per recipient per state. Useful for state-level pharma-influence research.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max states (default 60) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the aggregation semantics (totals and averages per recipient per state), which is useful beyond the annotations. It does not disclose whether the tool returns only the top states by default or what happens when the optional limit is omitted, but the annotations carry the main behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the core function stated first and a practical use case added second. Every sentence contributes something: what it returns and why you would use it. It could arguably add a short caveat about interpretation, but there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter, full schema coverage, and no output schema, the description is complete enough. It explains the aggregation level, the returned metric type, and a realistic use case. It doesn't need to detail return values because there is no output schema and the description covers the essential output semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter 'limit' is 100%, so the schema already documents it as 'Max states (default 60)'. The description does not add further parameter-level detail, but with full schema coverage the baseline of 3 is appropriate; nothing important is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb and resource ('Returns payment totals and average per recipient per state') and states the domain ('State-level Open Payments totals'). It distinguishes itself from siblings like open_payments_national_summary and open_payments_by_company by naming the state-level aggregation. It doesn't explicitly name a sibling, but the scope is clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description signals the tool is for 'state-level pharma-influence research', which implies a use case context. It does not explicitly state when not to use it or which sibling alternative to choose instead (e.g., open_payments_national_summary for national totals, open_payments_by_company for company-level breakdowns). The context is helpful but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payments_topARead-onlyIdempotentInspect
Same filters as open_payments_search but sorted by payment amount descending. Use this to find the LARGEST individual pharma payments by company, state, or specialty.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Program year (auto-discovers latest if omitted, e.g. '2024') | |
| limit | No | Max rows (default 20, max 100) | |
| state | No | Two-letter state code (e.g. 'CA', 'TX') | |
| doctor | No | Doctor last name (case-insensitive) | |
| company | No | Manufacturer/GPO name (partial match), e.g. 'Pfizer', 'Stryker', 'Johnson & Johnson' | |
| specialty | No | Medical specialty (partial), e.g. 'Cardiology', 'Orthopaedic' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond those annotations: ordering by payment amount, filter compatibility with open_payments_search, and a focus on individual records rather than totals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the key distinctions (sorting, filter compatibility, use case) with no filler. The most important information is front-loaded before the use-case sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, optional-parameter query with complete schema coverage, the description is sufficient: it explains what the tool returns (top individual payments), how results are ordered, and how filters relate to a known sibling. It omits only minor details like the default limit, which is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six optional parameters with examples. The description does not add new parameter-level detail; it only points to shared filters, which is fine given the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear resource (Open Payments individual payment records) and a specific behavior: same filters as open_payments_search but sorted by payment amount descending. It also states the intended use case (finding the largest payments), which distinguishes it from the aggregate sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly points to open_payments_search as the filter baseline and gives a use-case trigger: 'Use this to find the LARGEST individual pharma payments.' It does not enumerate when to prefer the aggregate siblings, but the 'individual' phrasing and sort focus provide enough direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_chainARead-onlyIdempotentInspect
Get the options chain for a stock - calls and puts with strike prices, bid/ask spread, volume, open interest, implied volatility, and available expirations. Use this for "show me AAPL options", "what are the puts on Tesla?", "options expiring this Friday", "what's the implied volatility?", or any options trading question.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by option type (default: "both") | |
| symbol | Yes | Stock ticker symbol (e.g., "AAPL") | |
| expiration | No | Expiration date in YYYY-MM-DD format. Defaults to nearest expiration. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds useful output content context and examples but does not disclose behavioral details such as data freshness, pagination, snapshot timing, or whether all expirations are returned at once. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the core action and return contents front-loaded, followed by concise example use cases. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple three-parameter schema, full parameter documentation, and safety annotations, the description is mostly complete: it states the resource, the data fields returned, and example queries. It does not explicitly address how this differs from the options_history_chain sibling, which is the main contextual gap, but the provided information is sufficient for an agent to invoke the tool correctly for a current options chain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented in the input schema. The description reinforces the meaning of type and expiration through examples but does not add substantial new semantic information beyond the schema. Baseline 3 is appropriate because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get the options chain for a stock' and enumerates returned data such as strike prices, bid/ask spread, volume, open interest, implied volatility, and expirations. It is clear but does not explicitly contrast itself with sibling tools like options_history_chain or stock_quote, so it lacks direct sibling differentiation for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit example user intents ('show me AAPL options', 'what are the puts on Tesla?', 'options expiring this Friday', 'what's the implied volatility?'), giving clear context for when to invoke the tool. It does not mention exclusions or alternative tools for historical options chains or other option-related tools, so it stops short of full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_atm_ivARead-onlyIdempotentInspect
Get the historical at-the-money implied volatility time series for a ticker. For each date, returns the strike closest to 50-delta and its IV. Default to call ATM IV but supports puts. Useful for VRP calculations, term structure, regime detection, and as a primary feature in directional/vol forecasting models.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker | |
| call_put | No | Call (default) or Put | |
| expiration | Yes | Expiration date YYYY-MM-DD (pick the same expiration across dates for consistency) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a read-only, idempotent, non-destructive operation. The description adds useful behavioral detail beyond that: the 50-delta strike selection rule, the default call option behavior, and support for puts. It does not deeply describe output formatting or data range, but the annotations lower the burden for safety-related behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: the core function is front-loaded in the first sentence, behavioral details follow, and use cases are listed last. Every sentence adds information without redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data retrieval tool with no output schema, the description covers the key inputs, the selection methodology, the default call/put behavior, and typical use cases. It could quantify historical depth or output format, but an agent has enough to decide when to invoke it and what to expect at a high level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some nuance—notably that call ATM IV is the default and puts are supported—but most parameter meaning is already supplied by the schema, including the expiration consistency guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a specific resource: the historical at-the-money implied volatility time series for a ticker. It further distinguishes itself by explaining that it returns the strike closest to 50-delta and its IV, which separates it from general options history or vol history tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by listing concrete applications: VRP calculations, term structure, regime detection, and vol/directional forecasting. It does not explicitly name alternative sibling tools or exclusion criteria, but the use cases are specific enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_chainARead-onlyIdempotentInspect
Get the full historical options chain for a ticker on a specific date (2019-2024). Returns every strike + expiration available that day with bid, ask, implied volatility, and all five Greeks (delta, gamma, theta, vega, rho). Use this for point-in-time backtesting, vol surface snapshots, or single-day analysis. Data source: DoltHub free options dataset, indexed in LiveDataLink's R2 storage.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. Coverage: 2019-02-09 to 2024-11-11. | |
| ticker | Yes | Stock ticker (uppercase) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds non-obvious context: data provenance ('DoltHub free options dataset, indexed in LiveDataLink's R2 storage'), the 2019-2024 coverage window, and the exact payload fields (bid, ask, implied volatility, all five Greeks). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, return contents, use cases, and data source. The core purpose is front-loaded in the first sentence, and there is no redundant language. Only minor tightening would be possible (e.g., folding the date range once instead of mentioning it in both schema and description).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read-only tool with no output schema, the description compensates well by enumerating return fields (bid, ask, IV, five Greeks). It covers what the tool returns, when to use it, and where the data comes from. Minor gaps remain: no explicit differentiation from the general options_chain tool or mention of response volume/pagination expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: date includes the YYYY-MM-DD format and exact coverage range (2019-02-09 to 2024-11-11), and ticker specifies uppercase. The description's mention of '2019-2024' reinforces the schema's date coverage but adds no new parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Get the full historical options chain for a ticker on a specific date (2019-2024).' The phrase 'Returns every strike + expiration available that day' distinguishes it from narrower siblings like options_history_atm_iv, options_history_contract, and options_history_volhist, which cover only subsets of the chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names three concrete use cases: 'point-in-time backtesting, vol surface snapshots, or single-day analysis.' This gives clear context for when to select this tool, though it stops short of explicitly naming sibling alternatives and stating when NOT to use them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_contractARead-onlyIdempotentInspect
Track a specific options contract (same ticker + strike + expiration) over time. Returns all daily observations of that contract with its evolving bid/ask, IV, and Greeks. Useful for studying single-contract behavior leading up to expiration, gamma squeezes around specific strikes, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| strike | Yes | Strike price (e.g. 450.00) | |
| ticker | Yes | Stock ticker | |
| call_put | Yes | Contract type | |
| expiration | Yes | Expiration date YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context: it returns all daily observations with specific data fields (bid/ask, IV, Greeks) and describes the temporal scope ('over time'). This goes beyond the annotations and clearly communicates the output nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The primary purpose is front-loaded, followed by the return payload and concrete use cases. Every sentence earns its place and there is no unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter tool with no output schema, the description is quite complete. It explains what the tool returns, the fields included, and provides context on why an agent would use it. It doesn't specify output format or date-sorting details, but these are not critical for a read-only historical data tool, especially with no date parameters to configure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a clear description. The description reinforces that ticker, strike, and expiration collectively identify the contract, but it doesn't add substantial new meaning beyond the schema. The baseline of 3 applies because the schema does the heavy lifting and the description only slightly reinforces the parameter grouping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool tracks a specific options contract (same ticker + strike + expiration) over time and returns daily observations with evolving bid/ask, IV, and Greeks. It uses a specific verb 'track' and names the resource. It distinguishes itself from sibling tools like options_chain or options_history_chain by emphasizing single-contract behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'useful for studying single-contract behavior leading up to expiration, gamma squeezes around specific strikes, etc.' This clearly indicates when to use this tool, though it doesn't explicitly name alternatives or state when not to use it. The single-contract focus implicitly differentiates it from chain-level or cross-contract tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_history_volhistARead-onlyIdempotentInspect
Get per-day implied volatility and historical volatility summary for a ticker. Returns iv_current, hv_current, plus year-high/year-low markers for each. Useful for IV rank/percentile signals, vol regime detection, and time-series feature engineering. Much smaller payload than full chain data.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker (uppercase) | |
| end_date | No | Optional YYYY-MM-DD upper bound | |
| start_date | No | Optional YYYY-MM-DD lower bound |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds meaningful behavioral context beyond those annotations by specifying the exact returned fields, the per-day granularity, and the payload-size tradeoff compared to full chain data. This is useful and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: the first states the core operation and outputs, the second gives concrete use cases, and the third explains the payload tradeoff. Every sentence earns its place, and the most identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately communicates what the tool returns and why it is useful. It covers core fields, granularity, and use context. It could be slightly more explicit about how the optional date range affects the returned summary and what 'year-high/year-low markers' mean, but the schema covers parameter bounds and the domain terms are reasonably self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage: ticker is described as 'Stock ticker (uppercase)' and start_date/end_date are described as optional YYYY-MM-DD bounds. The description does not need to repeat these. It adds mild context by framing the result as per-day summary, but it does not materially extend parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('per-day implied volatility and historical volatility summary for a ticker') and names concrete return fields (iv_current, hv_current, year-high/year-low markers). It is clear on its own, and the 'smaller payload than full chain data' note helps separate it from chain-heavy tools, but it does not explicitly name or contrast a sibling tool, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use cases: 'IV rank/percentile signals, vol regime detection, and time-series feature engineering.' It also implies when not to use it by noting the payload is much smaller than full chain data. However, it does not explicitly name alternatives or state exclusion conditions, so the guidance is contextual rather than fully directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
org_funding_profileARead-onlyIdempotentInspect
One-call federal-money + nonprofit profile for an organization: USAspending contracts and grants recipient summaries (total dollars, award counts, top agencies), IRS 990 exempt-organization details (revenue/assets/income, NTEE, subsection, exempt status) by EIN or name+state, and optionally open Grants.gov OPPORTUNITIES (clearly labeled as available funding to apply for, NOT awards received). Sources degrade gracefully. Cross-source synthesis; federal dollars are name-matched and should be verified.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | No | Optional EIN for an exact IRS 990 match. | |
| state | No | Optional 2-letter state to disambiguate a nonprofit name search. | |
| organization | Yes | Organization / company / nonprofit name. | |
| include_opportunities | No | Also list open Grants.gov funding opportunities (available, not awarded). Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses meaningful behavior: sources degrade gracefully, cross-source synthesis is name-matched and should be verified, and opportunities are clearly labeled as not yet received. These data-quality and scope caveats are exactly the context an agent needs before trusting aggregate results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause earns its place: scope, data contents, optional mode, and caveats. It is front-loaded with 'One-call ... profile', making the tool's purpose immediately recognizable despite covering multiple data sources.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining return content, and it does so thoroughly: award totals/counts/top agencies, exempt-organization fields, and the available-funding option are all itemized. The degradation and verification caveats close the main remaining behavioral gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already documents each parameter. The description adds useful semantics beyond that, including EIN as an exact IRS match, state as a name disambiguator, and include_opportunities as opt-in available funding rather than awarded dollars. It stops short of format-level guidance, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compiles a one-call profile combining USAspending federal-money summaries, IRS 990 nonprofit details, and optional Grants.gov opportunities. It is unmistakably an aggregation tool, but it does not name or route to single-source siblings such as nonprofit_details, spending_recipient_summary, or grants_search, so differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'One-call ... profile' plus the enumerated sources makes the use case clear: get both federal spending and nonprofit tax status in one request. It gives an important exclusion by labeling Grants.gov opportunities as available funding, not awards, but it does not state when to prefer a single-source sibling over this aggregate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
package_trackARead-onlyIdempotentInspect
Identify the likely carrier for a package tracking number and return a direct tracking link. Supports common USPS, UPS, FedEx, DHL, and Amazon formats. Live delivery status, location, estimated arrival, and history are not fetched by this tool yet; open the returned carrier link for the current shipment record. Just paste the tracking number - the carrier is detected automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| tracking_number | Yes | Package tracking number from any carrier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already show readOnlyHint=true and idempotentHint=true, and the description adds meaningful behavioral detail: it returns a carrier link rather than live shipment data, and it relies on automatic carrier detection. The stated limitation about not fetching delivery status is particularly valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: it opens with the core function, then adds scope, limitations, and usage guidance in a natural order. Every sentence earns its place without repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with rich annotations, the description fully covers what the tool does, what it returns, and what it intentionally does not provide. Since there is no output schema, the explicit statement that it returns a direct tracking link is essential and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single tracking_number parameter with 100% coverage, so the baseline is 3. The description adds value by explaining that the carrier is detected automatically and listing supported carrier formats, which clarifies what kinds of input are valid beyond the schema's generic phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific purpose: identify the likely carrier for a tracking number and return a direct tracking link. It also scopes the tool to common USPS, UPS, FedEx, DHL, and Amazon formats, making its function unambiguous and distinct from broader package-lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: paste a tracking number and the tool auto-detects the carrier. It also explicitly warns that live delivery status, location, and history are not provided, so an agent knows not to use this tool for real-time shipment updates. It does not name an alternative tool, but no obvious sibling provides the same function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_detailsARead-onlyIdempotentInspect
Get full catalog metadata for a single scholarly work by OpenAlex id (e.g. 'W2741809807') or DOI (e.g. '10.1038/nature12373'). Returns title, authors, venue, year, citation count, open-access status, and a free full-text URL when available. For a bare arXiv id, use paper_get_text with paper_key 'arxiv:' to read indexed text, or paper_search by title for OpenAlex metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | OpenAlex id ('W...') or DOI ('10.x/...'). For arXiv ids, use paper_get_text or paper_search instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly/idempotent/non-destructive behavior. The description adds useful behavioral detail by enumerating the returned fields (title, authors, venue, year, citation count, open-access status, full-text URL when available), including a conditional. Only minor behaviors such as not-found handling are left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences each serve a distinct purpose: core operation, return content, and alternative-tool routing. No redundant or filler text; the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup tool with no output schema, the description covers accepted inputs, return fields, and the one likely misrouting case (bare arXiv IDs). An agent has enough to select and invoke the tool correctly without inspecting related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single id parameter is fully documented in the schema (OpenAlex ID or DOI, arXiv exclusion), and schema coverage is 100%. The description reinforces this with concrete examples and alternative routing, but does not add substantial new parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('full catalog metadata for a single scholarly work'), and accepted identifiers (OpenAlex ID or DOI). It also names alternatives for arXiv IDs, distinguishing paper_details from paper_get_text and paper_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when paper_details is appropriate (given an OpenAlex ID or DOI) and when to switch to paper_get_text or paper_search for bare arXiv IDs. This is clear routing guidance beyond the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_fulltext_searchARead-onlyIdempotentInspect
Search INSIDE the indexed open-access corpus (arXiv + PubMed Central OA full text) for a phrase or keywords and get back the matching passages, each with the paper title, authors, and a snippet around the match. This is the headline feature: agents can find where a finding or method is discussed across open-access papers. Optionally restrict to one paper by paper_key.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum passages to return (default 10, max 50). | |
| query | Yes | Phrase or keywords to find inside the papers, e.g. 'scaled dot-product attention', 'gradient checkpointing'. | |
| paper_key | No | Optional: restrict the search to a single indexed paper by its corpus key, e.g. 'arxiv:2310.12345'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, non-destructive, and open-world. The description adds useful behavioral context beyond that: the corpus composition, that results are passages rather than whole papers, and that the search can be narrowed to a single paper. It does not cover response edge cases, but the annotation coverage lowers the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the core capability and return shape, the second gives the headline use case, and the third notes the optional restriction. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with only 3 parameters, no output schema, and safety fully covered by annotations, the description is complete. It tells the agent what corpus is searched, what the results look like, and how to narrow by paper_key, while the schema covers limit and required query. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters at 100% and already documents query, limit, and paper_key with examples. The description's mention of 'phrase or keywords' and optional paper_key restriction largely restates the schema, adding little new semantic value. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Search INSIDE') and names the exact resource: an indexed open-access corpus of arXiv and PubMed Central OA full text. It also states the output form—matching passages with paper title, authors, and snippet—which clearly differentiates it from sibling tools like paper_search or paper_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains this is the headline feature for finding where a finding or method is discussed across open-access papers, which gives the agent a clear use case. It does not explicitly name alternatives or say when not to use this tool, but the 'search inside full text' framing and optional paper_key restriction imply the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_get_textARead-onlyIdempotentInspect
Return the full text of an indexed open-access paper by its corpus key (e.g. 'arxiv:2310.12345'), paginated by passage. Use from_seq + max_passages to page through it. For works not indexed locally, returns a pointer to find the open-access URL via paper_search / paper_details.
| Name | Required | Description | Default |
|---|---|---|---|
| from_seq | No | Passage index to start from (0-based, default 0). | |
| paper_key | Yes | Corpus key of an indexed paper, e.g. 'arxiv:2310.12345' or 'pmc:PMC1234567'. | |
| max_passages | No | Maximum passages to return per call (default 40, max 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses that results are paginated by passage and that non-indexed works yield a pointer to find the open-access URL elsewhere. This adds meaningful behavioral context, though the exact pointer format is not specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences cover purpose, pagination behavior, and the fallback path without redundancy. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple key-based retrieval tool with strong annotations and full schema coverage, the description is complete. It explains how to page, what happens for non-indexed papers, and where to go for alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explicitly linking from_seq and max_passages to the paging mechanism and by giving a realistic corpus key example, going slightly beyond the schema's individual parameter notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: returning the full text of an indexed open-access paper by corpus key. It clearly distinguishes this retrieval tool from search-oriented siblings by emphasizing key-based lookup and pagination by passage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical usage guidance: use from_seq and max_passages for paging, and explicitly routes the non-indexed case to paper_search / paper_details. It does not directly compare against paper_fulltext_search, leaving some sibling differentiation implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_searchARead-onlyIdempotentInspect
Search ~250M scholarly works (papers, preprints, datasets) live via OpenAlex by keyword across title, abstract, and full text, with optional author, year, and open-access-only filters. Ranked by relevance. Returns each work's OpenAlex id, DOI, title, authors, venue, year, citation count, and a free full-text URL when open access. Use paper_fulltext_search to search inside the locally indexed open-access corpus.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Optional exact publication year, e.g. 2023. | |
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Keywords across title/abstract/fulltext, e.g. 'attention mechanism transformers', 'CRISPR off-target'. | |
| author | No | Optional author-name fragment, e.g. 'Hinton', 'Doudna'. | |
| open_access_only | No | If true, only return open-access works (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the live nature of the query, relevance-based ranking, the fields returned, and the conditional free full-text URL. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with zero filler: the core purpose leads off, followed by filters, return values, and the sibling alternative. Every sentence earns its place and the routing instruction is saved for the natural closing position.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description correctly shoulders the burden of explaining return values, and it does so explicitly (OpenAlex id, DOI, title, authors, venue, year, citation count, full-text URL). Search scope, source, ranking, and filters are all covered. Minor omissions like pagination/rate limits are not material for a read-only search tool whose limit parameter is already documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters fully. The description adds light confirmation by grouping 'optional author, year, and open-access-only filters' and noting the query spans title/abstract/fulltext, but it does not add meaning materially beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search'), a specific resource ('~250M scholarly works (papers, preprints, datasets) live via OpenAlex'), and a precise scope ('by keyword across title, abstract, and full text'). It also explicitly differentiates from the sibling paper_fulltext_search by naming it and describing its different scope, so an agent can distinguish the tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Ends with an explicit routing instruction: 'Use paper_fulltext_search to search inside the locally indexed open-access corpus.' This tells the agent when not to use this tool and points to the alternative. The live-vs-local distinction gives a clear selection condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_statusARead-onlyIdempotentInspect
Report the scholarly store status: the catalog is served live via OpenAlex (~250M works), plus the local D1 indexed-corpus counts (papers with full text indexed, total indexed passages, per-source breakdown, last refresh timestamp).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by clarifying that the catalog is served live via OpenAlex while corpus counts come from local D1, and it mentions the last refresh timestamp. This helps the agent understand data freshness and source boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose and then compactly lists the key data elements. Every phrase contributes meaningful information, and there is no fluff or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool, the description is complete: it names the data sources, the types of counts provided, the per-source breakdown, and the freshness indicator. Since there is no output schema, the description gives enough detail about the expected payload to guide correct use and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there is no parameter burden on the description. The baseline for 0 params is 4, and the description appropriately focuses on what the status report contains rather than any input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Report the scholarly store status.' It then enumerates exactly what the status covers (live OpenAlex catalog, local D1 corpus counts, per-source breakdown, refresh timestamp), which clearly distinguishes it from sibling search/detail tools like paper_search or paper_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose statement implies the right usage context: use this tool when the agent or user needs a status/health overview of the scholarly store, not when searching for specific papers or texts. It does not explicitly name alternatives or exclusion criteria, but the context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parcel_coverageARead-onlyIdempotentInspect
List which states/counties the parcel tools currently cover and how many parcels each holds. Coverage grows by state over time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds value by specifying the exact output content (states/counties and parcel counts) and the evolving nature of coverage, which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary output is stated first, and the dynamic coverage note provides important context without bloating the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless metadata tool with annotations covering safety and openness, this description is complete. It tells the agent what the tool returns and that the result may change over time, which is all an agent needs to decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so the schema is trivially complete. The description appropriately focuses on what the tool returns rather than parameter details, matching the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('states/counties the parcel tools currently cover' with parcel counts), which clearly identifies what the tool does. It is easily distinguished from sibling tools like parcel_search or parcel_details, which operate on individual parcels rather than describing coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for checking current coverage and parcel counts, and the note that coverage grows by state over time signals that this is a dynamic, approximate-status tool. It does not explicitly name alternatives or exclusion conditions, but the context is sufficient for an agent deciding between this and parcel data lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parcel_detailsARead-onlyIdempotentInspect
Get the full record for one parcel by its account id: address, current assessed value (total, land, improvement), land use, zoning, year built, structure square footage, lot size, coordinates, and most recent sale. Valuation and characteristics only, no owner name.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | 2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD. | |
| account_id | Yes | Parcel account id (from parcel_search). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as readOnly and idempotent, so the safety profile is clear. The description adds meaningful behavioral scope by listing exactly what data is included and explicitly excluding owner name. Minor gaps remain, such as not mentioning whether fields can be null or whether recent sales may be absent, but these are not critical given the readOnly annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that front-loads the core action and then lists the returned fields in a compact, scannable way. Every phrase adds value, and the 'no owner name' clarification is a useful boundary statement with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool with no output schema, the description is quite complete: it names the input, the source of the input, the full set of returned characteristics, and the notable exclusion. It could be slightly stronger by mentioning what happens when data is unavailable or by pointing explicitly to parcel_sales_history for more sale detail, but these are not required for basic correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters, including state coverage and the fact that account_id comes from parcel_search. The description reinforces that account_id is the lookup key but adds no additional parameter detail beyond the schema. This meets the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), the resource ('full record for one parcel'), and the key identifier ('account id'), and it enumerates the specific fields returned. It is easy to distinguish from sibling tools like parcel_search and parcel_sales_history in practice, though it does not explicitly name an alternative. The phrase 'Valuation and characteristics only, no owner name' helps set precise expectations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used after obtaining an account_id, and the schema notes the id comes from parcel_search. However, it does not explicitly state when to prefer this over siblings such as parcel_sales_history or parcel_search, nor does it list exclusion criteria beyond 'no owner name.' Usage context is present but mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parcel_sales_historyARead-onlyIdempotentInspect
Get the recorded sale history (price + date, no party names) for one parcel by account id. Useful for valuation, appreciation, and comp analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | 2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD. | |
| account_id | Yes | Parcel account id (from parcel_search). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral context beyond annotations by disclosing what the result contains ('price + date') and what it deliberately omits ('no party names'). This is valuable transparency for an agent deciding whether the tool satisfies a user request.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first front-loads the operation, scope, and output shape; the second adds practical use cases. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-parameter tool with no output schema, the description adequately covers what is returned (price + date, no party names), the input source (account id), and the intended applications. The schema handles parameter coverage details, so nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The main description only restates the 'by account id' usage and does not add parameter-level details beyond what the schema already provides for state coverage and account_id sourcing. No extra semantic value is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clearly defined resource ('recorded sale history') with explicit scope ('for one parcel by account id'). It further specifies the content ('price + date, no party names'), which distinguishes it from parcel details or value-history tools. The use-case clause adds clarity without blurring the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool ('Useful for valuation, appreciation, and comp analysis') and the schema parameter description instructs that account_id comes from parcel_search, implying a precursor step. However, it does not explicitly state when not to use this tool or name alternatives, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parcel_searchARead-onlyIdempotentInspect
Search property parcels by street address and get assessed value, land use, and most recent sale for each match. Coverage: Maryland statewide (all 24 jurisdictions, includes sale prices) and Harris County, TX / Houston (appraised value only, no sale prices since Texas is a non-disclosure state). Returns valuation and characteristics only, not owner names. Use parcel_details for the full record.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 10, max 50). | |
| query | Yes | Street address fragment, e.g. '100 Main St' or 'Charles St'. | |
| state | No | 2-letter state code. Coverage: 'MD' (Maryland statewide) or 'TX' (Harris County / Houston only). Defaults to MD. | |
| county | No | Optional county name to narrow results, e.g. 'Baltimore', 'Montgomery'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal a safe read-only, idempotent operation, so the bar is lower, but the description still adds meaningful behavior: coverage boundaries, the Texas non-disclosure impact on sale prices, the exclusion of owner names, and the fact that results include only valuation and characteristics. This exceeds what the schema or annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action and return fields appear first, followed by coverage caveats and a pointer to the sibling tool. Every sentence earns its place, with no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema search tool, the description covers the important return content, jurisdictional limitations, and the alternative for fuller data. It does not describe pagination behavior or default ordering, but those are partially documented in the limit parameter and are not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds value by framing query as a 'street address fragment' and explaining the MD/TX state coverage and county narrowing behavior. It does not need to repeat the schema's per-parameter descriptions because those are already complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search property parcels by street address'), a clear object (parcels), and the exact fields returned ('assessed value, land use, and most recent sale'). It also distinguishes itself from parcel_details by directing users there for the full record, and it disambiguates from owner-name tools by stating owner names are not returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage context: statewide Maryland coverage with sale prices, Harris County/TX with appraised value only, and no owner names. It explicitly names parcel_details as the alternative for the full record. It does not mention other related siblings like parcel_coverage or parcel_sales_history, so some routing guidance is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_assignee_searchARead-onlyIdempotentInspect
Find patent assignees (companies / organizations) by name fragment. Returns assignee id, organization name, location, and total patents owned. Ranked by patent count.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| organization | Yes | Company or organization name fragment (e.g. 'Apple', 'Genentech'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds useful context beyond annotations: the ordering behavior ('Ranked by patent count') and the returned fields (assignee id, organization name, location, total patents owned). However, it doesn't disclose matching semantics (partial/fuzzy behavior), pagination, or behavior on zero matches. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the action, the return payload, and the ordering. The main verb and resource are front-loaded in the first sentence, and there is zero filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only search with fully documented parameters and safety annotations, the description covers the essential operating contract: what is searched, what is returned, and how results are sorted. Minor gaps: rank direction is only implied (descending by patent count), and exact name-matching behavior isn't specified. Since there is no output schema, listing the returned fields is a meaningful contribution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'organization' (name fragment with examples) and 'limit' (default 25, max 100) are fully documented in the schema. The description's 'by name fragment' merely echoes the schema's own wording and adds no new parameter meaning. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+method: 'Find patent assignees (companies / organizations) by name fragment.' It explicitly scopes the tool to organizations serving as assignees, which distinguishes it from the patent siblings (patent_search, patent_inventor_search, patent_details, patent_recent) without needing to open any of them. An agent can tell this is not a general patent search or inventor search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no named alternatives, and no exclusions. Among 200+ siblings, the only differentiator is the implicit resource type ('patent assignees'), and the description never tells the agent to prefer this over patent_search or patent_inventor_search for related queries. The agent must infer usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_detailsARead-onlyIdempotentInspect
Fetch full details for a single patent by its USPTO patent_id (e.g. '10757852'). Returns title, grant date, type, abstract, assignees, inventors, and citation count.
| Name | Required | Description | Default |
|---|---|---|---|
| patent_id | Yes | USPTO patent id, e.g. '10757852'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds value by enumerating the returned fields, which is especially useful given there is no output schema. It does not discuss error behavior or rate limits, but for a simple read-only lookup this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The first sentence front-loads the action and key parameter; the second efficiently lists the return payload. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool, the description is nearly complete: it states the identifier format, what the tool returns, and the read-only nature via annotations. It does not specify behavior when a patent_id is invalid or not found, but this is a minor gap for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter patent_id is already documented in the schema with the same example ('10757852'). The description reinforces that the parameter is a single USPTO patent identifier but adds no new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch full details') and resource ('single patent by its USPTO patent_id'), explicitly distinguished from sibling search tools. It also lists the concrete return fields (title, grant date, type, abstract, assignees, inventors, citation count), leaving no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the use case: retrieving complete details for one patent when the patent_id is already known. It does not explicitly name alternatives like patent_search for discovery, but the single-patent-by-ID framing provides clear context that this is not a search or listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_inventor_searchARead-onlyIdempotentInspect
Find inventors by last name (and optional first name). Returns inventor id, name, location, and total patent count. Use the inventor name in patent_search to find their patents.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| last_name | Yes | Inventor last name (required). | |
| first_name | No | Optional inventor first name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar for additional behavioral disclosure is lower. The description adds useful return-field information and a follow-up workflow, but does not explain match behavior, result ordering, or what happens when no inventor is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core action is front-loaded, the return fields are listed compactly, and the cross-reference to patent_search is a single useful clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only inventor lookup with three fully documented parameters, the description gives the essential search criteria, return fields, and a downstream usage step. It is slightly incomplete in not addressing the sibling patent_assignee_search or matching semantics, but it is sufficient for correct invocation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents last_name, first_name, and limit. The description adds little beyond what the schema already provides, but it does confirm the optionality of first_name. This fits the baseline-3 expectation for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds inventors by last name and optional first name, identifies the resource, and reports the returned fields. It does not explicitly distinguish itself from the sibling patent_assignee_search, though the inventor-focused wording implicitly separates it from patent_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete workflow: search for an inventor, then use the inventor name in patent_search to find their patents. This gives clear usage context, but it does not mention when to prefer patent_assignee_search or other inventor-related alternatives, so exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_recentARead-onlyIdempotentInspect
List the most recently granted US patents since a start date (defaults to 30 days ago), newest first. Useful for monitoring newly issued patents.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| start_date | No | Grant-date lower bound (YYYY-MM-DD). Defaults to 30 days ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations by disclosing the default start date (30 days ago) and ordering (newest first). The annotations already establish read-only, idempotent, non-destructive behavior, so the extra ordering/default detail is a meaningful addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and every sentence earns its place. The second sentence adds a concrete, actionable use case without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional, fully documented parameters and no output schema, the description is complete. It covers scope, ordering, default behavior, and a distinct use case, making it sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for both parameters (limit and start_date), including defaults and format. The description mostly restates the start date default, so it adds only marginal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a precise resource ('most recently granted US patents'), and key constraints (since a start date, newest first). This clearly distinguishes it from sibling tools like patent_search or patent_details, which focus on querying or individual patent details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Useful for monitoring newly issued patents.' This tells the agent when to select this tool, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patent_searchARead-onlyIdempotentInspect
Search granted US patents by keyword (matched against title and abstract), title, and/or grant date range. Provide at least one of query, title, start_date, end_date. Returns title, grant date, assignee, and inventors.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 25, max 100). | |
| query | No | Keyword(s) matched across patent title and abstract (e.g. 'lithium battery anode'). | |
| title | No | Keyword(s) matched against the patent title only. | |
| end_date | No | Grant-date upper bound (YYYY-MM-DD). | |
| start_date | No | Grant-date lower bound (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive behavior, so the description adds value by specifying matching semantics and the returned fields ('title, grant date, assignee, and inventors'). It does not go into pagination or edge cases, but the read-only disclosure lowers the burden and there is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with a clear order: function and matching scope, invocation constraint, returned fields. Every sentence contributes information and none of it is padded or redundant with the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description covers what results look like and what inputs are required. It could be slightly more complete by pointing to patent_details for full records or explaining default limits, but the limit is already documented in the schema, so the remaining gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds an important constraint that the schema's zero required fields do not convey: at least one of query, title, start_date, or end_date must be supplied. It also clarifies that 'query' matches title and abstract whereas 'title' matches title only, reinforcing schema semantics without repeating them verbatim.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('granted US patents'), and names the search dimensions (keyword in title/abstract, title, grant date range). It is unambiguous on its own, but it does not explicitly differentiate itself from sibling tools such as patent_assignee_search, patent_inventor_search, or patent_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states an explicit invocation condition ('Provide at least one of query, title, start_date, end_date'), which is useful guidance. However, it never tells an agent when to choose this tool over the nearby patent siblings, leaving that to inference from sibling names and parameter differences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prescriber_ties_profileARead-onlyIdempotentInspect
One-call identity + industry-financial-ties transparency profile for a US healthcare prescriber. Joins two keyless federal sources: the NPPES NPI Registry (identity - NPI, specialty, city/state, active status) and CMS Open Payments / Sunshine Act (industry payments disclosed to that prescriber - total dollars, payment count, top paying manufacturers, and associated drugs/products for the most recent program year with data). Provide a last_name (ideally with first_name + state) or an exact 10-digit npi. The name resolver picks the NPPES record that genuinely matches the requested name (never a blind top hit), and payments are pinned to that exact NPI across recent program years. This is a TRANSPARENCY profile drawn from public records, NOT a judgment: industry payments to physicians are lawful and publicly disclosed, and their presence is not evidence of wrongdoing. A source that fails is noted, not fatal. Cross-source synthesis; verify against the primary sources.
| Name | Required | Description | Default |
|---|---|---|---|
| npi | No | Optional exact 10-digit NPI; overrides name search. | |
| year | No | Optional 4-digit CMS program year (e.g. '2023'); defaults to the most recent year with disclosed payments. | |
| state | No | Optional 2-letter state to disambiguate the NPPES match (e.g. 'OH'). | |
| last_name | No | Prescriber last name (e.g. 'Nissen'). Provide this or an npi. | |
| first_name | No | Optional prescriber first name to disambiguate (e.g. 'Steven'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/openWorld annotations: it explains the name-matching behavior, that payments are pinned to the exact NPI, that a failing source is noted and not fatal, and that the profile is not a judgment about wrongdoing. This is exceptional behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but purposeful; nearly every sentence adds operational or interpretive value. Slightly long, but the extra length is justified by the need to explain cross-source synthesis, match quality, and the non-judgmental intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex two-source synthesis tool with no output schema, the description covers inputs, defaults, matching behavior, failure handling, source verification, and interpretational guardrails. There are no significant gaps that would prevent an agent from invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds useful semantic context beyond the schema: the recommended combination of last_name + first_name + state, the role of an exact NPI, and the default year behavior. It reinforces disambiguation logic and resolver intent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as a one-call transparency profile for US healthcare prescribers, combining NPPES identity data with CMS Open Payments financial-ties data. It names specific data sources, fields, and the combined output, making it distinct from sibling tools like npi_lookup or open_payments_by_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete input guidance: provide last_name ideally with first_name and state, or an exact 10-digit NPI, and explains how the name resolver behaves. It implies the use case — a synthesized transparency profile — but does not explicitly name sibling alternatives or state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_to_rent_ratioARead-onlyIdempotentInspect
Compute the buy-vs-rent price-to-rent ratio for a US metro or state: Zillow home value (ZHVI) divided by annualized rent (ZORI x 12). Returns the ratio plus a rule-of-thumb signal (below ~15 favors buying, above ~20 favors renting). Derived synthesis over the real-estate market store. Rule-of-thumb only, not financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name/id (e.g. 'Austin, TX', 'California', or a Zillow region id). | |
| region_type | No | Optional region type filter: 'metro' or 'state'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent, and non-destructive behavior. The description adds valuable context beyond that: it is a derived synthesis, returns a ratio plus a signal, includes interpretive thresholds, and explicitly disclaims financial advice. This gives the agent a good sense of what the tool computes and how to treat its output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary purpose. It efficiently packs formula, scope, return content, interpretive signal, data derivation, and a caveat into a few sentences without redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately explains what the tool returns (ratio plus signal) and how to interpret it. Parameters are fully documented in the schema, and the description covers domain, formula, caveat, and derived nature. No critical information for calling the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the burden on the description is low. The description adds a few examples of valid region values and the region_type filter concept, but these are already present in the schema. The extra context is helpful but not substantial beyond the structured parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Compute') and resource ('buy-vs-rent price-to-rent ratio for a US metro or state'), includes the exact formula, and describes the return content. It is distinct from sibling real-estate tools like realestate_home_values or realestate_rents by defining a derived synthesis rather than raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when you need a buy-vs-rent comparison, including the rule-of-thumb thresholds for interpretation. It does not explicitly name sibling alternatives or exclusion conditions, but the formula and 'derived synthesis' wording make the intended use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_liability_screenARead-onlyIdempotentInspect
One-call product-safety + liability read for a MANUFACTURER or brand. Joins three public-record legs: product recalls (CPSC consumer products + openFDA drug/device/food enforcement, keyed by manufacturer), federal-court litigation (CourtListener dockets whose caption actually names the brand), and CFPB consumer-complaint volume. Returns a rolled-up read (CLEAN / WATCH / ELEVATED LIABILITY SIGNALS) with recall count and severity (FDA Class I / death-related = high), litigation hits (total + last-3-years), and complaint volume, plus an itemized interpretation. A leg that fails is noted, not fatal. NHTSA vehicle recalls need a specific year+make+model so are out of scope here (use recall_screen for a vehicle). Cross-source synthesis; informational public-record synthesis, NOT legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Optional lower-bound date (YYYY-MM-DD) for FDA recalls. | |
| state | No | Optional 2-letter state to scope the CFPB complaint leg (e.g. 'CA'). | |
| company | No | Alias for manufacturer; either may be supplied. | |
| manufacturer | Yes | Manufacturer or brand name to screen (e.g. 'Peloton', 'Fisher-Price'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with annotations already declaring readOnlyHint and non-destructive behavior, the description adds substantial operational detail: it returns a CLEAN/WATCH/ELEVATED LIABILITY SIGNALS rollup with specific metrics, treats a failed leg as non-fatal, ranks FDA Class I/death-related recalls as high severity, and clarifies it is informational public-record synthesis, not legal advice. This goes well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core purpose, then systematically covers inputs, outputs, failure behavior, exclusions, and caveats. It is longer than necessary for a simple tool, but the complexity of a three-source composite screen justifies most of the length. Minor redundancy exists in the closing 'Cross-source synthesis; informational public-record synthesis' phrasing, but overall each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's multi-source complexity and the absence of an output schema, the description is remarkably complete: it names every input leg, the returned rollup levels, the specific metrics included, how severity is assessed, how partial failures are handled, and the key out-of-scope case with an alternative tool. An agent has enough context to invoke this tool correctly and interpret its response at a high level without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters, but the description adds meaningful context beyond that: it explains that the manufacturer is the keying dimension across all three legs and provides concrete examples (Peloton, Fisher-Price). It also clarifies that 'since' bounds the FDA recall leg and 'state' scopes the CFPB complaint leg, which aligns with and reinforces the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool as a one-call product-safety and liability read for a manufacturer or brand, and it enumerates the three data legs joined: CPSC/openFDA recalls, CourtListener litigation, and CFPB complaints. It also distinguishes itself from vehicle-specific recall tools by explicitly excluding NHTSA vehicles and naming recall_screen as the alternative. The verb 'read' plus the resource scope makes 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context: for a manufacturer or brand needing a cross-source public-record synthesis. It also provides a clear when-not-to-use rule: NHTSA vehicle recalls require a specific year+make+model and should go to recall_screen instead. This directly helps an agent route between this composite tool and its more specialized siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_lookupARead-onlyIdempotentInspect
Look up real estate property data by street address or account number. Returns assessed value, market value, land value, improvement value, year built, square footage, lot size, acreage, exemptions (homestead, over 65, disabled veteran), and legal description. Use this for questions like "how much is this property worth?", "what's the tax value of this address?", "what are the property details?", or any real estate lookup. Owner names, heirs, deed opinions, and title conclusions are not returned. Coverage note: currently demo dataset for Montgomery County, TX (sample properties only). Broader live county coverage is not enabled by default and must be confirmed before purchase. Email support@livedatalink.ai to discuss a source-verified coverage requirement.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Street address or appraisal district account number | |
| county | No | County name (default: montgomery) | montgomery |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds important behavioral context beyond annotations: it discloses that the dataset is a demo covering only Montgomery County, TX, that sample properties only are included, and that broader county coverage must be confirmed before purchase. This is valuable, non-obvious information that shapes agent expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence contributes: the core lookup purpose, returned fields, example questions, exclusions, and the demo coverage limitation. It is front-loaded with the main purpose and avoids vague filler, though the support email sentence is slightly tangential to agent invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately enumerates the returned fields and clearly states what is not returned, covering agent expectations well. It also communicates the coverage limitation and required confirmation for broader use. Missing details like response format or error behavior are minor gaps for a simple read-only lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters, so the description does not need to add much here. It does restate that queries can be street addresses or account numbers, but that is already in the schema, and no additional syntax, format, or county behavior details are provided beyond the schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up real estate property data by street address or account number and lists the exact fields returned, which makes the purpose immediately understandable. It does not explicitly name sibling tools like property_search_owner or property_value_history to draw a contrast, so it falls short of a 5, but the scope is specific enough to distinguish the primary use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit example questions and says to use the tool for real estate lookups, which provides clear context on when to invoke it. It also notes that owner names, heirs, deed opinions, and title conclusions are not returned, which is a useful exclusion, but it does not name alternative tools that should be used for those needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_search_areaARead-onlyIdempotentInspect
Search for real estate properties in a geographic area. Filter by zip code, subdivision, neighborhood, or street name. Use this for questions like "what homes are in this zip code?", "show me properties in this neighborhood", "find houses on Main Street", "what's the average home value in this area?", or any area-based property search. Returns a list of matching records with addresses, values, and property types; owner names are not returned. Coverage note: the current Montgomery County, TX connector returns demo/sample records only.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit ZIP code to search within | |
| county | No | County name (default: montgomery) | montgomery |
| street | No | Street name to search (e.g., 'Main St') | |
| subdivision | No | Subdivision or neighborhood name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond those hints: it discloses that owner names are omitted from results, that the output is a list of addresses/values/property types, and that the current connector only returns demo/sample records. This is valuable and goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then filters, then usage examples, then return contents and a data caveat. It is somewhat long with four example questions, but each sentence adds useful routing or expectation-setting information without significant waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, four-optional-parameter search tool with no output schema, the description is complete: it states what is returned, what is not returned, and the critical caveat that current results are demo/sample records. An agent can select and call this tool with accurate expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters. The description mentions zip, subdivision, neighborhood, and street, but adds little beyond what the schema already provides. It reinforces intent and example phrasings but does not materially deepen parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search for real estate properties in a geographic area.' It also distinguishes itself from owner-based searches by explicitly noting that owner names are not returned, and it frames itself as the area-based property search tool among many real-estate siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear, explicit use cases: 'Use this for questions like...' with concrete examples for zip, neighborhood, street, and average value queries. It does not explicitly name an alternative tool or state when not to use it, but the examples provide sufficient context for an agent to route area-based questions here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_search_ownerARead-onlyIdempotentInspect
Filter the bounded Montgomery County, TX demo property records by a supplied owner-name query. Partial matching is supported, but owner names are not returned. Matching results include addresses, values, property types, and account numbers for the sample records. This is not an owner-verification or people-finder service. Coverage note: the current Montgomery County, TX connector returns demo/sample records only.
| Name | Required | Description | Default |
|---|---|---|---|
| county | No | County name (default: montgomery) | montgomery |
| owner_name | Yes | Full or partial owner name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive, but the description adds substantial behavioral context: partial matching is supported, owner names are not returned, and the data source is demo/sample only. This prevents unrealistic expectations and gives an agent a much clearer picture of the call's outcome. No contradictions with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary action and input. Each subsequent sentence adds distinct value: output fields, non-goals, and coverage limitations. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with full schema coverage and strong annotations, the description covers everything needed for correct invocation: the query target, matching behavior, returned fields, and the demo-data caveat. There is no output schema, so the explicit list of returned fields is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents owner_name and county adequately. The description reinforces that partial matching is supported, but this largely mirrors the schema's 'Full or partial owner name' phrasing. With the schema doing the heavy lifting, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Filter the bounded Montgomery County, TX demo property records by a supplied owner-name query.' It also clarifies what the tool is not ('not an owner-verification or people-finder service'), which helps an agent distinguish it from lookup tools. The output fields are enumerated, leaving little ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use context: use it when searching the Montgomery County demo property set by owner name. It explicitly warns against using it for owner verification or people finding, and it discloses the demo-only data limitation. However, it does not name specific sibling tools as alternatives, which would have made routing fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_value_historyARead-onlyIdempotentInspect
Get property value history and tax assessment trends over multiple years. Shows year-by-year market value, land value, improvement value, and percentage change. Use this for questions like "how has this property's value changed?", "what's the appreciation rate?", "show me the tax assessment history", "has this home gone up in value?", or any property valuation trend question. Requires account number (use property_lookup first to find it). Coverage note: the current Montgomery County, TX connector returns demo/sample records only.
| Name | Required | Description | Default |
|---|---|---|---|
| county | No | County name (default: montgomery) | montgomery |
| account_number | Yes | County appraisal district account number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description adds the critical caveat that the current Montgomery County, TX connector returns demo/sample records only. It also discloses the exact value components returned, giving the agent behavioral expectations beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, followed by concrete usage examples, a prerequisite, and an important data caveat. Every sentence contributes actionable information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only tool with full schema coverage and safety annotations, the description is complete. It covers what data is returned, when to use it, the prerequisite lookup step, and the demo-data limitation, leaving no critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful context by explaining that account_number comes from property_lookup and that the county parameter currently maps to demo/sample data for Montgomery County. This procedural guidance goes beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get property value history and tax assessment trends over multiple years.' It enumerates the exact data shown (market value, land value, improvement value, percentage change) and explicitly ties it to valuation trend questions, distinguishing it from lookup tools like property_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit example questions and a clear prerequisite: 'Requires account number (use property_lookup first to find it).' This tells an agent when and how to invoke the tool, though it does not explicitly state alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pypi_packageARead-onlyIdempotentInspect
Look up a Python (PyPI) package: latest version, summary, license, author, homepage, and required Python version. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | PyPI package name, e.g. 'requests'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description adds value by specifying the output fields (latest version, summary, license, author, homepage, Python version) and the Keyless authentication requirement, which are useful beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact, front-loaded sentence states the tool's purpose, lists the key returned fields, and ends with the essential auth note. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple single-parameter lookup with no output schema, and the description adequately conveys both the input concept and the expected return fields. Combined with annotations covering the read-only, idempotent, non-destructive profile, nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single 'name' parameter already documented as 'PyPI package name, e.g. 'requests'." The description adds no additional parameter meaning beyond reinforcing that it is a Python package lookup, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('look up') and resource ('Python (PyPI) package'), and enumerates the exact fields returned. The PyPI naming clearly distinguishes it from sibling tools like npm_package and cargo_crate without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for looking up Python package metadata from PyPI, and the 'Keyless' note clarifies there is no auth setup required. It does not explicitly name alternatives or state when not to use it, so it misses the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_domainARead-onlyIdempotentInspect
Registration record for a domain via RDAP (the modern WHOIS): registrar, creation/update/expiration dates, status flags, nameservers, and DNSSEC. Useful for due diligence and OSINT on a company's web presence. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. 'example.com'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world, and non-destructive behavior. The description adds 'Keyless' (no authentication required) and lists the record fields returned, which helps the agent set expectations beyond the annotation booleans.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The key information is front-loaded, the field list is compact, and the 'Keyless' note earns its place as a practical usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with rich annotations and no output schema, the description is complete: it names the input type, enumerates the expected output contents, gives a use case, and notes authentication. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'domain' is already described clearly in the schema. The description does not add substantial parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (domain) and the exact kind of data returned via RDAP, with a concrete field list. The domain focus clearly distinguishes it from sibling rdap_ip, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear context of use: 'due diligence and OSINT on a company's web presence.' It does not explicitly name alternatives or state when not to use it, but the domain/RDAP framing makes the primary use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rdap_ipARead-onlyIdempotentInspect
Ownership record for an IP address or block via RDAP: the network name, owning organization, ASN, CIDR range, and country. Pairs with ip_reputation and entity lookups. Keyless.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 or IPv6 address, e.g. '8.8.8.8'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, non-destructive, idempotent behavior, so the description's main added value is the 'Keyless' note, which is useful auth context. It also explains what data the lookup surfaces, adding meaningful behavioral context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The main purpose is front-loaded, followed by useful output fields, related tools, and auth requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter read-only lookup with no output schema, the description adequately covers what the tool returns, how it relates to neighboring tools, and that no key is required. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the single 'ip' parameter as an IPv4 or IPv6 address with an example. The description adds the phrase 'or block,' which provides some extra nuance, but does not clarify accepted block formats or otherwise significantly enrich parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns an RDAP ownership record for an IP address or block, and enumerates the specific fields returned (network name, owner, ASN, CIDR range, country). It differentiates from sibling rdap_domain by targeting IPs rather than domains, and from ip_reputation by focusing on ownership rather than reputation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context by saying it 'pairs with ip_reputation and entity lookups,' implying complementary use. However, it does not explicitly state when to use this tool versus alternatives, nor does it give exclusions or conditions that would steer an agent toward a different tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_home_valuesARead-onlyIdempotentInspect
Get the typical home value for a metro or state (Zillow Home Value Index): the latest value plus 1-year and 5-year-ago values and percent change. Pass a region name or id.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive profile. The description adds useful output and aggregation context but does not disclose caveats such as data vintage/revisions or how ambiguous region names are resolved, which would be more valuable in the absence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence packs in the data source, scope, output fields, and invocation hint with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with rich annotations, the description covers what will be returned and what input to provide. It could be slightly stronger with an explicit 'not for individual addresses' exclusion or output-shape note, but nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the region parameter already carries descriptive examples and the id fallback. The description's 'Pass a region name or id' reinforces but does not add meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get ... typical home value ... Zillow Home Value Index') plus the exact fields returned (latest, 1-year and 5-year-ago values, percent change). This clearly distinguishes it from sibling real-estate tools like realestate_rents or realestate_trend by data source and aggregation scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly establishes the use case: aggregate home values for a metro or state, not property-level or rental data. It tells the caller to pass a region name or id, but does not explicitly name sibling alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_market_screenARead-onlyIdempotentInspect
Get a read-only market screen for a metro or state: latest Zillow typical home value (ZHVI) and asking rent (ZORI), with 1-year and 5-year changes where available. Returns market context only, not a parcel record, comparable sale, owner/title result, appraisal, score, or investment decision.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces and adds context: it returns only market context, and historical changes are included only 'where available.' No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first delivers the operation, scope, and data payload; the second delivers a compact exclusion list that prevents misuse. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with safety covered by annotations, the description explains the input scope, the exact returned metrics, the availability caveat, and what type of answer this is not. That is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the sole parameter completely, including allowed forms ('Austin, TX', 'Houston', 'Texas') and Zillow region id. The description's 'metro or state' phrasing adds no semantic value beyond the schema, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get a read-only market screen for a metro or state,' then names the exact metrics returned (ZHVI, ZORI, 1/5-year changes). The exclusion list ('not a parcel record, comparable sale, owner/title result, appraisal, score, or investment decision') clearly separates it from the many property/real-estate siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the appropriate scope (metro/state market context) and gives explicit when-not guidance by listing what the tool does not return. It does not name the specific sibling tools to use for parcel, comparable, or appraisal needs, which would make the routing guidance fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_rentsARead-onlyIdempotentInspect
Get the typical asking rent for a metro or state (Zillow Observed Rent Index): the latest value plus 1-year and 5-year-ago values and percent change. Pass a region name or id.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive. The description adds useful transparency by specifying exactly what the response contains: the latest value, 1-year and 5-year-ago values, and percent change. This is valuable because there is no output schema to convey that information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence with no filler. It front-loads the core operation, states the geographic scope and data source, enumerates the returned values, and ends with the input instruction. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool with no output schema, the description is largely complete: it defines the input, geographic scope, metric, and response contents. Minor absences like currency units or data freshness are not critical given the tool's simplicity and strong annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, region, and schema description coverage is 100%. The description repeats that a region name or id can be passed, but adds no meaning beyond the schema, which already provides concrete examples like 'Austin, TX' and 'Texas.' Baseline 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the typical asking rent for a metro or state.' It names the underlying Zillow Observed Rent Index and the exact time-frame values returned, which clearly distinguishes it from sibling tools like realestate_home_values or realestate_trend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for use—rent data for metros/states—and instructs the caller to 'Pass a region name or id.' However, it does not explicitly contrast with alternative real-estate tools or state when not to use it, so the routing guidance is mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_searchARead-onlyIdempotentInspect
Find real-estate markets (metro areas or states) by name and get each one's latest typical home value (Zillow Home Value Index). Use this to discover the region name/id before calling realestate_home_values, realestate_rents, or realestate_trend.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional filter: 'metro' or 'state'. | |
| limit | No | Max rows (default 10, max 50). | |
| query | Yes | Name fragment, e.g. 'Austin', 'Bay Area', 'Texas'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only/idempotent/non-destructive behavior. The description adds that the tool returns ZHVI values and serves as a name resolver, but it does not disclose output shape, matching behavior, or search edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core capability is stated first and the downstream relationship is given in one clear sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool it states what it returns, how querying works, and where it fits in the real-estate workflow. Without an output schema, a bit more detail on the response fields could help, but the behavioral guidance is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions including examples and defaults, so the description need not add much. It reinforces that query is a name fragment and type filters to metro/state but does not add new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific action (find real-estate markets by name), defines the output (latest typical home value via ZHVI), and names sibling tools it feeds, so an agent can distinguish it from realestate_trend, realestate_rents, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use this before realestate_home_values, realestate_rents, or realestate_trend to discover the region name/id. It lacks an explicit when-not-to-use statement or mention of alternatives like realestate_market_screen, but the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_statusARead-onlyIdempotentInspect
Report real-estate store coverage: number of regions, total monthly data points, the latest month available, and last refresh. Data is Zillow Research (ZHVI + ZORI), metro and state level.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so no safety contradiction exists. The description adds useful context about the underlying dataset (Zillow Research ZHVI + ZORI, metro/state level) and the presence of a refresh timestamp, but it does not discuss behavior such as staleness interpretation, update frequency, or any operational caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first front-loads the purpose and the exact metrics returned, and the second scopes the dataset and geographic granularity. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless status tool with no output schema, the description is complete: it names all reported metrics, the data source, and the geographic levels. An agent can decide whether this tool covers its need and can interpret the response without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and schema description coverage is effectively 100%, so there are no parameter meanings the description must supply. Baseline for a zero-parameter tool is 4; the description staying silent on parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the verb 'Report' and a specific resource ('real-estate store coverage'), then enumerates four concrete metrics. This unambiguously distinguishes it from sibling data-query tools such as realestate_home_values, realestate_rents, and realestate_trend: they deliver values, while this one reports dataset coverage and freshness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for checking data-store coverage, total data points, latest month, and refresh status rather than querying actual property values. However, it never explicitly states when to prefer this over the realestate_* siblings or mentions any exclusions, so the agent must infer the use case from the status-oriented phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_trendARead-onlyIdempotentInspect
Get the monthly time series of home values (ZHVI) or rents (ZORI) for a metro or state, to chart or analyze the trend.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | No | 'home_value' (ZHVI, default) or 'rent' (ZORI). | |
| months | No | How many recent months to return (default 24, max 360). | |
| region | Yes | Metro or state name (e.g. 'Austin, TX', 'Houston', 'Texas') or a Zillow region id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds meaningful behavior beyond annotations by disclosing that the tool returns monthly time-series data, which is the key behavioral trait an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states what the tool returns and for what purpose. It contains no filler or redundant information and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent data-retrieval tool with simple parameters, the description covers the essential return shape (monthly time series) and the scope (metro or state). It does not detail the exact output structure, but without an output schema the description still gives enough context for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents metric, months, and region. The description adds domain context by naming ZHVI and ZORI, but this largely repeats what the schema already states, so the added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource: monthly time series of home values (ZHVI) or rents (ZORI) for a metro or state. This distinguishes it from broader tools like realestate_search or realestate_market_screen, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to chart or analyze the trend' implies the tool is for trend analysis over time, which gives some usage context. However, it does not explicitly state when to use this tool versus alternatives like realestate_home_values, realestate_rents, or realestate_status, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_screenARead-onlyIdempotentInspect
One-call product-safety recall sweep across CPSC (consumer products), openFDA (drug/device/food enforcement), and NHTSA (vehicles). Provide a product/keyword/manufacturer query and/or a full vehicle (year+make+model). Results are normalized, deduped within and across sources, severity-rolled (FDA Class I or death-related = high), and summarized with a by-classification breakdown. A source that fails is noted, not fatal. Cross-source synthesis. Verify against the official sources before acting.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Product, keyword, or manufacturer to screen (e.g. 'infant formula', 'Acme Corp'). | |
| since | No | Optional lower-bound date (YYYY-MM-DD) for FDA recalls. | |
| domains | No | Optional subset of sources to check; default checks all applicable. | |
| vehicle_make | No | Vehicle make (e.g. 'Toyota'). | |
| vehicle_year | No | Vehicle model year (required with make+model for NHTSA). | |
| vehicle_model | No | Vehicle model (e.g. 'Camry'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description reveals meaningful behavior: results are normalized and deduped within and across sources, severity-rolled with FDA Class I or death-related cases marked high, summarized by classification, and source failures are non-fatal. This gives an agent useful expectations about processing and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action, then covers input combinations, output processing, failure behavior, and verification caveat in a compact set of sentences. There is no wasted or misleading prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-source read-only tool with no output schema, the description covers what inputs are accepted and what the response will summarize, including deduplication, severity roll-up, classification breakdown, and partial source failure handling. An agent has enough context to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description restates the query/vehicle combination at a higher level but does not materially add detail beyond the schema, which supports the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource combination: a one-call product-safety recall sweep across CPSC, openFDA, and NHTSA. It clearly distinguishes itself from sibling single-source recall tools such as cpsc_recall_search and fda_food_recalls by emphasizing the multi-source, normalized sweep.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: use when a cross-source recall search is needed, supplying either a product/keyword/manufacturer query and/or a full vehicle identity. It stops short of explicitly naming alternatives or saying when to prefer a source-specific sibling, so it is clear but not fully explicit about exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_facility_detailARead-onlyIdempotentInspect
Full record for a single federal recreation facility by its RIDB FacilityID: contact, GPS, reservation URL, accessibility, agency.
| Name | Required | Description | Default |
|---|---|---|---|
| facility_id | Yes | RIDB FacilityID, e.g. '234064'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful context about the data source (RIDB) and the fields included, but it does not disclose behaviors such as error handling for invalid FacilityIDs, response size, or pagination. With the annotations covering the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that leads with the core purpose, then provides a compact list of return categories. Every word contributes value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-ID lookup with comprehensive annotations and only one parameter, the description sufficiently covers what the agent needs: the identifier type, the scope (federal recreation facility), and the payload contents. It does not specify behavior for missing or invalid IDs, but given the tool's low complexity and the field list, this is a minor gap rather than a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains facility_id as a RIDB FacilityID with an example. The description repeats this identifier concept but adds no new semantic depth beyond reaffirming that the returned record is for that facility. The baseline of 3 applies because the schema carries the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Full record for a single federal recreation facility.' It clearly distinguishes this from sibling search tools (recreation_search_facilities, recreation_nearby) by emphasizing a single record retrieved by RIDB FacilityID, and it enumerates the content categories returned. This is unambiguous and differentiates the tool well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for fetching a complete record when a FacilityID is already known, which is useful context. However, it does not explicitly say when not to use it or mention alternatives like recreation_search_facilities for discovering facilities by criteria. Usage guidance is present only by implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_nearbyARead-onlyIdempotentInspect
List federal recreation facilities within a radius of a coordinate. Useful for proximity searches (e.g. campgrounds near a property, fishing spots near a city). Radius is in kilometers.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Center latitude. | |
| lon | Yes | Center longitude. | |
| limit | No | Max rows (1-50, default 10). | |
| activity | No | Optional activity filter. | |
| radius_km | No | Radius in kilometers (default 30, max ~320). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the description needs only light additional context. It adds federal/proximity-list behavior but no deeper caveats like default limits or result set characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main verb and resource are front-loaded, and the examples and unit clarification earn their place without duplicating the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list-by-coordinates tool with complete schema descriptions and safety annotations, the description is sufficient for selection and invocation. It could mention that non-proximity facility searches belong in recreation_search_facilities, but that is more routing guidance than missing invocation detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'Radius is in kilometers' reinforces the radius_km parameter note but does not add meaning beyond the schema. Lat/lon as center coordinates is also already documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('list') and resource ('federal recreation facilities') with a clear geospatial scope (radius around a coordinate). It does not explicitly distinguish itself from sibling tools like recreation_search_facilities or recreation_search_campsites, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases ('campgrounds near a property', 'fishing spots near a city') that clearly signal the intended proximity-search scenario. It does not explicitly state when not to use it or name alternatives, so it is a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_search_campsitesARead-onlyIdempotentInspect
Search individual campsites (sites within a campground): loop, accessibility, type, reservable. Provide facility_id to list sites within a known campground, or query to free-text search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-50, default 10). | |
| query | No | Free-text match on campsite name. Optional. | |
| facility_id | No | RIDB FacilityID to list campsites within. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive, so the description doesn't need to repeat safety. It adds the two search modes and the campsite attributes, but no additional behavioral traits such as result limits, pagination, or data source caveats. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and attributes, then the key input modes. Every sentence contributes, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search with three optional parameters, the description gives enough to call it correctly: the resource, the two input modes, and available attributes. It doesn't mention whether facility_id and query can be combined, but the schema's 'optional' allows it, leaving a minor ambiguity. With no output schema, the return fields are partially implied by 'loop, accessibility, type, reservable.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all three parameters, so the baseline is 3. The description adds value by clarifying the intended relationship between facility_id and query ('or') and explaining the use case for each, which the schema alone doesn't fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Search' with a precise resource, 'individual campsites (sites within a campground)', and enumerates the key attributes (loop, accessibility, type, reservable). This clearly distinguishes it from sibling tools like recreation_search_facilities and recreation_search_recareas without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains two call patterns: provide facility_id for a known campground, or use query for free-text search. This gives clear operational context, but it stops short of explicitly naming alternative tools or stating when not to use this one, so it doesn't fully route the agent away from recreation_search_facilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_search_facilitiesARead-onlyIdempotentInspect
Search US federal recreation facilities (campgrounds, picnic areas, trailheads, marinas, visitor centers) across NPS, USFS, BLM, USACE, BOR, FWS. Filter by name, state, or activity (e.g. 'CAMPING', 'FISHING', 'HIKING').
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-50, default 10). | |
| query | No | Free-text match on facility name. | |
| state | No | Two-letter state code, e.g. 'CA'. | |
| activity | No | Activity name (CAMPING, FISHING, HIKING, etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation, so the description does not need to restate that. It adds useful scope context (multiple federal agencies and facility types), but no behavioral specifics such as result ordering, pagination, or data-source caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the main purpose and then list filters and examples. There is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter search tool with read-only annotations and fully described schema parameters, the description covers the resource scope, agency coverage, and filter options. Nothing critical is missing for an agent to decide whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters, but the description adds value by naming the filter dimensions and giving concrete activity examples ('CAMPING', 'FISHING', 'HIKING') that the schema does not enumerate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), a clear resource ('US federal recreation facilities'), and expands the scope with example facility types and agencies. It is clear enough to be distinguished from narrower siblings like recreation_search_campsites, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool searches and the available filters (name, state, activity), giving clear context for when an agent would use it. It does not explicitly exclude alternatives such as recreation_search_recareas or recreation_facility_detail, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recreation_search_recareasARead-onlyIdempotentInspect
Search federal recreation AREAS (broader units: a whole national forest, a national park unit, a BLM management area) by name, state, or activity. For higher-level place search use this; for specific facilities (campgrounds, trailheads) use recreation_search_facilities.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-50, default 10). | |
| query | No | Free-text match on recreation-area name. | |
| state | No | Two-letter state code. | |
| activity | No | Activity name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered and the bar is lower. The description adds one useful behavioral nuance beyond annotations: the granularity distinction that results are broad area units rather than facility-level records. It does not describe response shape or result-count behavior, so a 3 is appropriate given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both substantive and correctly front-loaded: the first scopes the tool with a verb, resource, and concrete examples, the second routes the agent to the sibling alternative. There is zero filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter search tool with full schema coverage and safety annotations, the description covers the essential decisions: what can be searched and when to select this tool over the facilities sibling. The notable gap is that no output schema exists and the description does not hint at the result shape or behavior (e.g., what fields appear, how limit applies), which would help an agent set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (limit, query, state, activity) already documented in the input schema. The description's 'by name, state, or activity' loosely maps to query/state/activity but adds no semantic detail beyond what the schema provides. Baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and a clearly scoped resource: federal recreation AREAS defined as broader units with concrete examples (whole national forest, national park unit, BLM management area). It also names the search dimensions (name, state, activity) and explicitly contrasts itself with recreation_search_facilities, enabling sibling differentiation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing guidance: 'For higher-level place search use this; for specific facilities (campgrounds, trailheads) use recreation_search_facilities.' This names the alternative and the exact condition that selects between the two tools, leaving nothing to inference. The only minor omission is not addressing other recreation siblings like recreation_search_campsites or recreation_nearby.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_cfr_searchARead-onlyIdempotentInspect
Full-text search the current Code of Federal Regulations (eCFR, all 50 titles) for a phrase or keywords. Returns matching sections with their citation (e.g. '40 CFR 98.411'), hierarchy heading, a text snippet, effective date, and the official eCFR URL, plus the total match count. Use reg_cfr_section to read a full section's text.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max sections to return (default 20, max 100). | |
| query | Yes | Phrase or keywords to find in the CFR, e.g. 'greenhouse gas reporting'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds meaningful behavioral detail beyond the annotations: it searches all 50 titles of the current CFR and enumerates the exact return fields (citation, hierarchy heading, snippet, effective date, URL, total count). This gives the agent a clear model of what the tool will do and return.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the action and scope, and the second sentence enumerates return fields and points to the relevant alternative. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool with strong annotations and full schema coverage, the description is complete. It tells the agent what is searched, what is returned, and when to use a different tool. Although there is no output schema, the description enumerates the return fields, so the agent knows what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters (query and limit) with descriptions and defaults. The tool description adds no additional parameter-level meaning beyond restating that the query is a phrase or keywords. Baseline 3 is appropriate because the schema carries the parameter documentation fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Full-text search the current Code of Federal Regulations (eCFR, all 50 titles)'. It clearly defines what the tool does, including the kind of output it returns (matching sections with citations, hierarchy heading, snippet, effective date, URL, total match count), and it explicitly distinguishes itself from reg_cfr_section by directing full-section reads there.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit routing instruction: 'Use reg_cfr_section to read a full section's text.' This tells the agent when to prefer the sibling tool instead of reg_cfr_search. It clearly positions reg_cfr_search as the tool for finding relevant sections, not for retrieving complete regulatory text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_cfr_sectionARead-onlyIdempotentInspect
Get the current text of a specific Code of Federal Regulations section. Provide the title number, part, and section (e.g. title 40, part '98', section '98.411'). Returns the section's plain text, the date it is current as of, and the official eCFR URL.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Optional point-in-time ISO date yyyy-mm-dd; defaults to current. | |
| part | Yes | CFR part, e.g. '98'. | |
| title | Yes | CFR title number 1-50, e.g. 40. | |
| section | Yes | CFR section, e.g. '98.411'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, so the description does not need to repeat that. It adds useful behavioral context by specifying the return payload: plain text, the date current as of, and the official eCFR URL. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly structured sentences with no filler. It front-loads the core purpose, includes a concrete example, and lists return values efficiently. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with fully documented parameters and no output schema, the description sufficiently explains what the tool returns and how to call it. The example clarifies the citation format, and no critical operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds a helpful example mapping title 40, part '98', and section '98.411', but does not substantially extend the schema's parameter explanations. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource: the current text of a Code of Federal Regulations section. It also gives exact required identifiers (title, part, section) with a concrete example, making it easy to distinguish from sibling search tools like reg_cfr_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by requiring a specific section and providing an example format, which signals the agent should use a search tool when the exact citation is unknown. It does not explicitly name alternatives or conditions, but the context is clear enough for correct tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_cfr_titlesARead-onlyIdempotentInspect
List the 50 Code of Federal Regulations titles with their name and the date each title's text is current as of. Useful for discovering title numbers (e.g. Title 26 = Internal Revenue, Title 40 = Protection of Environment) before calling reg_cfr_section.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the output scope—50 titles with names and current-as-of dates—but no further behavioral caveats are necessary for a zero-parameter read-only listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences: the first states exactly what is returned, and the second gives a concrete use case with useful examples (Title 26, Title 40). No filler, no repetition, and the core information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool, the description is complete. It states what is listed, what fields are included, and why the agent would call it. Although there is no output schema, the return values are described in plain language, and annotations cover behavioral expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is effectively 100%, so there are no parameter semantics to document. The baseline for a zero-parameter tool is 4, and the description does not need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'List', and clearly identifies the resource: the 50 Code of Federal Regulations titles with their name and current-as-of date. It also distinguishes itself from reg_cfr_section by positioning this tool as the discovery step for title numbers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says this is useful for discovering title numbers before calling reg_cfr_section, which gives clear when-to-use guidance. It does not state when not to use it or mention alternatives like reg_cfr_search, but the main routing cue is present and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_documentARead-onlyIdempotentInspect
Get full metadata and a plain-text body excerpt for a single Federal Register document by its document number (e.g. '2026-09905'). Returns title, type, agencies, abstract, affected CFR parts, a leading excerpt of the full rule text, and the URL for the complete document.
| Name | Required | Description | Default |
|---|---|---|---|
| document_number | Yes | Federal Register document number, e.g. '2026-09905'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral context by stating it returns only a 'leading excerpt' rather than the full rule text, and that a URL is provided for the complete document, setting accurate expectations about response scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states the action and input, the second lists the outputs. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool with no output schema, the description sufficiently covers the input, the retrieval scope, and the expected return content. An agent has enough information to invoke the tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents document_number with a clear example, so schema coverage is 100%. The description repeats the document-number lookup concept but adds no new semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: retrieving full metadata and a plain-text body excerpt for a single Federal Register document by document number. It clearly distinguishes itself from related search/CFR tools by emphasizing 'single' document lookup and enumerating the returned fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this when you already have a specific Federal Register document number and need that document's metadata and excerpt. It does not explicitly name alternatives like reg_search for finding documents, so it stops short of a full when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reg_searchARead-onlyIdempotentInspect
Search the Federal Register (the daily journal of the US government) for rules, proposed rules, notices, and presidential documents by keyword, with optional agency, document type, and publication-date filters. Returns each document's number, title, type, publishing agency, abstract, and URL. Use reg_document to get the full text of one document.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | Keyword(s), e.g. 'methane emissions', 'overtime rule'. | |
| type | No | Optional document type: 'rule', 'proposed-rule', 'notice', or 'presidential-document'. | |
| limit | No | Max rows (default 20, max 100). | |
| agency | No | Optional agency slug, e.g. 'environmental-protection-agency', 'securities-and-exchange-commission'. | |
| published_to | No | Published on/before, ISO date yyyy-mm-dd. | |
| published_from | No | Published on/after, ISO date yyyy-mm-dd. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so no contradiction exists. The description adds useful behavioral context by specifying the exact return fields and scope, though it does not disclose search semantics or potential edge cases like empty queries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no wasted words. The core action and scope are front-loaded, followed by return fields and a clear pointer to the full-text sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by listing the returned fields and document types. The optional filters are summarized, and the alternative for full-text retrieval is identified. Nothing essential for selecting or invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds a useful grouping of filters (agency, document type, publication date) but does not materially extend the parameter-level meaning already present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Search'), a clear resource ('the Federal Register'), the document types covered, and the fields returned. It also differentiates itself from the sibling reg_document by explicitly directing full-text retrieval elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states both what this tool is for and when a sibling should be used: 'Use reg_document to get the full text of one document.' This makes the choice between reg_search and reg_document explicit and leaves little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_entityARead-onlyIdempotentInspect
Canonical cross-source entity resolution - the join-key primitive to run before other combos. Given a company/organization name (plus optional ticker/CIK/EIN/state hints), fans out across the LiveDataLink sources that carry a strong identifier and returns the best-matched canonical identity plus the IDs it resolves to: SEC EDGAR (CIK, ticker), GLEIF (LEI plus the ownership chain - direct and ultimate parent LEI and the reported subsidiary count), NPPES (organizational NPI for healthcare entities), IRS 990 (EIN), USAspending (federal recipient name), EPA ECHO (facility registry id), and an OFAC/EU/UN/BIS sanctions screen (match/no-match flag). Returns a compact canonical-IDs block with per-source confidence, an entity-type guess, an ownership summary, and an overall match confidence - distinct from entity_dossier's full narrative. A source that fails is noted, not fatal. UEI/SAM.gov and RDAP domain-owner ids are omitted (not wired sources). Cross-source synthesis; verify identifiers before relying on a join.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Optional SEC CIK hint. | |
| ein | No | Optional EIN for an exact IRS 990 nonprofit match. | |
| name | Yes | Company or organization name to resolve (e.g. 'Apple', 'Lockheed Martin', 'Red Cross'). | |
| state | No | Optional 2-letter state to disambiguate nonprofit/EPA name searches. | |
| ticker | No | Optional stock ticker hint to pin the SEC EDGAR match (e.g. 'AAPL'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, and the description adds material behavioral detail: per-source confidence, best-match semantics, non-fatal source failures, omitted sources, and a verification caveat. This is well beyond what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the tool's role before enumerating sources and outputs. Every clause provides useful context, though the long registry enumeration makes it heavier than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly explains what the result contains, which sources contribute, how failures behave, what is intentionally omitted, and how to treat the output. An agent has enough context to invoke and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema carries the full parameter documentation. The description reiterates the hint relationship (ticker/CIK/EIN/state) but does not add significant new meaning beyond grouping them as optional disambiguation hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific operation: cross-source entity resolution returning a canonical identity and identifiers from named registries. It distinguishes itself from entity_dossier by contrast, but it does not address the similarly named entity_resolve sibling, leaving a potential selection ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent this is a join-key primitive to run before other combinations, which gives clear timing. It also contrasts with entity_dossier's narrative output and notes omitted sources, but it stops short of explicitly saying when to choose an alternative such as entity_resolve or a direct registry lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_get_changesARead-onlyIdempotentInspect
Return entities added or updated since a given ISO date for a chosen source list. The four official lists do not all expose a public delta feed, so this filters the cached snapshot by listedOn.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| since | Yes | ISO date string (e.g. 2026-01-01) to compute the delta from. | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a non-obvious behavioral trait: because not all official lists expose a public delta feed, results are derived by filtering the cached snapshot by listedOn. This adds real context beyond the readOnlyHint and idempotentHint annotations and helps the agent understand possible data limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The operation is front-loaded, and the second sentence earns its place by explaining an important implementation caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple read-only delta query, the description plus schema covers the key details: since, source, and the cached-snapshot behavior. It is slightly incomplete because there is no output schema and the description does not describe response shape or pagination behavior, leaving some inference to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents since and limit reasonably well, and source is constrained by an enum. The description adds some context by calling the sources the 'four official lists,' but it does not clarify limit behavior or explain the source enum values beyond that. Overall the description provides only modest extra parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: returning entities added or updated since an ISO date for a selected source list. This clearly distinguishes it from sibling sanctions tools like sanctions_get_entity or sanctions_screen_entity, which fetch or screen rather than compute deltas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the intended use case: get a delta of entities added or updated since a date for one of four official lists. It does not explicitly name alternatives or exclusions, but the cache caveat gives useful context about feasibility and behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_get_entityARead-onlyIdempotentInspect
Fetch a full record by entity ID (e.g. "OFAC_SDN-44705"). The ID is self-describing and includes the source; obtain it from a screening result.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Entity ID from a screening result, e.g. "OFAC_SDN-44705". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety. The description adds useful context about the ID's self-describing nature and source, but does not disclose the return structure or any error/edge-case behavior. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the main action front-loaded and an illustrative example. Every clause adds value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with no output schema, the description sufficiently tells the agent what to pass and where to get the ID. It doesn't enumerate response fields, but 'full record' combined with the annotations is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single 'id' parameter with full coverage. The description adds meaning by explaining that the ID is self-describing and embeds its source, helping the agent understand format variations and where to obtain valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a full record by entity ID, using a specific verb and resource. The example ID and the note that IDs are self-describing and come from screening results effectively distinguish this lookup from sibling search/screen tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says the ID must be obtained from a screening result, which establishes the correct precondition and workflow. It does not name sibling alternatives or state when not to use it, but the intended usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_screen_addressARead-onlyIdempotentInspect
Match a physical address against listed addresses. Useful for KYC / supplier vetting when the counterparty's name is generic but the address is distinctive.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| address | Yes | Free-form address string. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is well covered. The description adds only the matching action and use case, not deeper behavioral context such as match semantics or list behavior; it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The core action is front-loaded, and the second sentence provides valuable selection context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For correct invocation, the required address parameter and all optional parameters are fully documented in the schema, and annotations cover the operational safety profile. The description could explicitly contrast with sanctions_screen_entity or describe result semantics, but these are not necessary for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents address, limit, sources, and threshold. The description adds no parameter-level meaning beyond the schema, which is acceptable given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'match', and a specific resource, 'a physical address against listed addresses.' This clearly differentiates it from entity-based screening tools like sanctions_screen_entity, and the use-case sentence reinforces the address-focused purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: KYC and supplier vetting when the counterparty's name is generic but the address is distinctive. It does not explicitly name alternatives or state when not to use it, but the guidance is specific enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_screen_batchARead-onlyIdempotentInspect
Screen up to 50 names in a single call. Returns one result block per input, in input order. Each name counts as one screen for billing purposes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| names | Yes | Array of names to screen. Max 50. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the description adds meaningful context beyond them: one result block per input, input-order preservation, and per-name billing. It does not fully describe the result block structure, but nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences deliver the core batch capability, output ordering, and billing implication with no filler. The most decision-relevant fact, the 50-name cap, is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers invocation scope, result ordering, and billing, while annotations cover safety. However, with no output schema, 'result block' is under-specified; an agent cannot tell what fields a block contains, and there is no guidance for exceeding 50 names or selecting among closely related screening tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents names, limit, sources, and threshold. The description reinforces the 50-name maximum and result ordering, but adds little semantic value beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Screen') and resource ('up to 50 names') and makes the batch nature explicit. This clearly differentiates it from the sibling tools sanctions_screen_entity and sanctions_screen_address, which operate on a single entity or address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies batch use by stating the 50-name cap and per-input result blocks, but it never explicitly says when to choose this over single-screen siblings or what to do for more than 50 names. There is no exclusion guidance or naming of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_screen_entityARead-onlyIdempotentInspect
Screen a single name or entity against the four major sanctions / denied-party lists (OFAC SDN, EU consolidated, UN consolidated, BIS DPL). Returns matches with confidence scores. This call uses the standard hosted query allowance; the free tier includes 1,000 queries/month and paid plans use the published plan pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or entity string to screen. | |
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, open-world, idempotent, and non-destructive behavior. The description adds genuinely useful context beyond those annotations, including that matches include confidence scores and that the call consumes a hosted query allowance with free-tier and paid-plan pricing implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with the core purpose front-loaded, followed by return semantics and cost/quota context. It is concise and every sentence contributes useful information, though the billing sentence is slightly tangential to invocation behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the fully documented input schema and rich annotations, the description is largely complete for a single-entity screening tool. It could be stronger by explicitly routing users to sanctions_screen_address or sanctions_screen_batch when an address or multiple names are involved, but the core behavior is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents name, limit, sources, and threshold. The description adds little parameter-specific meaning beyond reinforcing that a single name or entity is screened and that matches carry confidence scores, so it does not rise above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action — screening a single name or entity — and names the exact target resources (OFAC SDN, EU consolidated, UN consolidated, BIS DPL). It also says the tool returns matches with confidence scores. This differentiates it from sibling tools like sanctions_screen_address and sanctions_screen_batch via the word 'single'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this when you need to screen a single name or entity against the four major sanctions lists. It does not explicitly name alternatives such as sanctions_screen_batch for multiple names or sanctions_screen_address for physical addresses, but the 'single name or entity' phrasing makes the primary use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_search_aliasARead-onlyIdempotentInspect
Search aliases / AKAs across selected lists. Distinct from screen_entity in that only the alias fields are matched, which is helpful when the primary listed name differs sharply from the popular spelling.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return. Defaults vary per tool. | |
| query | Yes | Alias / AKA to search for. | |
| sources | No | Restrict screening to a subset of source lists. Defaults to all four. Allowed: OFAC_SDN, EU_CFSP, UN_SC, BIS_DPL. | |
| threshold | No | Minimum confidence score (0..1) for a result to be returned. Defaults to 0.85. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful behavior context — that only alias fields are matched — but does not describe return shape, pagination, or other runtime behavior. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action and scope are front-loaded, and the second sentence earns its place by preventing confusion with the closely related screen_entity tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, fully schema-documented search tool, the description covers what it does, how it differs from its closest sibling, and when it is best used. It does not describe output shape, but with no output schema and a straightforward search use case, this is a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents query, limit, sources, and threshold. The description's alias-focused wording adds semantic framing for query but no additional parameter-level detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Search aliases / AKAs across selected lists') and explicitly distinguishes the tool from screen_entity by noting that only alias fields are matched. This makes the tool's purpose and scope immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternative (screen_entity) and explains when this tool is helpful: when the primary listed name differs sharply from the popular spelling. That is an explicit routing signal for an agent deciding between related sanctions tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_status_summaryARead-onlyIdempotentInspect
Counts and last-update timestamps for all four lists in the cache. No screening is performed; this call is free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive traits. The description adds genuine behavioral context: it reads cached data, performs no screening, and is free. These details help agents understand cost and side effects beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry all necessary information with no filler. The core purpose is front-loaded, followed by the exclusion and cost note. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only status tool, the description fully covers what the call returns, what it does not do, and that it is free. No output schema exists, but the described return value (counts and timestamps for four lists) is sufficient for an agent to invoke and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to explain about inputs. The empty input schema plus 100% schema coverage means no parameter documentation is needed; a baseline score of 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific function: 'Counts and last-update timestamps for all four lists in the cache.' It explicitly distinguishes itself from screening tools with 'No screening is performed,' separating it clearly from sanctions_screen_* and other sanctions lookup siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly signals when not to use this tool ('No screening is performed'), which is a valuable exclusion for agents considering sanctions tools. However, it does not name a specific alternative to use when screening is needed, so it stops short of explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_available_datasetsARead-onlyIdempotentInspect
Your guide to LiveDataLink's entire data catalog. Call this FIRST when you're unsure which tool to use, or when the user asks about data availability. LiveDataLink has 294 tools across 59 data domains: finance (stocks, options), crypto, transportation/FMCSA carriers, property records, weather/air quality, vehicle VIN/recalls, package tracking, local business search, sanctions screening (OFAC SDN, EU, UN, BIS), FEMA disasters and flood data, federal courts (CourtListener), cybersecurity (CVE/CWE/EPSS/CISA KEV), US college metrics (IPEDS), EIA energy data (gasoline, natural gas, electricity, oil supply, renewables), FRED Federal Reserve macroeconomic series (GDP, CPI, fed funds, unemployment, yields), SEC EDGAR filings (10-K, 10-Q, 8-K, insider transactions), and NREL renewable energy (PVWatts solar, utility rates, EV charging stations), US Census demographics, EPA environmental compliance, FEC campaign finance, USPTO patents, IRS nonprofits (Form 990/EO BMF), US caselaw, public-domain books (full-text search), open-access scholarly papers (OpenAlex catalog + arXiv/PMC full-text search), federal regulations (Federal Register rules/notices + the Code of Federal Regulations), US Census geocoding (address to coordinates + Census geographies), federal grants (Grants.gov funding opportunities), and product recalls (CPSC / SaferProducts.gov). New domains are reviewed regularly based on observed requests. Returns exact tool names for matched domains AND logs every search to a roadmap database. High-frequency unmet queries jump the build queue. Use this freely; it costs no credits. Call for: 'what data do you have?', 'can you look up X?', 'do you have Y data?', 'what tools are available?', or any data coverage question. After you find a tool, create a free key at https://livedatalink.ai/signup/free for 1,000 monthly calls, or see https://livedatalink.ai/pricing for paid plans.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What data the user is looking for (e.g., 'trucking safety', 'stock prices', 'property records', 'VIN lookup') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, but the description says the tool 'logs every search to a roadmap database' and that unmet queries can jump the build queue. Logging and queueing are write side effects, contradicting the readOnlyHint annotation. The description otherwise adds useful context such as costing no credits, but the contradiction dominates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is logically organized and front-loads its core purpose and 'call this FIRST' directive. However, it is quite long, with an exhaustive domain list and a pricing/signup note that is not necessary for correct tool selection. It is structured well but not concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a catalog-discovery tool with no output schema, the description covers the return value, cost behavior, the logging side effect, and post-search next steps. It does not specify detailed response formatting, but an agent has enough information to invoke it correctly. The readOnly contradiction makes state behavior ambiguous, but overall completeness is strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single query parameter already has a clear schema description with examples, so schema coverage is 100%. The tool description adds value by enumerating the many domains the query can target, which helps an agent formulate meaningful searches. It does not provide query syntax details, but the schema covers the basics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as the catalog router for the entire platform, stating it returns exact tool names for matched domains and instructing 'Call this FIRST.' This makes it unmistakably distinct from the domain-specific sibling tools it routes to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit trigger conditions: use when unsure which tool to use, when the user asks about data availability, and provides direct example phrasings. It also explains the next step after finding a tool. It does not explicitly spell out when-not to use it, but the 'call FIRST when unsure' framing implies that direct calls to known tools are the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security_exposureARead-onlyIdempotentInspect
One-call known-vulnerability exposure for a vendor/product/package, built on the LiveDataLink cyber domain. Fans out to NVD (CVE search by vendor+product or keyword), the CISA KEV catalog (actively-exploited flag - the highest signal), FIRST EPSS (exploit-probability scores for the most-severe CVEs), and aggregates MITRE CWE weakness types from the matched CVEs. Returns total CVEs, counts by CVSS severity band, KEV membership with the actively-exploited CVEs listed, the highest EPSS score, the critical CVEs, top CWE weakness types, an overall exposure rollup (KEV present -> high), and an evidence list. No matches returns a friendly 0-exposure result; if the cyber source is unavailable that is noted per-source. Exactly one NVD call per invocation. INFORMATIONAL security research, not advice. Package-registry maintenance/staleness signals are out of scope for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor | No | Optional vendor to narrow the NVD CPE match (e.g. 'apache', 'openbsd'). | |
| product | Yes | Product or package name to assess (e.g. 'log4j', 'openssl', 'struts'). | |
| version | No | Optional version string (informational; shown in the report). | |
| max_cves | No | Max CVEs to pull from NVD for analysis (default 40). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses the exact fan-out to NVD, KEV, EPSS, and CWE; the detailed return fields including the 'KEV present -> high' rollup; no-match behavior returning 'a friendly 0-exposure result'; per-source unavailability notes; and 'Exactly one NVD call per invocation'. This gives the agent strong behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but dense and non-redundant, front-loading the core purpose before enumerating sources, outputs, and edge cases. Every sentence adds useful information, and the structure compensates for the lack of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining return values, and it does so thoroughly: counts, severity bands, KEV membership, EPSS, CWEs, exposure rollup, evidence list, no-match behavior, and source-unavailability handling. The multi-source aggregation is complex, and nothing critical to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents vendor, product, version, and max_cves with examples and defaults. The description adds little new parameter-level meaning beyond the 'Exactly one NVD call' hint, which clarifies max_cves does not multiply calls. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'One-call known-vulnerability exposure for a vendor/product/package' states a specific verb, resource, and scope. Its 'fans out to NVD... CISA KEV... FIRST EPSS... MITRE CWE' clearly distinguishes it from narrower siblings like cve_lookup, epss_score, or kev_status_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear context: use this aggregate tool when you need consolidated exposure for a vendor/product/package, reinforced by 'One-call' and the list of aggregated sources. It also states one exclusion ('Package-registry maintenance/staleness signals are out of scope'), though it does not explicitly name sibling alternatives such as kev_status_check or cve_search_by_keyword.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shipper_receiver_counterparty_packARead-onlyIdempotentInspect
Create an evidence-backed counterparty pack for a shipper, receiver, or both. Resolves canonical identifiers, SEC/GLEIF/USAspending/EPA identity signals, sanctions status, and public-record standing, then returns a review checklist for credit terms and load release. Name matches are candidates to verify; this is not a credit report or endorsement.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate either party. | |
| format | No | Report format. Defaults to markdown. | |
| shipper | No | Shipper legal or trading name. | |
| receiver | No | Receiver legal or trading name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds meaningful behavioral context: it resolves identity signals from specific sources (SEC/GLEIF/USAspending/EPA), checks sanctions and public-record standing, and returns a review checklist. It also transparently warns that name matches are candidates to verify, which is important uncertainty disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the core purpose, then adds sources, output, and caveats in a logical order. Every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity tool with no output schema, the description covers the main inputs, data sources, output type, and caveats. A minor gap is that both shipper and receiver are optional in the schema, and the description does not explicitly state that at least one should be provided, though 'a shipper, receiver, or both' implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add much parameter-level meaning beyond the schema, which is acceptable given the high coverage. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create an evidence-backed counterparty pack') for a specific scope ('a shipper, receiver, or both'), and it differentiates itself from related tools by focusing on shipper/receiver counterparty review rather than carrier vetting or generic company lookup. It also clarifies what the tool is not ('not a credit report or endorsement'), which strengthens the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: when credit terms and load release decisions need an evidence-backed counterparty review. It does not explicitly name alternative tools or state when-not-to-use conditions, so it falls short of a 5, but the context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spending_award_detailsARead-onlyIdempotentInspect
Get full detail for one federal award by its award id (the generated id from spending_search_awards): recipient, amount, type, awarding and funding agencies, period of performance, NAICS/PSC, place of performance, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| award_id | Yes | Generated award id from spending_search_awards. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate safety. The description adds the one-award scope and the field list, which is useful, but it does not disclose response shape, error behavior, or any other operational details. This matches the lower bar set by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that front-loads the action and resource, then lists all relevant output fields with no filler. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup tool, the description is complete: it gives the input source, the scope, and the expected content of the response. With rich annotations and no output schema, this level of detail is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes award_id as 'Generated award id from spending_search_awards.' The description repeats that same provenance rather than adding new meaning, so it adds no value beyond the schema for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get full detail for one federal award by its award id.' It enumerates the exact information returned (recipient, amount, type, agencies, period, NAICS/PSC, place of performance, description), and the explicit link to spending_search_awards distinguishes it from the search/summary siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the intended workflow: first use spending_search_awards to get a generated award_id, then call this tool with that id for full details. It does not explicitly name alternatives such as spending_recipient_summary or state when not to use this tool, but the context strongly implies the correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spending_recipient_summaryARead-onlyIdempotentInspect
Summarize a company's federal awards: total dollars and top awards for a recipient name in a category (contracts by default). Useful for due diligence and to see who the government pays.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Top awards to list (default 5, max 25). | |
| category | No | Award category: 'contracts' (default), 'grants', 'loans', or 'other'. | |
| recipient | Yes | Recipient company/org name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the description's safety burden is lower. The description adds useful behavioral detail by specifying the output shape (total dollars and top awards), the category default, and the recipient-based aggregation, but it does not disclose data sources, time periods, or potential result limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence front-loads the core purpose and output, while the second adds a brief use-case rationale. Every clause contributes to agent understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with no output schema, the description gives a reasonable sense of what will be returned (total dollars and top awards) and the default category. However, it leaves ambiguity about the time period, whether totals are across all federal spending or a specific year, and what fields the 'top awards' include, which an agent might need to set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented with meaningful descriptions. The tool description adds little beyond reinforcing the recipient-name focus and the contracts default, which the schema already covers. A baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('summarize') and resource ('a company's federal awards'), and clearly identifies the output: total dollars and top awards by recipient within a category. It implicitly distinguishes itself from sibling tools like spending_award_details and spending_search_awards by framing this as a summary view, though it does not name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers use-case context ('useful for due diligence and to see who the government pays') and notes the contracts default, which gives some guidance on when to invoke it. However, it does not explicitly compare against sibling tools such as spending_award_details or spending_search_awards, nor state when this tool should be preferred over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spending_search_awardsARead-onlyIdempotentInspect
Search federal awards (contracts, grants, loans) from USAspending.gov by recipient company, keyword, and/or awarding agency, with optional fiscal year and minimum amount. Returns each award's id, recipient, amount, awarding agency, type, start date, and description, sorted by amount.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 10, max 50). | |
| agency | No | Awarding agency name, e.g. 'Department of Defense'. | |
| keyword | No | Free-text keyword across the award. | |
| category | No | Award category: 'contracts' (default), 'grants', 'loans', or 'other'. | |
| recipient | No | Recipient company/org name, e.g. 'Lockheed Martin'. | |
| min_amount | No | Minimum award amount in USD. | |
| fiscal_year | No | Federal fiscal year, e.g. 2024. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive, so the description is not burdened with explaining safety. It adds useful behavioral context beyond annotations by specifying the data source, the returned fields per award, and the sort order by amount. This exceeds the baseline while remaining consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence that front-loads the tool's core purpose before listing filters and output fields. Every clause contributes useful information, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description explicitly lists the returned award fields and sort order. Combined with the fully documented input schema and safety-bearing annotations, an agent has enough information to select and invoke the tool correctly. Nothing essential for using this search tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description adds some semantic value by grouping the primary filters as 'by recipient company, keyword, and/or awarding agency' and labeling fiscal year and minimum amount as optional. However, it does not substantially enrich parameter meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Search federal awards (contracts, grants, loans) from USAspending.gov'. It enumerates the available filters and the exact returned fields, making the tool's purpose immediately clear. It also differentiates itself from sibling spending tools by emphasizing plural award search and per-award returned rows rather than a single award detail or recipient summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: when you need to find federal awards by recipient, keyword, agency, fiscal year, or minimum amount. It does not explicitly mention alternatives such as spending_award_details or spending_recipient_summary, and it provides no exclusion criteria, but the search-oriented framing and filter list give adequate contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_compareARead-onlyIdempotentInspect
Compare 2 to 5 stocks side by side. Returns price, daily change, market cap, P/E ratio, dividend yield, volume, 52-week range, sector, revenue, profit margin, EPS, and beta. Use this for "compare Apple and Microsoft", "which is a better investment, NVDA or AMD?", "tech stock comparison", or any stock-vs-stock analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Ticker symbols, 2-5 stocks. Accept either CSV string ("AAPL,MSFT,GOOGL") or array (["AAPL","MSFT","GOOGL"]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile, so the bar for the description is lower. The description adds meaningful behavioral context beyond annotations: the 2-5 stock input constraint and the complete list of 12 returned metrics, giving the agent a concrete expectation of output content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what it does, what it returns, and when to use it. The purpose is front-loaded in the first sentence, and although the field list is long, it is information-dense and directly useful to the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by explicitly listing all returned metrics. Input constraints, parameter formats, and usage examples are all present; only minor gaps remain, such as behavior for invalid or non-existent ticker symbols and data freshness, which are relatively unimportant for a single-parameter read-only comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the symbols parameter fully documented for both CSV string and array formats, so the schema carries the semantic burden. The description only restates the 2-5 range already in the schema and adds illustrative query examples, which is baseline value rather than new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Compare 2 to 5 stocks side by side' — a specific verb, resource, and range constraint. The enumerated return fields (price, P/E ratio, dividend yield, beta, etc.) go beyond what a single-stock quote tool would offer, making the purpose unambiguous and distinguishing it from siblings like stock_quote and stock_quote_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit example queries ('compare Apple and Microsoft', 'which is a better investment, NVDA or AMD?') and closes with 'any stock-vs-stock analysis', which gives clear context for when to use it. However, it never names alternative tools or states when not to use it (e.g., for a single stock quote or price history), stopping short of a full when/when-not treatment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_historyARead-onlyIdempotentInspect
Get historical stock price data - open, high, low, close, and volume (OHLCV). Supports intraday (1-minute) through multi-year (5-year, max) ranges. Use this for "how has AAPL performed this year?", "show me the price chart for Tesla", "what was the stock price last month?", "historical performance", or any stock price history question.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time range (default: "1mo") | |
| symbol | Yes | Stock ticker symbol (e.g., "AAPL") | |
| interval | No | Data interval (default: "1d") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavioral context on the data shape (OHLCV) and supported time ranges. It does not disclose the response format, behavior for invalid tickers, or whether prices are adjusted for splits/dividends, but with annotations carrying the safety burden, the added context is sufficient for a baseline 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, followed by a concise range statement and then example queries. The example list is slightly long (four examples plus a catch-all), but each example is short and adds practical routing value for an agent. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with three parameters and annotations covering the safety profile, the description is largely complete: it names the returned data concept (OHLCV), the supported ranges, and typical query phrasings. The main gap is the lack of an output schema combined with no mention of the exact response structure, but naming the OHLCV fields partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — symbol, period, and interval each have documented descriptions and period/interval have enums. The description adds light value by linking period concepts to real queries (e.g., 'what was the stock price last month?' maps to period=1mo, '1-minute' maps to interval=1m), but the schema already does the heavy lifting, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get historical stock price data') and enumerates the data fields (open, high, low, close, volume). It conveys the temporal scope (intraday through multi-year). It distinguishes from siblings like stock_quote and stock_compare implicitly through the word 'historical' and the example queries, but it never names an alternative explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete example queries ('how has AAPL performed this year?', 'show me the price chart for Tesla', 'what was the stock price last month?') that clearly signal when to invoke this tool versus stock_quote or stock_compare. However, it does not state when NOT to use it or name alternative tools for current pricing, so exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_quoteARead-onlyIdempotentInspect
Get the latest available stock price and market data. Returns current price, daily change, volume, market cap, P/E ratio, dividend yield, 52-week high/low, open, and previous close. Use this for "what's the stock price of X?", "how is AAPL doing?", "check the market", "what's Apple trading at?", or any stock/equity price question.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol (e.g., "AAPL", "MSFT", "TSLA") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only nature is covered. The description adds useful behavioral detail about what market data fields are returned (volume, market cap, P/E ratio, etc.) but does not discuss data latency, market hours, symbol validity, or error behavior. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and includes both return fields and representative user queries. It is reasonably concise, though the long field list could be slightly trimmed without losing critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with no output schema, the description is largely complete: it states what the tool does, what data it returns, and when to use it. It does not cover edge cases such as invalid symbols, market closure behavior, or data delay, but those are not critical for selecting and invoking a basic stock quote tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter, symbol, is already described with examples in the input schema. The description does not add additional semantic meaning beyond restating that this handles stock price questions, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the latest available stock price and market data for a single symbol, which is a specific verb+resource. It differentiates from siblings like stock_history and stock_quote_batch by emphasizing 'latest available' and singular stock/equity price questions, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete example queries ('what's the stock price of X?', 'how is AAPL doing?') and says to use it for any stock/equity price question. This provides clear context for when the tool is appropriate, but it does not mention exclusions or direct users to alternatives for history, comparison, or batch quotes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_quote_batchARead-onlyIdempotentInspect
Get the latest available stock prices for multiple stocks at once (up to 10). Returns a comparison table with price, daily change, volume, market cap, and P/E. Use this for "show me FAANG stocks", "compare tech stock prices", "how are energy stocks doing?", or any multi-stock price check.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Ticker symbols, max 10. Accept either CSV string ("AAPL,MSFT,GOOGL") or array (["AAPL","MSFT","GOOGL"]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior, so the description's additional context is useful rather than required. It adds the 'latest available' freshness qualifier, the 10-symbol cap, and the output shape (comparison table with specific fields). It does not discuss possible data delays, invalid ticker handling, or response ordering, but these are minor for a safe read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action and limit come first, followed by output details and concrete example queries. Every sentence contributes value, and the structure is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, full schema coverage, and strong safety annotations, the description is largely complete for selection and invocation. It covers scope, the symbol limit, and return fields, which compensates for the absence of an output schema. A brief note on using stock_quote for a single symbol or on invalid symbol behavior would improve it further, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter, symbols, including accepted formats (CSV string or array) and the maximum of 10. Since schema description coverage is 100%, the description does not need to add much. It restates 'up to 10' and 'multiple stocks', but adds no substantive semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and scope: 'Get the latest available stock prices for multiple stocks at once (up to 10)' and enumerates the returned comparison fields (price, daily change, volume, market cap, P/E). This distinguishes it from a single-stock quote tool, though it does not explicitly disambiguate from the sibling stock_compare, and its example 'compare tech stock prices' could overlap with that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit example use cases ('show me FAANG stocks', 'compare tech stock prices', 'how are energy stocks doing?') and a general rule ('any multi-stock price check'). It gives clear context for when to use the tool, but it does not explicitly state when not to use it or name single-stock alternatives like stock_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sun_timesARead-onlyIdempotentInspect
Compute sunrise, sunset, solar noon, and civil twilight for any latitude/longitude on a given date. Times are computed in code from the standard NOAA solar-position equations (no third-party API is called, so the result is dependency-free and resale-safe). Times are returned in UTC by default; pass tz_offset (hours from UTC, e.g. -7 for US Pacific Daylight Time) to shift the output to local clock time. Polar day and polar night are reported when the sun does not rise or set. Use it for daylight planning, photography golden-hour timing, or agriculture and energy calculations.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees (positive north). | |
| lon | Yes | Longitude in decimal degrees (negative west). | |
| date | No | Date, 'YYYY-MM-DD'. Defaults to today (UTC). | |
| tz_offset | No | Hours from UTC applied to output times, e.g. -7 for US Pacific Daylight Time. Default 0 (UTC). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only/idempotent, and the description adds useful non-obvious behavior: computation is local via NOAA equations (no third-party API), outputs default to UTC with a tz_offset shift option, and polar day/night are represented explicitly. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, implementation detail, timezone behavior, edge cases, and use cases. The main action is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateless calculation with a complete schema, it covers inputs, defaults, timezone behavior, edge cases, and use cases. It stops short of specifying the exact return object/field names, which would matter more if an output schema were absent; still, enough information is present for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter with defaults and examples. The description restates the tz_offset behavior rather than adding new parameter semantics; the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Compute') and exact resource ('sunrise, sunset, solar noon, and civil twilight') plus the required scope (latitude/longitude/date). This clearly differentiates it from geospatial or weather siblings such as tide_predictions or nrel_solar_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit application contexts: daylight planning, photography golden-hour timing, agriculture, and energy calculations. It does not name alternatives or exclusions, but among the sibling list there is no direct equivalent, so the use-case guidance is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supplier_esg_scorecardARead-onlyIdempotentInspect
One-call, source-linked ESG / supplier-risk signal read for a company. Joins three public-record governance-signal legs: EPA ECHO/FRS environmental compliance (significant-non-compliance flags, non-compliant quarters, penalties, and formal enforcement actions across the company's facilities, with correct filtering so clean 'No Violation Identified' statuses are never flagged), product recalls (CPSC consumer products + openFDA drug/device/food, keyed by the company), and federal-court litigation (CourtListener v4 dockets whose caption actually names the company). Returns a readable scorecard across Environmental / Product-safety / Litigation dimensions with a rolled-up read (LOW / MODERATE / ELEVATED ESG risk signals) and the evidence behind each. A leg that fails is noted, not fatal. This is informational public-record synthesis of ESG/supplier-risk signals, not an ESG rating, credit/background report, or investment advice. Review source terms before redistributing results.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional 2-letter state to disambiguate the EPA facility search (e.g. 'PA'). | |
| company | Yes | Company / supplier name to score (e.g. 'US Steel', 'Tyson Foods'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, openWorld, idempotent, non-destructive), the description discloses important behavioral details: the filtering nuance so clean 'No Violation Identified' statuses are never flagged, the fact that a failed leg is noted but not fatal, the returned risk levels (LOW/MODERATE/ELEVATED), and the informational limitations with a redistribution caveat. This is excellent transparency for a composite tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: scope, data sources, filtering nuance, output format, failure handling, and usage caveats are all covered without repetition. It is appropriately front-loaded with the core purpose and then adds necessary detail for a multi-source tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description fully explains what the agent can expect: a scorecard across Environmental, Product-safety, and Litigation dimensions with a rolled-up risk read and supporting evidence. It also covers edge behavior (failed leg handling) and legal/informational boundaries, making it complete for invocation and result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds mild context by explaining the state parameter disambiguates the EPA facility search and the company parameter names the entity to score, but it does not add substantial meaning beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it returns a one-call, source-linked ESG/supplier-risk scorecard for a company. It explicitly names the three data legs (EPA ECHO/FRS compliance, product recalls, federal-court litigation) and distinguishes itself from single-source sibling tools like epa_facility_compliance or cpsc_recall_search by being a composite synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: use this when you want a rolled-up ESG/supplier-risk signal across environmental, product-safety, and litigation evidence in one call. However, it never explicitly states when not to use it or names alternatives such as epa_enforcement_search or court_case_search for deeper single-source investigation, so routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
support_resistance_levelsARead-onlyIdempotentInspect
Return key support/resistance price levels for a US ticker from recent daily pivots (swing highs/lows) plus nearby round-number levels, with the latest close for context. HEURISTIC levels for research, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | US ticker (e.g. 'TSLA'). | |
| lookback_days | No | Trailing daily bars to derive levels from (default 180). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond those flags: the levels are 'HEURISTIC,' derived from recent daily pivots with round-number levels, and the latest close is included for context. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The main function comes first, followed by methodology and a caveat. Every clause contributes meaning, and the most important caveat ('not investment advice') is placed at the end without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, two-parameter, read-only tool, this description covers the output type, calculation source, and heuristic nature; the schema covers parameters, and there is no output schema to explain. The only notable omission is explicit differentiation from alternative technical-analysis tools, but nothing critical to correctly invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already documents symbol with an example and lookback_days with a default value. The tool description does not add any extra parameter nuance beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Return') and names the exact resource ('key support/resistance price levels for a US ticker'), then details the method ('recent daily pivots (swing highs/lows) plus nearby round-number levels'). It also mentions the latest close and adds a clear heuristic/research caveat, making the tool instantly distinguishable from siblings like stock_quote or candlestick_signals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'HEURISTIC levels for research, not investment advice' supplies clear context about when and how to use the output, and the overall scope implies a technical-analysis use case. However, it does not explicitly name alternatives (e.g., bounce_scanner, stock_history) or state exclusions, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talent_market_briefARead-onlyIdempotentInspect
One-call 'can I hire this role here, and at what cost' read for an occupation in a US geography. Joins two independent federal sources: BLS OEWS (Occupational Employment and Wage Statistics, keyless) for the occupation's employment LEVEL and wage distribution (mean plus 10th / 50th-median / 90th annual percentiles) in the area, and US Census ACS labor-force context (civilian labor force and local unemployment rate - needs a Census API key) to band how TIGHT / BALANCED / SLACK the local hiring market is. Pass an 'occupation' (e.g. 'registered nurses', 'software developers') or an explicit 'soc_code' (e.g. '29-1141'), and an optional 'state' or 'metro' (defaults to national). Returns a readable brief with a headline (employment, median/mean wage, market tightness), the wage percentiles, and per-source evidence. The BLS OEWS leg is the core signal and is keyless; the Census leg degrades gracefully if no key is set. Informational, NOT a guarantee that a role can be filled at any given wage.
| Name | Required | Description | Default |
|---|---|---|---|
| metro | No | Optional 5-digit CBSA/metro code (e.g. '12420' Austin, TX). OEWS metro coverage varies; an unmatched metro is noted, not fatal. | |
| state | No | Optional 2-letter state code or 2-digit FIPS (e.g. 'TX', '48'). Omit for a national read. | |
| soc_code | No | Explicit 6-digit SOC occupation code, with or without a dash (e.g. '29-1141' registered nurses, '15-1252' software developers). Overrides 'occupation'. | |
| occupation | Yes | Free-text occupation to map to a SOC code (e.g. 'registered nurses', 'software developers', 'electricians'). Provide this or 'soc_code'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal read-only, idempotent, non-destructive behavior. The description goes well beyond that by disclosing the two-source composition, that the BLS leg is keyless, that the Census leg requires an API key and degrades gracefully, and that the output is informational and not a hiring guarantee. It also notes that unmatched metros are flagged rather than fatal. This is exemplary behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then moves logically through data sources, input options, output format, and key caveats. Though long, every sentence carries meaningful information; there is no fluff or repetition. The structure makes the complexity easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description correctly takes responsibility for explaining what the caller receives: a readable brief with a headline, wage percentiles, and per-source evidence. Combined with parameter guidance, data-source requirements, and failure-mode notes, the description gives an agent everything needed to invoke the tool correctly and interpret its response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all four parameters at 100% coverage, so the baseline is 3. The description adds meaning beyond the schema by stating national defaults, the occupation-or-soc_code usage pattern, and the metro coverage caveat. That lifts it above the baseline, though much of the schema already covers the override and example details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific, memorable framing: one-call 'can I hire this role here, and at what cost' read. It clearly names the resource (occupation in a US geography), the core behavior (joins BLS OEWS and Census ACS), and even differentiates itself from raw sibling data tools by emphasizing the joined, brief-producing nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states exactly what kind of query this answers and how to invoke it: pass an occupation or soc_code, plus optional state or metro. It does not explicitly name sibling alternatives or say when NOT to use this tool, but the context strongly implies it is the composite choice versus single-source tools like bls_series or census_demographics. That is clear enough but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tide_predictionsARead-onlyIdempotentInspect
Return high and low tide predictions (times and heights) from the keyless NOAA Tides & Currents (CO-OPS) public API - U.S. Government public-domain data. Give either a NOAA station id (e.g. '9414290' for San Francisco) or a lat/lon (the nearest tide-prediction station is chosen automatically). Returns each high and low tide over the requested inclusive date range, in local station time, relative to the chosen tidal datum (default MLLW). Use it for tide tables, beach and boating planning, or coastal scheduling.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Used with lon to pick the nearest station when no station id is given. | |
| lon | No | Longitude in decimal degrees (negative west). | |
| datum | No | Tidal datum: MLLW, MSL, MHW, etc. Default MLLW. | |
| units | No | 'english' (feet) or 'metric' (meters). Default english. | |
| station | No | NOAA CO-OPS station id, e.g. '9414290'. Optional if lat and lon are given. | |
| end_date | No | End date (inclusive), 'YYYY-MM-DD'. Defaults to begin_date + 1 day. | |
| begin_date | No | Start date (inclusive), 'YYYY-MM-DD'. Defaults to today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, openWorldHint, non-destructive), the description discloses several non-obvious behaviors: no API key is required, lat/lon input silently selects the nearest prediction station, results are in local station time, and values are relative to a tidal datum (default MLLW). These are operationally important traits the annotations do not cover. No contradiction with the annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with the core function front-loaded in sentence one. Each sentence earns its place: function and data source, input modes (station vs lat/lon), output characteristics (times, heights, local time, datum), and use cases. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description carries the output burden and does so well: it characterizes the return as high/low tide times and heights per day over an inclusive range, in local time, datum-relative. It also covers input alternatives and defaults. Minor gaps remain — failure modes for invalid station IDs or date ranges and any limits on range length — but nothing that would block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — all 7 parameters have descriptions, so the baseline is 3. The description largely restates schema content (the '9414290' station example, MLLW default, inclusive date ranges). It adds only marginal interpretive value, such as flagging that results are in local station time, which affects how begin_date/end_date should be interpreted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource: 'Return high and low tide predictions (times and heights) from the keyless NOAA Tides & Currents (CO-OPS) public API'. The data source (NOAA CO-OPS) and output type (high/low tides) make it easy to distinguish from environmental siblings like weather_current, weather_forecast, sun_times, and water_levels without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence gives explicit use-case routing: 'Use it for tide tables, beach and boating planning, or coastal scheduling.' This tells an agent when to select this tool. However, it does not name alternatives or state when NOT to use it (e.g., real-time observed water levels would belong to the water_levels sibling), leaving exclusions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_auctionsARead-onlyIdempotentInspect
Recent US Treasury securities auction results: term, CUSIP, issue/maturity dates, high yield, interest rate, bid-to-cover ratio, and amounts. Optionally filter by security type (Bill, Note, Bond, TIPS, FRN).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| security_type | No | Filter by security type: 'Bill', 'Note', 'Bond', 'TIPS', 'FRN'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds data scope and the filtering option, but does not disclose behavioral details such as the recency window behind 'Recent', default row count, or sort order. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the first names the resource and its return fields, the second covers the optional filter. The main purpose is front-loaded ahead of the filtering detail, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters, full schema coverage, and strong annotations, the description is nearly complete. The listed fields compensate for the absence of an output schema. The only gap is the vague 'Recent' qualifier — no recency window is specified — and no mention of default limit behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit and security_type) are already documented in the schema. The description adds the security type filter and its enum values (Bill, Note, Bond, TIPS, FRN), which slightly reinforces but does not meaningfully exceed what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('recent results') and a precise resource (US Treasury securities auction results), then enumerates the exact fields returned (term, CUSIP, dates, high yield, rate, bid-to-cover, amounts). This is easily distinguished from the treasury_* siblings like treasury_interest_rates, treasury_debt, and treasury_cash_balance, which cover different data domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it — whenever auction results are needed — and states the optional filter by security type. However, it does not explicitly name alternatives or exclusion conditions (e.g., 'for current market rates use treasury_interest_rates instead'), leaving sibling differentiation to inference from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_cash_balanceBRead-onlyIdempotentInspect
Daily operating cash balance of the US Treasury (the Treasury General Account, the government's checking account at the Fed), from the Daily Treasury Statement. Values are in millions of dollars.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description only needs to add context beyond that. It adds the data source and unit, but does not disclose other operational traits such as default time range, ordering, or whether results are latest-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the key resource and scope front-loaded and the unit clarification placed immediately. No filler or redundant phrasing is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter read-only tool, the description provides the data source, the specific account, and the unit of measurement. It does not document the response shape or date-range behavior, but the daily-series implication and available annotations make the tool callable without major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'limit' is already fully documented in the schema as 'Max rows to return,' giving 100% schema description coverage. The description adds no extra meaning about default behavior or maximum allowed values, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as the US Treasury's daily operating cash balance (Treasury General Account) and scopes it to data from the Daily Treasury Statement with values in millions of dollars. It is distinguishable from treasury_debt, treasury_auctions, and treasury_interest_rates, though it lacks an explicit action verb such as 'list' or 'get.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool versus treasury_debt, treasury_auctions, treasury_exchange_rates, or treasury_interest_rates, nor does it describe exclusions or alternatives. The intended use must be inferred entirely from the resource name and noun-phrase description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_debtARead-onlyIdempotentInspect
US total public debt outstanding (the 'Debt to the Penny' series from the US Treasury). Returns the most recent figure plus history, split into debt held by the public and intragovernmental holdings. Keyless, official Treasury data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| end_date | No | Latest record date (YYYY-MM-DD). | |
| start_date | No | Earliest record date (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds meaningful context beyond the annotations: the data source, the fact that both the most recent figure and history are returned, the split between public debt and intragovernmental holdings, and the keyless access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences convey the subject, source, return content, breakdown, authentication need, and data authority. There is no filler, and the most identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only data tool with fully documented optional parameters and strong annotations, the description is nearly complete. It tells the agent what data is returned and that no key is needed, though it could have briefly noted date-range/limit behavior or explicitly distinguished itself from the other treasury_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meanings are already documented. The description adds only a generic sense that history and a latest figure are available, but it does not clarify how limit/start_date/end_date interact or what defaults apply. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('US total public debt outstanding', the 'Debt to the Penny' series), a clear action ('Returns...'), and the data breakdown (public versus intragovernmental holdings). This is enough to distinguish it from sibling treasury tools like treasury_cash_balance or treasury_interest_rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the explicit resource description, and the 'Keyless, official Treasury data' note is a useful usage affordance. However, there is no explicit guidance on when to choose this tool over related Treasury siblings, nor any exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_exchange_ratesARead-onlyIdempotentInspect
Official US Treasury Reporting Rates of Exchange (the rates US government agencies use to convert foreign currency balances to dollars). Published quarterly. Provide a country or currency to filter, e.g. 'Canada', 'Euro', 'Yen'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| query | No | Country or currency name to match, e.g. 'Canada', 'Euro Zone', 'Japan'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and openWorld traits. The description adds useful context about the source, quarterly cadence, and filtering, but does not disclose details like the shape of returned rows or what happens when no query is supplied. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with the resource definition front-loaded, followed immediately by a usage example. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, optional-parameter read-only lookup with no output schema, the source, cadence, and filter examples give an agent enough to select and invoke the tool. It could add a sentence on what the returned rate rows contain, but this is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both query and limit are documented there. The description restates the query semantics and provides examples, but does not add meaning beyond the schema aside from illustrating acceptable inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (US Treasury Reporting Rates of Exchange), its purpose (converting foreign currency balances to dollars), and a concrete filtering action. This distinguishes it from treasury siblings such as treasury_interest_rates, treasury_auctions, and treasury_cash_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: the tool serves official government exchange-rate data published quarterly, and tells the agent to provide a country or currency filter with examples. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury_interest_ratesBRead-onlyIdempotentInspect
Average interest rates the US Treasury pays on its marketable and non-marketable securities (Treasury Bills, Notes, Bonds, TIPS, etc.), by month. Optionally filter by security description.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. | |
| security | No | Filter by security type/description, e.g. 'Treasury Notes', 'Bills', 'TIPS'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive, so the description only needs to add behavioral context. It does add useful context by stating the data is monthly and optionally filterable by security description, but it does not disclose default limits, date-range behavior, or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The core subject is front-loaded, the optional filter is stated plainly, and every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two optional parameters and full schema coverage, the description allows a basic call to be made correctly. However, with no output schema, it does not clarify the return format, default row count, or how far back the monthly history goes, which leaves some practical ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'limit' and 'security'. The description reinforces the security parameter by naming Treasury Bills, Notes, Bonds, and TIPS, but it adds nothing about the 'limit' parameter beyond what the schema provides. This matches the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource: average interest rates on US Treasury marketable and non-marketable securities, broken down by month. It is distinct enough from siblings like treasury_exchange_rates, though it lacks an explicit verb such as 'Returns' and does not directly contrast itself with any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over related siblings such as treasury_auctions, treasury_exchange_rates, or treasury_debt. There is no conditional context, no exclusions, and no mention of alternatives, leaving the selection decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trials_detailsARead-onlyIdempotentInspect
Get full detail for one clinical trial by its NCT id (e.g. 'NCT02562313'): title, status, conditions, sponsor, phase, interventions, brief summary, enrollment, start/completion dates, number of sites, and the study URL.
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | ClinicalTrials.gov NCT id, e.g. 'NCT02562313'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive operation, so the safety profile is covered. The description adds value by specifying exactly what the response contains, including study status, sponsor, phase, enrollment, dates, site count, and URL. No behavioral contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence conveys the operation, the identifier format, and a full list of returned fields. There is no filler, redundancy, or unnecessary qualification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup tool, the description is complete: it states how to call it, what input is expected, and what output fields to expect. No output schema exists, so the enumerated field list effectively fills that gap. Error handling or rate limits are not essential for this simple, safe operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single required parameter nct_id and provides the same example ('NCT02562313') found in the description. The description adds no new parameter semantics beyond what the schema supplies, so the baseline of 3 applies per the rubric.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get full detail') and resource ('one clinical trial by its NCT id'), with a concrete example. It enumerates the returned fields, making it unmistakable what this tool does. It is clearly differentiated from its sibling trials_search, which is for finding trials rather than retrieving details for one known trial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this tool when you have a specific NCT id and need comprehensive details for one clinical trial. It does not explicitly mention that trials_search should be used when only keywords or filters are available, nor does it give explicit exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trials_searchARead-onlyIdempotentInspect
Search ClinicalTrials.gov for clinical studies by condition, intervention/drug, sponsor, recruitment status, and/or location. Returns each trial's NCT id, title, status, conditions, lead sponsor, phase, and study type.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | General search term. | |
| limit | No | Max rows (default 10, max 50). | |
| status | No | Recruitment status, e.g. 'RECRUITING', 'COMPLETED', 'TERMINATED'. | |
| sponsor | No | Sponsor/organization, e.g. 'Pfizer'. | |
| location | No | Location, e.g. 'Houston' or 'Texas'. | |
| condition | No | Disease/condition, e.g. 'breast cancer'. | |
| intervention | No | Drug/intervention, e.g. 'semaglutide'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive. The description adds behavioral value by naming the external source and specifying the summary fields returned per trial, so the agent knows the shape of the result set without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states what the tool searches and by which criteria, the second states what it returns. Every clause earns its place and the key info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter read-only search tool with no required fields and no output schema, the description covers both query dimensions and return fields, which is sufficient to select and invoke it. It could add combination semantics (AND vs OR) or pagination details, but those are minor gaps given the schema annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a useful description. The tool description largely restates those dimensions rather than adding new meaning, so it earns the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') with a clear resource (ClinicalTrials.gov) and enumerates search dimensions as well as the exact returned fields (NCT id, title, status, etc.). This clearly distinguishes it from the sibling trials_details, which presumably fetches detailed protocol data for a specific trial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear use case: querying clinical studies by condition, intervention, sponsor, status, and/or location. It does not explicitly name alternatives or state when not to use it, but the search-and-summary framing is enough to route an agent to this tool for filtering trials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_wells_nearARead-onlyIdempotentInspect
Find Texas oil & gas wells near a location using the Texas Railroad Commission (RRC) public well map (keyless public record). Given a longitude/latitude and a radius, returns the wells within it, each with its API well number, well number, and type/status (e.g. 'Oil Well', 'Gas Well', 'Permitted Location', 'Dry Hole', 'Injection/Disposal'), plus a breakdown by type. Use geocode_address first to turn a street address into coordinates. Texas covers the Permian and Eagle Ford basins. This is well LOCATION + type data; operator, production volumes, and permit dates are not in this layer.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the center point (WGS84), e.g. 31.9974. | |
| lon | Yes | Longitude of the center point (WGS84), e.g. -102.0779. | |
| limit | No | Max wells to return (default 25, max 100). | |
| radius_km | No | Search radius in kilometers (default 1.5, max 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only/idempotent, and the description adds meaningful non-obvious behavior: it is a keyless public RRC record, it returns location+type only, and it excludes operator/production/permit-date data. This gives an agent a clear accuracy boundary without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded and the return payload is specified efficiently. A little extra domain color (Permian/Eagle Ford) is useful but not strictly needed for invocation, keeping it slightly above average but not maximal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the key returned fields and the type breakdown. It also covers the address-to-coordinates prerequisite and data limitations. A more exact response shape or empty-result behavior would push it to 5, but nothing essential for a basic call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and schema entries already explain lat/lon, limit, radius with defaults and max values. The description's 'longitude/latitude and a radius' does not add information beyond what the schema provides, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource—'Find Texas oil & gas wells near a location'—and enumerates the returned fields (API number, well number, type/status, type breakdown). It is unmistakably distinct from geocoding and Oklahoma-well siblings by naming Texas and the RRC public map.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete workflow instruction: 'Use geocode_address first to turn a street address into coordinates.' It also lists what the layer does not contain (operator, production, permit dates), implicitly steering agents away when those are needed, though it does not name a specific alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_earthquake_detailARead-onlyIdempotentInspect
Get full detail for a specific earthquake event by USGS event ID. Returns origin, magnitude details, focal mechanism (if available), shake-map link, felt reports, tsunami flag, and impact estimates.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | USGS event ID (e.g. 'us7000m5dt'). Get from feed or search results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive, so no safety contradiction exists. The description adds meaningful behavioral context beyond annotations by listing what the response covers (origin, magnitude details, focal mechanism with an 'if available' caveat, shake-map link, felt reports, tsunami flag, and impact estimates), which is especially useful because no output schema is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Both sentences are dense and useful: the first states the action and key input, the second lists return contents. There is no filler, repetition, or buried context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup, this description is complete: it explains what the tool does, what input identifies the target, and what the response will contain, with an explicit conditional for focal mechanism. The lack of an output schema is compensated by the return-field enumeration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents event_id with a type and a concrete example, so the schema carries the semantic weight. The tool description adds only that lookup is by USGS event ID, not enough to raise the score above the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), names the exact resource ('full detail for a specific earthquake event'), and identifies the key identifier ('USGS event ID'). It also enumerates the returned data categories, making it easy to distinguish this detail tool from sibling list/search tools like usgs_earthquake_feed and usgs_earthquake_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for a single known event rather than discovery, and the parameter schema reinforces that by instructing the agent to obtain the event_id from feed or search results. It does not explicitly name alternatives or state when not to use the tool, so it stops just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_earthquake_feedARead-onlyIdempotentInspect
USGS official earthquake summary feed by period and minimum magnitude. period: hour|day|week|month. min_mag: 1.0|2.5|4.5|significant. Returns all events worldwide above the threshold within the period, with magnitude, location, depth, and event detail URL.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time window (default 'day') | |
| min_mag | No | Minimum magnitude threshold (default '2.5') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful context about global scope and returned fields, but it does not mention pagination, rate limits, or any limits on the number of events returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the core purpose front-loaded. It lists the key parameters, allowed values, and return fields without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only feed with complete schema annotations, the description is sufficient: it defines input choices, scope ('all events worldwide above the threshold'), and output contents ('magnitude, location, depth, and event detail URL'). No important invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% and each parameter already has an enum and description. The description repeats the allowed values (hour|day|week|month and 1.0|2.5|4.5|significant) but adds no new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as 'USGS official earthquake summary feed by period and minimum magnitude' and specifies that it returns all events worldwide above a threshold. This is a specific verb-resource pairing, though it does not explicitly contrast itself with sibling tools like usgs_earthquake_search or usgs_earthquake_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: select a period and minimum magnitude to get a worldwide summary feed. However, there is no explicit guidance on when to prefer this tool over the sibling earthquake_recent, usgs_earthquake_search, or usgs_earthquake_detail tools, and no mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_earthquake_searchARead-onlyIdempotentInspect
Custom earthquake search via USGS fdsnws. Filter by magnitude, time range, and lat/lon bounding box. Returns up to 100 events sorted by time. Use this for analytical queries instead of the feed when you need historical or geographic filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25, max 100) | |
| end_time | No | ISO date or full datetime | |
| start_time | No | ISO date or full datetime YYYY-MM-DD[THH:MM:SS] | |
| max_latitude | No | Bounding box north | |
| min_latitude | No | Bounding box south | |
| max_longitude | No | Bounding box east | |
| min_longitude | No | Bounding box west | |
| min_magnitude | No | Minimum magnitude (e.g. 4.5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it returns up to 100 events, sorts by time, and targets historical/geographic filtering. This is useful but does not describe full output shape or API-specific behaviors like rate limits, so a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words, and the most important information is front-loaded: what the tool does, what it filters by, what it returns, and when to choose it over the feed. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with no required parameters and a fully described input schema, this description covers the main invocation context: filters, result cap, sort order, and relationship to the feed. It does not detail the event fields returned or default behavior with no filters, but those are not critical for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description including defaults and coordinate meanings. The description only groups parameters into magnitude, time range, and bounding box categories, which adds marginal interpretive value but does not compensate for anything missing in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Custom earthquake search') on a specific resource (USGS fdsnws) and enumerates the key filters: magnitude, time range, and lat/lon bounding box. It also distinguishes this tool from the feed by explicitly targeting historical and geographic analytical queries, which clearly separates it from sibling tools like usgs_earthquake_feed and earthquake_recent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: 'Use this for analytical queries instead of the feed when you need historical or geographic filtering.' This names the alternative and the condition that selects this tool, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usgs_water_realtimeARead-onlyIdempotentInspect
Real-time water data from USGS NWIS streamgages. Filter by site code, state, or parameter (e.g. '00060' = streamflow cfs, '00065' = gage height ft). Useful for flood-stage monitoring, drought tracking, and hydrological research.
| Name | Required | Description | Default |
|---|---|---|---|
| sites | No | Comma-separated USGS site codes (e.g. '01646500') | |
| state_cd | No | Two-letter state code; returns all active sites in the state | |
| parameter_cd | No | USGS parameter code (default '00060' streamflow). Common: 00060=streamflow, 00065=gage height, 00010=water temp, 00400=pH |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, non-destructive behavior. The description adds useful context: real-time freshness, NWIS data source, and units for common parameters. It doesn't disclose return format, pagination, or rate limits, so it adds moderate but not extensive behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the core purpose, the second covers filters with an example, and the third gives use cases. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with well-documented parameters and rich safety annotations, the description is sufficiently complete: it gives source, filters, examples, and use cases. It doesn't spell out the response shape or data limitations, but the absence of an output schema is not critical for selecting and invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds lightweight examples and units (streamflow cfs, gage height ft), but doesn't substantially improve on the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (USGS NWIS streamgages) and the operation (retrieving real-time water data), with explicit filter dimensions. It doesn't explicitly differentiate from sibling tools like water_levels or tide_predictions, so it doesn't earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context by naming concrete use cases ('flood-stage monitoring, drought tracking, and hydrological research') and notes the filter options. However, it doesn't state when not to use it or point to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vehicle_recallsARead-onlyIdempotentInspect
Check for safety recalls on a vehicle by year, make, and model. Returns all NHTSA recall campaigns including affected component, description, safety risk, and recommended remedy. Use this for 'are there recalls on my car?', 'check recalls for 2020 Toyota Camry', 'is this vehicle safe?', 'any open recalls?', or any vehicle recall check. Covers all US vehicles from all manufacturers.
| Name | Required | Description | Default |
|---|---|---|---|
| make | Yes | Vehicle make (e.g., 'Toyota', 'Ford') | |
| year | Yes | Model year (e.g., 2020) | |
| model | Yes | Vehicle model (e.g., 'Camry', 'F-150') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety behavior is covered. The description adds meaningful behavioral context by stating it returns 'all NHTSA recall campaigns' and enumerates the output fields (affected component, description, safety risk, recommended remedy), plus US vehicle/manufacturer coverage. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the opening sentence states the core purpose, the second explains the return value, and the third gives concrete usage examples and coverage scope. The example list is slightly repetitive but useful for intent matching, and no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by specifying exactly what will be returned (recall campaigns with component, description, safety risk, remedy) and the coverage scope (all US vehicles). The required inputs are unambiguous. It could have mentioned when to use a VIN-based sibling, but the definition is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented with clear examples. The description only restates the input combination in prose ('by year, make, and model') without adding new parameter-level semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Check for safety recalls') on a specific resource ('a vehicle by year, make, and model'), and clarifies it returns NHTSA recall campaigns. This clearly distinguishes it from product, drug, food, or device recall tools among the siblings, and the example queries further pin down the intended use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear invocation context by listing representative user phrasings like 'check recalls for 2020 Toyota Camry' and 'any open recalls?', and covers the general case with 'or any vehicle recall check'. However, it does not explicitly contrast with alternatives such as vin_decode for VIN-based queries or CPSP/FDA recall tools, so it lacks when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vin_decodeARead-onlyIdempotentInspect
Decode a Vehicle Identification Number (VIN) to get full vehicle specifications. Returns year, make, model, trim, body style, engine specs (cylinders, displacement, HP), drivetrain, transmission, fuel type, doors, manufacturer, and assembly plant location. Use this for 'decode this VIN', 'what car is this VIN?', 'look up a VIN number', 'what are the specs on this vehicle?', 'identify this car', or any VIN lookup. Works for all US vehicles - cars, trucks, SUVs, motorcycles, trailers.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | Yes | 17-character Vehicle Identification Number (VIN) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds useful behavioral context by listing the exact fields returned and the scope of supported vehicles (all US vehicles including motorcycles and trailers).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and front-loaded: it states the core function, then lists outputs, then gives query examples, then scope. Every sentence adds useful information, and the example phrases are practical for an agent matching user intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one well-documented parameter, strong annotations, and no output schema, the description is complete: it explains what the tool returns, the vehicle types covered, and the user phrasings that should trigger it. No critical selection or invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single 'vin' parameter, including its 17-character format. The description adds no additional parameter-level semantics beyond restating 'VIN', so the baseline score of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Decode a VIN') and resource, and enumerates the returned vehicle attributes. It does not explicitly distinguish itself from the sibling 'vehicle_recalls' tool, though the specifications-focused output makes the difference mostly implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete example queries and says to use it for 'any VIN lookup', giving an agent clear trigger phrases. However, it does not state when not to use it, such as when the user is asking about recalls rather than vehicle specifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wa_contractor_verifyARead-onlyIdempotentInspect
Live Washington contractor registration lookup from the official L&I open-data API. Search by exact contractor license number or business name. Returns registration status, expiry, trade/type, public business details, separately reported insurance context, and official source links. Informational only: verify material decisions in L&I's Verify tool.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum candidate records when searching by business name. Default 5. | |
| business_name | No | Business name or distinctive name fragment. Used only when license_number is not supplied. | |
| license_number | No | Exact Washington contractor license number, if known. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond that: it is a live lookup, returns official source links, includes separately reported insurance context (which avoids overstating coverage), and explicitly says it is informational only. This is useful transparency that goes beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. The core purpose is front-loaded, the search modes and return contents are stated compactly, and the caveat is placed at the end. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only tool with rich annotations, a complete input schema, and no output schema, the description covers all essentials: what it queries, how to query it, what it returns, and how to treat the results. No critical information is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented in the schema. The description mostly restates the same information ('Search by exact contractor license number or business name') without adding new semantic detail beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb ('lookup'/'search'), a specific resource ('Washington contractor registration'), and an authoritative source ('official L&I open-data API'). It is unambiguous about what the tool does, though it does not explicitly differentiate itself from sibling tools like contractor_license_sources or contractor_multistate_route.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: search by exact license number or business name, and it warns that this is informational only and material decisions should be verified in L&I's Verify tool. It does not, however, explicitly state when to prefer this tool over sibling contractor-related tools or list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
water_levelsARead-onlyIdempotentInspect
Return the latest observed water level from a NOAA Tides & Currents (CO-OPS) station using the keyless public API - U.S. Government public-domain data. Give either a NOAA station id or a lat/lon (the nearest station is chosen automatically). Returns the observed water level relative to the chosen datum (default MLLW), the observation time in local station time, and the sample standard deviation when reported. Use it to check current real-world water level versus prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Used with lon to pick the nearest station when no station id is given. | |
| lon | No | Longitude in decimal degrees (negative west). | |
| datum | No | Tidal datum: MLLW, MSL, MHW, etc. Default MLLW. | |
| units | No | 'english' (feet) or 'metric' (meters). Default english. | |
| station | No | NOAA CO-OPS station id, e.g. '9414290'. Optional if lat and lon are given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, so the safety profile is already clear. The description adds meaningful behavioral context beyond annotations: it is a keyless public API, uses U.S. Government public-domain data, automatically chooses the nearest station for lat/lon, and returns water level relative to a datum with observation time in local station time and sample standard deviation when reported. It doesn't disclose all edge cases (e.g., what happens if no station is found), but it goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loaded with the main purpose, then key usage alternatives and return details. Every clause earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with all parameters documented in schema and a rich description of what it returns, it is largely complete. The only gap is lack of explicit behavior on errors or missing station, and no explicit mention of output format, but since there's no output schema and the tool is straightforward, the description covers what an agent needs to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 5 parameters. The description adds useful context about the relationship between station and lat/lon ('nearest station is chosen automatically') and that datum defaults to MLLW, which is already in the schema. Baseline 3 is right because the description adds marginal context but doesn't need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the latest observed water level from a NOAA station, specifies the data source, keyless public API, how to identify a station (station id or lat/lon), and what the return includes. This is a specific verb+resource with clear scope, distinct from the sibling 'tide_predictions' (predictions vs observed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use it ('check current real-world water level versus prediction') and gives context about the data source. However, it does not explicitly identify alternatives or say when not to use it. Given the sibling list contains 'tide_predictions' which is a natural alternative, the description does not explicitly exclude or route to it, so a 4 is appropriate rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_currentARead-onlyIdempotentInspect
Get current weather conditions for any location worldwide. Returns temperature, feels-like, humidity, wind speed and direction, cloud cover, pressure, precipitation, UV index, and visibility. Use this for 'what's the weather?', 'is it raining in Houston?', 'how hot is it outside?', 'what's the temperature in New York?', 'do I need a jacket?', or any current weather question. Works for any city, zip code, or place name globally.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City, zip code, or place name (e.g., 'Houston, TX', '77001', 'Paris') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description goes beyond these by specifying the exact set of returned conditions, such as temperature, humidity, wind, cloud cover, pressure, precipitation, UV index, and visibility, and by emphasizing global location coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and return fields, then gives practical example queries. It is slightly longer than necessary due to some repetition between 'any location worldwide' and 'Works for any city, zip code, or place name globally,' but the example queries earn their place for routing accuracy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is complete: it states what the tool does, what data it returns, what kinds of queries it supports, and what location formats are accepted. No critical information is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the location parameter with examples like 'Houston, TX' and '77001', and schema coverage is 100%. The description restates that any city, zip code, or place name works, which reinforces the parameter's semantics but does not add meaningful new detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get current weather conditions for any location worldwide.' It enumerates the returned fields and uses 'current' to distinguish itself from the sibling weather_forecast tool. This makes its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use examples such as 'is it raining in Houston?' and 'what's the temperature in New York?', plus a catch-all 'or any current weather question.' It gives clear context for when to use the tool, though it does not explicitly state when not to use it or name weather_forecast as the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_forecastARead-onlyIdempotentInspect
Get a multi-day weather forecast for any location worldwide. Returns daily high/low temperatures, conditions, precipitation probability, wind speed, UV index, sunrise and sunset. Use this for 'what's the forecast this week?', 'will it rain tomorrow?', 'weekend weather', 'should I plan outdoor activities?', '7-day forecast for Dallas', or any future weather question. Supports 1-16 day forecasts.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Forecast days (default: 7) | |
| location | Yes | City, zip code, or place name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and non-destructiveness. The description adds useful behavioral context by specifying returned fields (high/low, conditions, precipitation probability, wind, UV, sunrise/sunset) and the 1-16 day range. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and returned data, followed by concrete usage examples and a parameter range. Every sentence adds value; the example queries are practical rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining return values, which it does well by listing the forecast fields. It also covers the main invocation need: location, range of days, and use cases. A small gap is the lack of mention of units or the default of 7 days, though the schema covers the default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents location and days well. The description adds that the tool works for "any location worldwide" and supports 1-16 day forecasts, but it does not go much beyond the schema's own parameter descriptions. This matches the baseline for fully self-documenting schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Get a multi-day weather forecast for any location worldwide." It lists the exact data fields returned and clearly distinguishes itself from future-weather vs. current-weather tools by emphasizing "future weather question" and "multi-day." This differentiates it from weather_current and other weather-adjacent siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives rich usage guidance with many concrete example queries like "what's the forecast this week?" and "7-day forecast for Dallas." It makes the intended context clear, though it does not explicitly name an alternative tool or state when not to use this tool in favor of weather_current or another sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldbank_compareARead-onlyIdempotentInspect
Compare the most recent value of a World Bank indicator across multiple countries (up to 6). Provide a comma-separated list of country codes or names.
| Name | Required | Description | Default |
|---|---|---|---|
| countries | Yes | Comma-separated country codes/names, e.g. 'US,CN,DE,JP'. | |
| indicator | No | Indicator name (one of: gdp, gdp_per_capita, gdp_growth, inflation, population, unemployment, life_expectancy, exports, imports, gni_per_capita, poverty_rate, internet_users) or a raw WB code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral constraints — it returns the 'most recent value' (not a time series) and caps input at 'up to 6' countries — but it does not disclose what happens with invalid country codes, missing data, or how results are formatted and ordered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place: the first states the purpose and the 6-country cap, the second states the required input format. The purpose is front-loaded and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-parameter tool with 100% schema coverage and safety annotations, the description is nearly sufficient. The only meaningful gap is the absence of any mention of the return shape or error behavior (e.g., invalid country codes, unavailable indicator data), which matters because there is no output schema to cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both countries and indicator are already documented in the schema with the enumerated indicator list. The description adds the 'up to 6' limit and the comma-separated format for countries, but adds no meaning for the indicator parameter beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compare') plus a clear resource ('a World Bank indicator') and scope ('across multiple countries (up to 6)'). This cleanly distinguishes it from sibling tools like worldbank_indicator and worldbank_country_profile without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case — comparing a single indicator's most recent value across several countries — but never explicitly names alternatives or exclusions. It does not tell the agent to use worldbank_indicator for single-country or historical data, nor worldbank_country_profile for a country dossier, so routing guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldbank_country_profileARead-onlyIdempotentInspect
Snapshot of a country's key development indicators (GDP, GDP per capita, growth, inflation, population, unemployment, life expectancy), each at its most recent available year.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country ISO2/ISO3 code or name (default 'US'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint false. The description adds one useful behavioral detail: each indicator is at its most recent available year, implying no time-series retrieval. It does not discuss missing data, units, or country-code normalization, so the added behavioral context is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly written sentence, front-loaded with 'Snapshot', that packs in the indicator list and the temporal behavior. There is no filler, repetition, or irrelevant context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the description is largely sufficient: it names the subject, the indicators returned, and the temporal granularity. Minor gaps like units or missing-indicator behavior exist, but they do not seriously hinder correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single country parameter as an ISO2/ISO3 code or name with a default of 'US', so schema description coverage is 100%. The tool description reinforces that the parameter is the profile subject but adds no meaning beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear deliverable: a snapshot of a country's key development indicators, and lists exactly which indicators are included. The 'most recent available year' scoping helps separate it from time-series tools, though it does not explicitly name sibling Worldbank tools like worldbank_indicator or worldbank_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The snapshot wording implies the intended use case: a quick at-a-glance country profile. However, it gives no explicit guidance on when to prefer this tool over worldbank_indicator or worldbank_compare, nor does it state exclusions such as 'not for historical trends.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
worldbank_indicatorARead-onlyIdempotentInspect
Time series for a World Bank development indicator for one country. Friendly indicators: gdp, gdp_per_capita, gdp_growth, inflation, population, unemployment, life_expectancy, exports, imports, gni_per_capita, poverty_rate, internet_users (or pass a raw World Bank code). Country accepts ISO2/ISO3 codes or common names (e.g. 'US', 'China', 'Germany'). Keyless, official World Bank data.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country ISO2/ISO3 code or name (default 'US'). Use 'WLD' for world. | |
| end_year | No | End year (optional). | |
| indicator | No | Indicator name (one of: gdp, gdp_per_capita, gdp_growth, inflation, population, unemployment, life_expectancy, exports, imports, gni_per_capita, poverty_rate, internet_users) or a raw WB code. | |
| start_year | No | Start year (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive behavior, so the bar is lower. The description adds useful context beyond annotations by stating the data is 'Keyless, official World Bank data' and that the output is a time series. This gives the agent confidence about data source and no authentication requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The indicator list adds helpful examples but partially duplicates the schema's indicator enumeration. Overall it is efficient, with no filler or redundant safety language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only data-fetch tool with full schema coverage and no output schema, the description is largely complete. It explains the data source, keyless access, country and indicator flexibility, and the one-country time series scope. It does not detail default year ranges or response formatting, but those are minor given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters well. The description adds friendly examples and context like common country names and raw World Bank codes, but these largely restate what the schema already provides. It does not materially expand parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns time series for a World Bank development indicator for one country, which is a specific verb+resource combination. The phrase 'for one country' differentiates it from sibling tools like worldbank_compare and worldbank_country_profile, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames when to use this tool: when you need a single-country time series for a development indicator. It also gives friendly indicator names and country input formats, which helps the agent select it. However, it does not explicitly mention sibling alternatives or state when not to use it, such as when comparing multiple countries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
294 tool updates
- First observed
air_quality - First observed
bank_health_report - First observed
beneficial_owner_screen - First observed
bls_indicator - First observed
bls_series - First observed
book_details - First observed
book_fulltext_search - First observed
book_get_text - First observed
book_search - First observed
book_status - First observed
bounce_scanner - First observed
candlestick_signals - First observed
cargo_crate - First observed
carrier_monitor_recheck - First observed
carrier_vetting_batch - First observed
carrier_vetting_evidence_pack - First observed
carrier_vetting_score - First observed
caselaw_case_details - First observed
caselaw_citation_lookup - First observed
caselaw_opinion_text - First observed
caselaw_search - First observed
cdc_dataset_query - First observed
cdc_drug_overdose_deaths - First observed
cdc_excess_deaths_covid - First observed
cdc_flu_surveillance - First observed
cdc_leading_causes_of_death - First observed
cdc_outbreak_reports - First observed
cdc_vaccination_coverage - First observed
cdc_weekly_deaths_by_state - First observed
census_business - First observed
census_commute_employment - First observed
census_demographics - First observed
census_geography_lookup - First observed
census_income_housing - First observed
census_population - First observed
cfpb_complaint_aggregations - First observed
cfpb_complaint_detail - First observed
cfpb_complaint_trends - First observed
cfpb_search_complaints - First observed
cfpb_state_complaints - First observed
cfpb_suggest_company - First observed
chemical_hazards - First observed
chemical_lookup - First observed
clinical_site_selector - First observed
cms_home_health_search - First observed
cms_hospice_search - First observed
cms_hospital_search - First observed
cms_nursing_home_search - First observed
college_accreditation - First observed
college_compare - First observed
college_demographics - First observed
college_metrics - First observed
college_outcomes_by_program - First observed
college_search - First observed
college_trends - First observed
college_value_score - First observed
company_complaint_profile - First observed
company_info - First observed
company_trust_check - First observed
congress_bill_actions - First observed
congress_bill_cosponsors - First observed
congress_bill_details - First observed
congress_house_votes - First observed
congress_member_details - First observed
congress_recent_laws - First observed
congress_search_bills - First observed
congress_search_members - First observed
contractor_license_sources - First observed
contractor_multistate_route - First observed
corporate_ownership_tree - First observed
cost_of_doing_business_index - First observed
counterparty_risk_score - First observed
court_case_search - First observed
court_citation_resolver - First observed
court_docket_lookup - First observed
court_judge_lookup - First observed
court_opinion_search - First observed
court_oral_argument_search - First observed
court_recent_filings - First observed
cpsc_recall_search - First observed
cpsc_recent_recalls - First observed
crypto_compare - First observed
crypto_info - First observed
crypto_price - First observed
crypto_trending - First observed
cve_lookup - First observed
cve_recent - First observed
cve_search_by_keyword - First observed
cve_search_by_vendor - First observed
cwe_lookup - First observed
disaster_declarations - First observed
disaster_history_summary - First observed
disaster_recovery_profile - First observed
earthquake_recent - First observed
edgar_company_facts - First observed
edgar_company_lookup - First observed
edgar_filing_content - First observed
edgar_filings_by_form_type - First observed
edgar_full_text_search - First observed
edgar_insider_transactions - First observed
edgar_recent_filings - First observed
eia_electricity_state - First observed
eia_energy_consumption - First observed
eia_gasoline_prices - First observed
eia_natural_gas - First observed
eia_oil_supply - First observed
eia_renewable_generation - First observed
eia_series_lookup - First observed
energy_market_snapshot - First observed
entity_dossier - First observed
entity_resolve - First observed
environmental_site_risk - First observed
epa_enforcement_search - First observed
epa_facility_compliance - First observed
epa_facility_details - First observed
epa_facility_search - First observed
epa_water_or_air_violations - First observed
epss_score - First observed
facility_care_quality - First observed
fbi_wanted - First observed
fda_device_510k - First observed
fda_device_recalls - First observed
fda_drug_adverse_events - First observed
fda_drug_lookup - First observed
fda_drug_recalls - First observed
fda_food_recalls - First observed
fdic_deposits - First observed
fdic_failures - First observed
fdic_financials - First observed
fdic_history - First observed
fdic_search_institutions - First observed
fdic_summary - First observed
fec_candidate_details - First observed
fec_candidate_financials - First observed
fec_candidate_search - First observed
fec_committee_search - First observed
fec_independent_expenditures - First observed
flood_zone_lookup - First observed
fmcsa_carrier_authority - First observed
fmcsa_carrier_compare - First observed
fmcsa_carrier_lookup - First observed
fmcsa_carrier_search - First observed
fmcsa_safety_scores - First observed
fred_category_series - First observed
fred_compare - First observed
fred_observations - First observed
fred_quick_indicator - First observed
fred_releases - First observed
fred_search - First observed
fred_series_info - First observed
geocode_address - First observed
geocode_batch - First observed
geocode_coordinates - First observed
github_repo - First observed
grants_get_opportunity - First observed
grants_search - First observed
hurricane_tracker - First observed
influence_network_map - First observed
ip_reputation - First observed
issuer_diligence_dossier - First observed
iv_analytics - First observed
kev_status_check - First observed
kyb_aml_evidence_case_file - First observed
lane_location_risk_pack - First observed
lei_hierarchy - First observed
lei_lookup - First observed
list_tool_groups - First observed
load_tender_fraud_shield - First observed
lobbying_contributions - First observed
lobbying_detail - First observed
lobbying_lobbyists - First observed
lobbying_registrants - First observed
lobbying_search - First observed
local_search - First observed
location_risk_report - First observed
market_size_estimator - First observed
nfip_flood_claims - First observed
nonprofit_details - First observed
nonprofit_lookup_ein - First observed
nonprofit_search_location - First observed
nonprofit_search_name - First observed
nonprofit_status - First observed
npi_lookup - First observed
npi_search_organization - First observed
npi_search_provider - First observed
npi_search_specialty - First observed
npm_package - First observed
nrel_alt_fuel_station_detail - First observed
nrel_alt_fuel_stations - First observed
nrel_pvwatts - First observed
nrel_solar_resource - First observed
nrel_utility_rates - First observed
nws_active_alerts - First observed
ok_wells_search - First observed
open_payments_by_company - First observed
open_payments_by_specialty - First observed
open_payments_national_summary - First observed
open_payments_ownership - First observed
open_payments_research - First observed
open_payments_search - First observed
open_payments_state_totals - First observed
open_payments_top - First observed
options_chain - First observed
options_history_atm_iv - First observed
options_history_chain - First observed
options_history_contract - First observed
options_history_volhist - First observed
org_funding_profile - First observed
package_track - First observed
paper_details - First observed
paper_fulltext_search - First observed
paper_get_text - First observed
paper_search - First observed
paper_status - First observed
parcel_coverage - First observed
parcel_details - First observed
parcel_sales_history - First observed
parcel_search - First observed
patent_assignee_search - First observed
patent_details - First observed
patent_inventor_search - First observed
patent_recent - First observed
patent_search - First observed
prescriber_ties_profile - First observed
price_to_rent_ratio - First observed
product_liability_screen - First observed
property_lookup - First observed
property_search_area - First observed
property_search_owner - First observed
property_value_history - First observed
pypi_package - First observed
rdap_domain - First observed
rdap_ip - First observed
realestate_home_values - First observed
realestate_market_screen - First observed
realestate_rents - First observed
realestate_search - First observed
realestate_status - First observed
realestate_trend - First observed
recall_screen - First observed
recreation_facility_detail - First observed
recreation_nearby - First observed
recreation_search_campsites - First observed
recreation_search_facilities - First observed
recreation_search_recareas - First observed
reg_cfr_search - First observed
reg_cfr_section - First observed
reg_cfr_titles - First observed
reg_document - First observed
reg_search - First observed
resolve_entity - First observed
sanctions_get_changes - First observed
sanctions_get_entity - First observed
sanctions_screen_address - First observed
sanctions_screen_batch - First observed
sanctions_screen_entity - First observed
sanctions_search_alias - First observed
sanctions_status_summary - First observed
search_available_datasets - First observed
security_exposure - First observed
shipper_receiver_counterparty_pack - First observed
spending_award_details - First observed
spending_recipient_summary - First observed
spending_search_awards - First observed
stock_compare - First observed
stock_history - First observed
stock_quote - First observed
stock_quote_batch - First observed
sun_times - First observed
supplier_esg_scorecard - First observed
support_resistance_levels - First observed
talent_market_brief - First observed
tide_predictions - First observed
treasury_auctions - First observed
treasury_cash_balance - First observed
treasury_debt - First observed
treasury_exchange_rates - First observed
treasury_interest_rates - First observed
trials_details - First observed
trials_search - First observed
tx_wells_near - First observed
usgs_earthquake_detail - First observed
usgs_earthquake_feed - First observed
usgs_earthquake_search - First observed
usgs_water_realtime - First observed
vehicle_recalls - First observed
vin_decode - First observed
wa_contractor_verify - First observed
water_levels - First observed
weather_current - First observed
weather_forecast - First observed
worldbank_compare - First observed
worldbank_country_profile - First observed
worldbank_indicator
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Verified data on 8,000+ AI tools: live status, pricing, sentiment, alternatives. Free, read-only.
Normalized official data with provenance, aggregations, insights, free samples and agent access.
Normalized official data with provenance, aggregations, insights, free samples and agent access.
8.1M+ US gov and science data via x402 USDC. 21 tools, $0.001 sample tier, sanctions, SEC, CVEs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenance26 US federal data domains as 23 MCP tools. Ed25519 signed responses. Free, no API key.951MIT
- AlicenseAqualityBmaintenanceMCP server + TypeScript SDK for 36 U.S. government data APIs — 188 tools. Treasury, FRED, Congress, FDA, CDC, FEC, lobbying, and more. Works with VS Code Copilot, Claude Desktop, Cursor.100142108MIT

dynamicfeed-mcpofficial
AlicenseNot gradedqualityCmaintenance62 live, cryptographically signed data tools for AI agents and robots: weather, natural hazards, flights, shipping, space, CVEs, sanctions, software versions, sea ice and more. Every datapoint carries source, licence, timestamp and an Ed25519 signature.15MIT- FlicenseNot gradedqualityDmaintenance100+ agent-payable C-suite expertises with x402 micro-payments — competitive intel, SEC filings, sanctions, KYC, clinical evidence, real estate, ESG. 183 tools, free tier 100 calls/month.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Several tool clusters overlap heavily—company due-diligence and risk tools (counterparty_risk_score, company_trust_check, entity_dossier, issuer_diligence_dossier, resolve_entity, entity_resolve), carrier vetting tools, sanctions screening tools, and recall tools all have subtle boundary distinctions. While descriptions are detailed, an agent navigating 294 tools will frequently struggle to pick the right one.
Most tools follow a readable snake_case domain-prefix pattern (fdic_, edgar_, sanctions_, congress_), which helps. However, verb placement is inconsistent—search_available_datasets vs cdc_dataset_query, resolve_entity vs entity_resolve—and synonyms like search, lookup, get, detail, fetch, and status are used interchangeably.
294 tools is an extreme number for a single MCP server, far beyond what an agent can reliably hold in context or select from accurately. The presence of tool-group discovery helpers mitigates but does not solve the fundamental scale problem.
The data breadth is genuinely extensive, covering finance, health, legal, real estate, transportation, energy, cyber, education, and many other domains, often with generic query fallbacks. Still, some capabilities are shallow or incomplete—package tracking stops at a link, property tools are demo-only in places, and caselaw coverage is limited—so it is not a fully complete surface.